Disable provisioning for multihost installations
Moved dirty hack of provisioning defaults to appropriate place. Modified provisioning parameter groups so they are disabled for multihost installations Fixes: rhbz#bug1080369 Change-Id: I563db1c14e79ef639280f02360b0d5a5d119b70a
This commit is contained in:
parent
90d7c80516
commit
c39a37076c
|
@ -816,27 +816,12 @@ def validateSingleFlag(options, flag):
|
|||
msg = output_messages.ERR_ONLY_1_FLAG % ("--%s" % flag)
|
||||
raise FlagValidationError(msg)
|
||||
|
||||
def setProvisioningDefaults():
|
||||
conf_ids = [
|
||||
'DEMO',
|
||||
'TEMPEST',
|
||||
'TEMPEST_REPO_URI',
|
||||
'TEMPEST_REPO_REVISION',
|
||||
'ALL_IN_ONE_OVS_BRIDGE',
|
||||
]
|
||||
pnames = ['CONFIG_PROVISION_' + x for x in conf_ids]
|
||||
params = [controller.getParamByName(x) for x in pnames]
|
||||
for param in params:
|
||||
controller.CONF[param.CONF_NAME] = (
|
||||
controller.CONF.get(param.CONF_NAME, param.DEFAULT_VALUE)
|
||||
)
|
||||
|
||||
def initPluginsConfig():
|
||||
for plugin in controller.getAllPlugins():
|
||||
plugin.initConfig(controller)
|
||||
|
||||
def initPluginsSequences():
|
||||
setProvisioningDefaults()
|
||||
for plugin in controller.getAllPlugins():
|
||||
plugin.initSequences(controller)
|
||||
|
||||
|
|
|
@ -26,13 +26,19 @@ def initConfig(controllerObject):
|
|||
|
||||
logging.debug("Provisioning OpenStack resources for demo usage and testing")
|
||||
|
||||
def process_provision(param, process_args=None):
|
||||
return param if is_all_in_one(controller.CONF) else 'n'
|
||||
|
||||
conf_params = {
|
||||
"PROVISION_DEMO" : [
|
||||
"PROVISION_INIT" : [
|
||||
{"CMD_OPTION" : "provision-demo",
|
||||
"USAGE" : "Whether to provision for demo usage and testing",
|
||||
"USAGE" : ("Whether to provision for demo usage and testing. Note "
|
||||
"that provisioning is only supported for all-in-one "
|
||||
"installations."),
|
||||
"PROMPT" : "Would you like to provision for demo usage and testing?",
|
||||
"OPTION_LIST" : ["y", "n"],
|
||||
"VALIDATORS" : [validators.validate_options],
|
||||
"PROCESSORS" : [process_provision],
|
||||
"DEFAULT_VALUE" : "y",
|
||||
"MASK_INPUT" : False,
|
||||
"LOOSE_VALIDATION": True,
|
||||
|
@ -40,6 +46,23 @@ def initConfig(controllerObject):
|
|||
"USE_DEFAULT" : False,
|
||||
"NEED_CONFIRM" : False,
|
||||
"CONDITION" : False },
|
||||
{"CMD_OPTION" : "provision-tempest",
|
||||
"USAGE" : ("Whether to configure tempest for testing. Note "
|
||||
"that provisioning is only supported for all-in-one "
|
||||
"installations."),
|
||||
"PROMPT" : "Would you like to configure Tempest (OpenStack test suite)?",
|
||||
"OPTION_LIST" : ["y", "n"],
|
||||
"VALIDATORS" : [validators.validate_options],
|
||||
"PROCESSORS" : [process_provision],
|
||||
"DEFAULT_VALUE" : "n",
|
||||
"MASK_INPUT" : False,
|
||||
"LOOSE_VALIDATION": True,
|
||||
"CONF_NAME" : "CONFIG_PROVISION_TEMPEST",
|
||||
"USE_DEFAULT" : False,
|
||||
"NEED_CONFIRM" : False,
|
||||
"CONDITION" : False },
|
||||
],
|
||||
"PROVISION_DEMO" : [
|
||||
{"CMD_OPTION" : "provision-demo-floatrange",
|
||||
"USAGE" : "The CIDR network address for the floating IP subnet",
|
||||
"PROMPT" : "Enter the network address for the floating IP subnet:",
|
||||
|
@ -53,20 +76,6 @@ def initConfig(controllerObject):
|
|||
"NEED_CONFIRM" : False,
|
||||
"CONDITION" : False },
|
||||
],
|
||||
"PROVISION_TEMPEST" : [
|
||||
{"CMD_OPTION" : "provision-tempest",
|
||||
"USAGE" : "Whether to configure tempest for testing",
|
||||
"PROMPT" : "Would you like to configure Tempest (OpenStack test suite)?",
|
||||
"OPTION_LIST" : ["y", "n"],
|
||||
"VALIDATORS" : [validators.validate_options],
|
||||
"DEFAULT_VALUE" : "n",
|
||||
"MASK_INPUT" : False,
|
||||
"LOOSE_VALIDATION": True,
|
||||
"CONF_NAME" : "CONFIG_PROVISION_TEMPEST",
|
||||
"USE_DEFAULT" : False,
|
||||
"NEED_CONFIRM" : False,
|
||||
"CONDITION" : False },
|
||||
],
|
||||
"TEMPEST_GIT_REFS" : [
|
||||
{"CMD_OPTION" : "provision-tempest-repo-uri",
|
||||
"USAGE" : "The uri of the tempest git repository to use",
|
||||
|
@ -115,6 +124,11 @@ def initConfig(controllerObject):
|
|||
# resources are implemented).
|
||||
return is_all_in_one(config)
|
||||
|
||||
def check_provisioning_demo(config):
|
||||
return (allow_provisioning(config) and
|
||||
(config.get('CONFIG_PROVISION_DEMO', 'n') == 'y' or
|
||||
config.get('CONFIG_PROVISION_TEMPEST', 'n') == 'y'))
|
||||
|
||||
def check_provisioning_tempest(config):
|
||||
return allow_provisioning(config) and \
|
||||
config.get('CONFIG_PROVISION_TEMPEST', 'n') == 'y'
|
||||
|
@ -125,15 +139,15 @@ def initConfig(controllerObject):
|
|||
config['CONFIG_NEUTRON_L2_PLUGIN'] == 'openvswitch'
|
||||
|
||||
conf_groups = [
|
||||
{ "GROUP_NAME" : "PROVISION_DEMO",
|
||||
{ "GROUP_NAME" : "PROVISION_INIT",
|
||||
"DESCRIPTION" : "Provisioning demo config",
|
||||
"PRE_CONDITION" : allow_provisioning,
|
||||
"PRE_CONDITION_MATCH" : True,
|
||||
"PRE_CONDITION" : lambda x: 'yes',
|
||||
"PRE_CONDITION_MATCH" : "yes",
|
||||
"POST_CONDITION" : False,
|
||||
"POST_CONDITION_MATCH" : True },
|
||||
{ "GROUP_NAME" : "PROVISION_TEMPEST",
|
||||
"DESCRIPTION" : "Provisioning tempest config",
|
||||
"PRE_CONDITION" : allow_provisioning,
|
||||
{ "GROUP_NAME" : "PROVISION_DEMO",
|
||||
"DESCRIPTION" : "Provisioning demo config",
|
||||
"PRE_CONDITION" : check_provisioning_demo,
|
||||
"PRE_CONDITION_MATCH" : True,
|
||||
"POST_CONDITION" : False,
|
||||
"POST_CONDITION_MATCH" : True },
|
||||
|
@ -150,11 +164,23 @@ def initConfig(controllerObject):
|
|||
"POST_CONDITION" : False,
|
||||
"POST_CONDITION_MATCH" : True },
|
||||
]
|
||||
|
||||
for group in conf_groups:
|
||||
paramList = conf_params[group["GROUP_NAME"]]
|
||||
controller.addGroup(group, paramList)
|
||||
|
||||
# Due to group checking some parameters might not be initialized, but
|
||||
# provision.pp needs them all. So we will initialize them with default
|
||||
# values
|
||||
params = [
|
||||
controller.getParamByName(x)
|
||||
for x in ['CONFIG_PROVISION_TEMPEST_REPO_URI',
|
||||
'CONFIG_PROVISION_TEMPEST_REPO_REVISION',
|
||||
'CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE']
|
||||
]
|
||||
for param in params:
|
||||
value = controller.CONF.get(param.CONF_NAME, param.DEFAULT_VALUE)
|
||||
controller.CONF[param.CONF_NAME] = value
|
||||
|
||||
|
||||
def marshall_conf_bool(conf, key):
|
||||
if conf[key] == 'y':
|
||||
|
@ -203,6 +229,5 @@ def create_manifest(config):
|
|||
marshall_conf_bool(config, 'PROVISION_NEUTRON_AVAILABLE')
|
||||
|
||||
manifest_file = '%s_provision.pp' % host
|
||||
|
||||
manifest_data = getManifestTemplate("provision.pp")
|
||||
appendManifestFile(manifest_file, manifest_data)
|
||||
|
|
Loading…
Reference in New Issue