diff options
author | Mark McLoughlin <markmc@redhat.com> | 2014-07-02 15:31:27 +0100 |
---|---|---|
committer | Mark McLoughlin <markmc@redhat.com> | 2014-07-02 16:17:16 +0100 |
commit | a72e49c3ec7ec28c88d501b50d94bf46e08d515e (patch) | |
tree | 1a1a54e151ba6acfbc06f1d6203cb0349b560d99 | |
parent | 3d3ca2ac3f9a59a3d1156bdb8f4f797136821d9d (diff) | |
download | oslo-config-a72e49c3ec7ec28c88d501b50d94bf46e08d515e.tar.gz |
generator: refactor MultiStrOpt handling
This code was just confusing. Explicitly handle MultiStrOpt differently
from other types to make things more clear.
Change-Id: Ib6a01f76595c8874809c4d6db969ea8200d6fbb2
-rw-r--r-- | oslo/config/generator.py | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/oslo/config/generator.py b/oslo/config/generator.py index 9962030..46d21c1 100644 --- a/oslo/config/generator.py +++ b/oslo/config/generator.py @@ -207,30 +207,31 @@ class _OptFormatter(object): lines.append('# Deprecated group/name - [%s]/%s\n' % (d.group or 'DEFAULT', d.name or opt.dest)) - if opt.default is None: - default_str = '<None>' - elif isinstance(opt, cfg.StrOpt): - default_str = opt.default - elif isinstance(opt, cfg.BoolOpt): - default_str = str(opt.default).lower() - elif (isinstance(opt, cfg.IntOpt) or - isinstance(opt, cfg.FloatOpt)): - default_str = str(opt.default) - elif isinstance(opt, cfg.ListOpt): - default_str = ','.join(opt.default) - elif isinstance(opt, cfg.DictOpt): - sorted_items = sorted(opt.default.items(), - key=operator.itemgetter(0)) - default_str = ','.join(['%s:%s' % i for i in sorted_items]) - elif isinstance(opt, cfg.MultiStrOpt): - default_str = str(opt.default) + if isinstance(opt, cfg.MultiStrOpt): + if opt.default is None: + defaults = ['<None>'] + else: + defaults = opt.default else: - LOG.warning('Unknown option type: %s', repr(opt)) - default_str = str(opt.default) - - defaults = [default_str] - if isinstance(opt, cfg.MultiStrOpt) and opt.default: - defaults = opt.default + if opt.default is None: + default_str = '<None>' + elif isinstance(opt, cfg.StrOpt): + default_str = opt.default + elif isinstance(opt, cfg.BoolOpt): + default_str = str(opt.default).lower() + elif (isinstance(opt, cfg.IntOpt) or + isinstance(opt, cfg.FloatOpt)): + default_str = str(opt.default) + elif isinstance(opt, cfg.ListOpt): + default_str = ','.join(opt.default) + elif isinstance(opt, cfg.DictOpt): + sorted_items = sorted(opt.default.items(), + key=operator.itemgetter(0)) + default_str = ','.join(['%s:%s' % i for i in sorted_items]) + else: + LOG.warning('Unknown option type: %s', repr(opt)) + default_str = str(opt.default) + defaults = [default_str] for default_str in defaults: default_str = self.sanitize_default(opt, default_str) |