Merge "Fix the package source don't register issue"

This commit is contained in:
Jenkins 2016-01-08 03:21:48 +00:00 committed by Gerrit Code Review
commit 459d564573
2 changed files with 14 additions and 11 deletions

View File

@ -518,7 +518,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']
@ -546,17 +547,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))

View File

@ -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',