annotate roundup/init.py @ 212:862dafca2a72

changes
author Richard Jones <richard@users.sourceforge.net>
date Mon, 06 Aug 2001 23:58:33 +0000
parents 1894a28a1e66
children d45384bc6420
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
208
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
1 # $Id: init.py,v 1.13 2001-08-06 01:20:00 richard Exp $
26
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
2
204
c1461733cbf9 Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents: 201
diff changeset
3 import os, shutil, sys, errno
c1461733cbf9 Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents: 201
diff changeset
4
c1461733cbf9 Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents: 201
diff changeset
5 import roundup.instance
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 def copytree(src, dst, symlinks=0):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 """Recursively copy a directory tree using copy2().
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 The destination directory os allowed to exist.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 If the optional symlinks flag is true, symbolic links in the
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 source tree result in symbolic links in the destination tree; if
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 it is false, the contents of the files pointed to by symbolic
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 links are copied.
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 XXX copied from shutil.py in std lib
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 """
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 names = os.listdir(src)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 try:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 os.mkdir(dst)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 except OSError, error:
113
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 70
diff changeset
24 if error.errno != errno.EEXIST: raise
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 for name in names:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 srcname = os.path.join(src, name)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 dstname = os.path.join(dst, name)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 if symlinks and os.path.islink(srcname):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 linkto = os.readlink(srcname)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 os.symlink(linkto, dstname)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 elif os.path.isdir(srcname):
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 copytree(srcname, dstname, symlinks)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 else:
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 shutil.copy2(srcname, dstname)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35
190
996eaf90c01e Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
36 def init(instance_home, template, backend, adminpw):
208
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
37 '''Initialise an instance using the named template and backend.
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
38
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
39 instance_home - the directory to place the instance data in
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
40 template - the template to use in creating the instance data
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
41 backend - the database to use to store the instance data
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
42 adminpw - the password for the "admin" user
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
43
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
44 The instance_home directory will be created using the files found in
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
45 the named template (roundup.templates.<name>). A standard instance_home
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
46 contains:
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
47 . instance_config.py
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
48 - simple configuration of things like the email address for the
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
49 mail gateway, the mail domain, the mail host, ...
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
50 . dbinit.py and select_db.py
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
51 - defines the schema for the hyperdatabase and indicates which
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
52 backend to use.
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
53 . interfaces.py
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
54 - defines the CGI Client and mail gateway MailGW classes that are
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
55 used by roundup.cgi, roundup-server and roundup-mailgw.
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
56 . __init__.py
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
57 - ties together all the instance information into one interface
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
58 . db/
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
59 - the actual database that stores the instance's data
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
60 . html/
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
61 - the html templates that are used by the CGI Client
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
62 . detectors/
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
63 - the auditor and reactor modules for this instance
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
64
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
65 The html directory is typically extracted from the htmlbase module in
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
66 the template.
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67 '''
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 # first, copy the template dir over
68
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
69 import roundup.templatebuilder
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
70
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71 template_dir = os.path.split(__file__)[0]
68
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
72 template_name = template
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73 template = os.path.join(template_dir, 'templates', template)
190
996eaf90c01e Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
74 copytree(template, instance_home)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75
190
996eaf90c01e Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
76 roundup.templatebuilder.installHtmlBase(template_name, instance_home)
68
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
77
51
3a7e5515c1bd ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
78 # now select database
3a7e5515c1bd ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
79 db = '''# WARNING: DO NOT EDIT THIS FILE!!!
3a7e5515c1bd ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
80 from roundup.backends.back_%s import Database'''%backend
190
996eaf90c01e Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
81 open(os.path.join(instance_home, 'select_db.py'), 'w').write(db)
51
3a7e5515c1bd ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
82
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 # now import the instance and call its init
204
c1461733cbf9 Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents: 201
diff changeset
84 instance = roundup.instance.open(instance_home)
25
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 instance.init(adminpw)
4cf1daf2f2eb More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86
26
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
87 #
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
88 # $Log: not supported by cvs2svn $
208
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
89 # Revision 1.12 2001/08/05 07:43:52 richard
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
90 # Instances are now opened by a special function that generates a unique
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
91 # module name for the instances on import time.
1894a28a1e66 Added documentation.
Richard Jones <richard@users.sourceforge.net>
parents: 204
diff changeset
92 #
204
c1461733cbf9 Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents: 201
diff changeset
93 # Revision 1.11 2001/08/04 22:42:43 richard
c1461733cbf9 Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents: 201
diff changeset
94 # Fixed sf.net bug #447671 - typo
c1461733cbf9 Instances are now opened by a special function...
Richard Jones <richard@users.sourceforge.net>
parents: 201
diff changeset
95 #
201
609a9d82218f Fixed [SF#447671] - typo
Richard Jones <richard@users.sourceforge.net>
parents: 193
diff changeset
96 # Revision 1.10 2001/08/03 01:28:33 richard
609a9d82218f Fixed [SF#447671] - typo
Richard Jones <richard@users.sourceforge.net>
parents: 193
diff changeset
97 # Used the much nicer load_package, pointed out by Steve Majewski.
609a9d82218f Fixed [SF#447671] - typo
Richard Jones <richard@users.sourceforge.net>
parents: 193
diff changeset
98 #
193
241a0323aacb Used the much nicer load_package, pointed out by Steve Majewski.
Richard Jones <richard@users.sourceforge.net>
parents: 190
diff changeset
99 # Revision 1.9 2001/08/03 00:59:34 richard
241a0323aacb Used the much nicer load_package, pointed out by Steve Majewski.
Richard Jones <richard@users.sourceforge.net>
parents: 190
diff changeset
100 # Instance import now imports the instance using imp.load_module so that
241a0323aacb Used the much nicer load_package, pointed out by Steve Majewski.
Richard Jones <richard@users.sourceforge.net>
parents: 190
diff changeset
101 # we can have instance homes of "roundup" or other existing python package
241a0323aacb Used the much nicer load_package, pointed out by Steve Majewski.
Richard Jones <richard@users.sourceforge.net>
parents: 190
diff changeset
102 # names.
241a0323aacb Used the much nicer load_package, pointed out by Steve Majewski.
Richard Jones <richard@users.sourceforge.net>
parents: 190
diff changeset
103 #
190
996eaf90c01e Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
104 # Revision 1.8 2001/07/29 07:01:39 richard
996eaf90c01e Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
105 # Added vim command to all source so that we don't get no steenkin' tabs :)
996eaf90c01e Instance import now imports the instance using imp.load_module...
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
106 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
107 # Revision 1.7 2001/07/28 07:59:53 richard
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
108 # Replaced errno integers with their module values.
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
109 # De-tabbed templatebuilder.py
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
110 #
113
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 70
diff changeset
111 # Revision 1.6 2001/07/24 11:18:25 anthonybaxter
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 70
diff changeset
112 # oops. left a print in
2ab86442799a Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents: 70
diff changeset
113 #
70
d95a03480fd1 oops. left a print in
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 69
diff changeset
114 # Revision 1.5 2001/07/24 10:54:11 anthonybaxter
d95a03480fd1 oops. left a print in
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 69
diff changeset
115 # oops. Html.
d95a03480fd1 oops. left a print in
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 69
diff changeset
116 #
69
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
117 # Revision 1.4 2001/07/24 10:46:22 anthonybaxter
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
118 # Added templatebuilder module. two functions - one to pack up the html base,
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
119 # one to unpack it. Packed up the two standard templates into htmlbases.
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
120 # Modified __init__ to install them.
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
121 #
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
122 # __init__.py magic was needed for the rather high levels of wierd import magic.
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
123 # Reducing level of import magic == (good, future)
0eed07d99b98 oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 68
diff changeset
124 #
68
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
125 # Revision 1.3 2001/07/23 08:45:28 richard
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
126 # ok, so now "./roundup-admin init" will ask questions in an attempt to get a
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
127 # workable instance_home set up :)
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
128 # _and_ anydbm has had its first test :)
5e71aaa87e5b Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 51
diff changeset
129 #
51
3a7e5515c1bd ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
130 # Revision 1.2 2001/07/22 12:09:32 richard
3a7e5515c1bd ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
131 # Final commit of Grande Splite
26
c7c14960f413 Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents: 25
diff changeset
132 #
51
3a7e5515c1bd ok, so now "./roundup-admin init" will ask questions...
Richard Jones <richard@users.sourceforge.net>
parents: 26
diff changeset
133 #
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 113
diff changeset
134 # vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/