annotate roundup/config.py @ 482:fdee2ff82b40 config-0-4-0-branch

Miscellaneous improvements * Altered function names in roundup.config to bE NeAtEr rather_than_ugly; * Created some extra roundup.config exceptions to let people know what's going on; * Modified instance_config.py to use those exceptions, so that syntax errors or other exceptions did *not* trigger the same behavior as import while in the templates/ directory. * Modified roundup.cgi to use the same neater function names, plus did some minor cleanup.
author Titus Brown <titus@users.sourceforge.net>
date Thu, 03 Jan 2002 08:28:17 +0000
parents a261b0bbba43
children 13719594278b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
1 import sys
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
2 import os
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
3 import ConfigParser
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
4 import string
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
5
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
6 class Error(Exception):
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
7 pass
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
8
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
9 class UnknownInstanceLocation(Error):
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
10 pass
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
11
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
12 class NoInstanceConfigFile(Error):
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
13 pass
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
14
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
15 def debug_mode():
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
16 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
17 Returns the basic debug mode/level.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
18 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
19 return os.environ.get('ROUNDUP_DEBUG', 0)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
20
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
21 def loadBaseConfig():
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
22 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
23 Loads the base configuration for Roundup.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
24 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
25
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
26 c = ConfigParser.ConfigParser()
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
27
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
28 ##
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
29 ## CTB: this is where to search for all overrides, including
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
30 ## system-specific files, registry settings, etc.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
31 ##
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
32
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
33 # For the moment, search for the config file in
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
34 #
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
35 # %(sys.prefix)s/share/roundup/roundup.rc,
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
36 #
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
37 # with ROUNDUP_CONF overriding it.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
38
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
39 filenames_to_check = [] # list of files to check:
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
40 if os.environ.has_key('ROUNDUP_CONF'):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
41 filenames_to_check.append(os.environ['ROUNDUP_CONF'])
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
42
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
43 filenames_to_check.append('%s/share/roundup/roundup.rc'%(sys.prefix,))
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
44
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
45 for filename in filenames_to_check:
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
46 if os.path.exists(filename):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
47 c.read(filename)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
48 break
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
49 else:
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
50 raise Error("could not find configuration file")
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
51
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
52 if debug_mode():
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
53 print 'Loaded configuration from "%s".'%(filename,)
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
54
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
55 # we also want to give a base path for other config file names;
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
56 # for the moment, make it the base path of the filename we chose.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
57 base_path = os.path.dirname(filename)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
58
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
59 return BaseConfig(c, base_path)
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
60
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
61 class BaseConfig:
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
62 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
63 A container for the installation-wide roundup configuration.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
64 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
65 def __init__(self, c, base_path):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
66 assert isinstance(c, ConfigParser.ConfigParser)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
67 self.conf = c
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
68 self.base_path = base_path
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
69
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
70 def get(self, group, attr):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
71 return self.conf.get(group, attr)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
72
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
73 def loadInstances(self):
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
74 filename = string.strip(self.conf.get('base', 'instances'))
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
75
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
76 # if it looks like an absolute path, leave it alone; otherwise,
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
77 # add on the base path.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
78 if filename[0] == '/' or filename[0] == '\\':
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
79 pass
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
80 else:
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
81 filename = os.path.normpath(self.base_path + '/' + filename)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
82
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
83 defaults_dictionary = { 'roundup_conf_dir' : self.base_path }
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
84
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
85 c = ConfigParser.ConfigParser(defaults_dictionary)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
86 c.read(filename)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
87
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
88 return InstancesConfig(c, filename)
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
89
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
90 class InstancesConfig:
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
91 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
92 A container for the installation-wide list of instances.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
93 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
94 def __init__(self, c, filename=""):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
95 assert isinstance(c, ConfigParser.ConfigParser)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
96 self.conf = c
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
97 self.filename = filename
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
98
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
99 instance_names = {}
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
100 instance_dirs = {}
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
101
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
102 for name in c.sections():
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
103 dir = c.get(name, 'homedir')
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
104
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
105 if instance_names.has_key(dir) or instance_dirs.has_key(name):
481
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
106 error_text = 'ERROR: dir/name correspondence is not unique (%s)'%(self.filename,)
a261b0bbba43 Fixed a number of minor syntax issues & error handling.
Titus Brown <titus@users.sourceforge.net>
parents: 480
diff changeset
107 raise ValueError(error_text)
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
108
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
109 instance_dirs[name] = dir
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
110 instance_names[dir] = name
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
111
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
112 self.instance_dirs = instance_dirs
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
113 self.instance_names = instance_names
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
114
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
115 def getNames(self):
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
116 return self.instance_dirs.keys()
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
117
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
118 def getNameFromDir(self, dir):
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
119 if self.instance_names.has_key(dir):
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
120 return self.instance_names[dir]
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
121 else:
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
122 raise UnknownInstanceLocation(dir)
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
123
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
124 def getDirFromName(self, name):
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
125 return self.instance_dirs[name]
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
126
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
127 def loadConfig(self, name):
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
128 instance_dir = self.getDirFromName(name)
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
129
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
130 defaults_file = self.conf.get(name, 'defaults')
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
131 if not os.path.exists(defaults_file):
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
132 raise NoInstanceConfigFile("defaults file %s does not exist"%(defaults_file,))
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
133
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
134 config_file = self.conf.get(name, 'config')
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
135 if not os.path.exists(config_file):
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
136 raise NoInstanceConfigFile("%s does not exist"%(config_file,))
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
137
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
138 defaults_dictionary = { 'homedir' : instance_dir,
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
139 'instance_name' : name,
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
140 }
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
141
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
142
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
143 c = ConfigParser.ConfigParser(defaults_dictionary)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
144 c.read(defaults_file)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
145 c.read(config_file)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
146
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
147 return InstanceConfig(c, name, instance_dir)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
148
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
149 class InstanceConfig:
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
150 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
151 A container for each per-instance configuration.
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
152 """
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
153
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
154 def __init__(self, c, instanceName, instanceDirectory):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
155 assert isinstance(c, ConfigParser.ConfigParser)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
156 self.conf = c
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
157 self.name = instanceName
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
158 self.directory = instanceDirectory
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
159
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
160 def get_name(self):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
161 return self.name
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
162
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
163 def get_directory(self):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
164 return self.directory
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
165
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
166 def get(self, group, attr):
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
167 return self.conf.get(group, attr)
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
168
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
169 if __name__ == '__main__':
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
170 base_config = loadBaseConfig()
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
171 instances = base_config.loadInstances()
480
a5cd27d33516 Initial ConfigParser implementation.
Titus Brown <titus@users.sourceforge.net>
parents:
diff changeset
172
482
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
173 for k in instances.getNames():
fdee2ff82b40 Miscellaneous improvements
Titus Brown <titus@users.sourceforge.net>
parents: 481
diff changeset
174 print "%s:%s"%(k, instances.getDirFromName(k),)

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