aboutsummaryrefslogtreecommitdiff
path: root/kolla
diff options
context:
space:
mode:
authorJeffrey Zhang <zhang.lei.fly@gmail.com>2016-01-07 20:28:31 +0800
committerJeffrey Zhang <zhang.lei.fly@gmail.com>2016-01-07 21:06:22 +0800
commit9b19db099d9666810845ba5b7be9aff12c5d536d (patch)
treefb55d1a74d734459eb4439a0b89659deeff2c05b /kolla
parentc1fca2721187bf17b21f1608e6d57b4663fd6ba5 (diff)
downloadkolla-9b19db099d9666810845ba5b7be9aff12c5d536d.tar.gz
kolla-9b19db099d9666810845ba5b7be9aff12c5d536d.zip
Fix the package source don't register issue
Closes-Bug: #1531848 Change-Id: I3c6ceb9f1f367b8b19ab1b1d06c67817ab93cabb
Diffstat (limited to 'kolla')
-rwxr-xr-xkolla/cmd/build.py15
-rw-r--r--kolla/common/config.py10
2 files changed, 14 insertions, 11 deletions
diff --git a/kolla/cmd/build.py b/kolla/cmd/build.py
index 96a7a5e5d..61785f533 100755
--- a/kolla/cmd/build.py
+++ b/kolla/cmd/build.py
@@ -517,7 +517,8 @@ class KollaWorker(object):
def build_image_list(self):
def process_source_installation(image, section):
installation = dict()
- if section not in self.conf.list_all_sections():
+ # NOTE(jeffrey4l): source is not needed when the type is None
+ if self.conf._get('type', self.conf._get_group(section)) is None:
LOG.debug('%s:No source location found', section)
else:
installation['type'] = self.conf[section]['type']
@@ -545,17 +546,17 @@ class KollaWorker(object):
image['plugins'] = list()
if self.install_type == 'source':
- self.conf.register_opts([
- cfg.StrOpt('type'),
- cfg.StrOpt('location'),
- cfg.StrOpt('reference')
- ], image['name'])
+ # NOTE(jeffrey4l): register the opts if the section didn't
+ # register in the kolla/common/config.py file
+ if image['name'] not in self.conf._groups:
+ self.conf.register_opts(common_config.get_source_opts(),
+ image['name'])
image['source'] = process_source_installation(image,
image['name'])
for plugin in [match.group(0) for match in
(re.search('{}-plugin-.+'.format(image['name']),
section) for section in
- self.conf.list_all_sections()) if match]:
+ self.conf._groups) if match]:
image['plugins'].append(
process_source_installation(image, plugin))
diff --git a/kolla/common/config.py b/kolla/common/config.py
index f5d8f48d7..435f8ba19 100644
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -225,7 +225,7 @@ SOURCES = {
}
-def _get_source_opt(type_, location, reference=None):
+def get_source_opts(type_=None, location=None, reference=None):
return [cfg.StrOpt('type', choices=['git', 'url'],
default=type_,
help='Source location type'),
@@ -236,19 +236,19 @@ def _get_source_opt(type_, location, reference=None):
'or branch name'))]
-def gen_source_opts():
+def gen_all_source_opts():
for name, params in SOURCES.iteritems():
type_ = params['type']
location = params['location']
reference = params.get('reference')
- yield name, _get_source_opt(type_, location, reference)
+ yield name, get_source_opts(type_, location, reference)
def list_opts():
return itertools.chain([(None, _CLI_OPTS),
(None, _BASE_OPTS),
('profiles', _PROFILE_OPTS)],
- gen_source_opts(),
+ gen_all_source_opts(),
)
@@ -257,6 +257,8 @@ def parse(conf, args, usage=None, prog=None,
conf.register_cli_opts(_CLI_OPTS)
conf.register_opts(_BASE_OPTS)
conf.register_opts(_PROFILE_OPTS, group='profiles')
+ for name, opts in gen_all_source_opts():
+ conf.register_opts(opts, name)
conf(args=args,
project='kolla',