~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/services/config/doc/canonical-config.txt

  • Committer: Curtis Hovey
  • Date: 2011-12-29 05:40:17 UTC
  • mto: This revision was merged to the branch mainline in revision 14606.
  • Revision ID: curtis.hovey@canonical.com-20111229054017-e6ulob0k70kz3sj2
Renamed CanonicalConfig to LaunchpadConfig because that is what it is doing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
correct config.
8
8
 
9
9
 
10
 
CanonicalConfig AKA config
 
10
LaunchpadConfig AKA config
11
11
--------------------------
12
12
 
13
 
CanonicalConfig is a singleton that manages access to the config. Cached
 
13
LaunchpadConfig is a singleton that manages access to the config. Cached
14
14
copies are kept in thread locals ensuring the configuration is thread
15
15
safe (not that this will be a problem if we stick with simple
16
16
configuration).
38
38
    ...     canonical.__file__)
39
39
    True
40
40
 
41
 
CanonicalConfig loads the conf file from the directory that matches its
 
41
LaunchpadConfig loads the conf file from the directory that matches its
42
42
instance_name. The instance name is often the same as the LPCONFIG
43
43
environment variable (scripts can override this using setInstance()). It
44
44
will choose the conf file that matches its process_name if it exists,
61
61
    >>> config.extends.filename
62
62
    '.../launchpad-lazr.conf'
63
63
 
64
 
CanonicalConfig provides __contains__ and __getitem__ to check and
 
64
LaunchpadConfig provides __contains__ and __getitem__ to check and
65
65
access lazr.config sections and keys.
66
66
 
67
67
    >>> 'launchpad' in config
127
127
Setting just the instance_name will change the directory from which the
128
128
conf file is loaded.
129
129
 
130
 
    >>> from lp.services.config import CanonicalConfig
131
 
    >>> test_config = CanonicalConfig('testrunner', 'test')
 
130
    >>> from lp.services.config import LaunchpadConfig
 
131
    >>> test_config = LaunchpadConfig('testrunner', 'test')
132
132
    >>> test_config.setInstance('development')
133
133
    >>> test_config.instance_name
134
134
    'development'
191
191
Because Config is designed to failover to the default development
192
192
environment, and the testrunner overrides the environment and config, we
193
193
need to reconfigure the environment and reload the lp.services.config
194
 
module to test CanonicalConfig's behaviour.
 
194
module to test LaunchpadConfig's behaviour.
195
195
 
196
196
Alternatively, the instance name and process name can be specified as
197
197
argument to the constructor.
198
198
 
199
 
    >>> dev_config = CanonicalConfig('development', 'authserver')
 
199
    >>> dev_config = LaunchpadConfig('development', 'authserver')
200
200
    >>> dev_config.instance_name
201
201
    'development'
202
202
 
214
214
#    >>> os.environ[LPCONFIG] = 'mailman-itests'
215
215
#    >>> os.environ[DEFAULT_SECTION] = 'default'
216
216
 
217
 
#    # reload the CanonicalConfig class object.
 
217
#    # reload the LaunchpadConfig class object.
218
218
#    >>> config_module = reload(lp.services.config)
219
219
#    >>> from lp.services.config import config
220
220
#    >>> config.filename