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:
@@ -816,27 +816,12 @@ def validateSingleFlag(options, flag):
|
|||||||
msg = output_messages.ERR_ONLY_1_FLAG % ("--%s" % flag)
|
msg = output_messages.ERR_ONLY_1_FLAG % ("--%s" % flag)
|
||||||
raise FlagValidationError(msg)
|
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():
|
def initPluginsConfig():
|
||||||
for plugin in controller.getAllPlugins():
|
for plugin in controller.getAllPlugins():
|
||||||
plugin.initConfig(controller)
|
plugin.initConfig(controller)
|
||||||
|
|
||||||
def initPluginsSequences():
|
def initPluginsSequences():
|
||||||
setProvisioningDefaults()
|
|
||||||
for plugin in controller.getAllPlugins():
|
for plugin in controller.getAllPlugins():
|
||||||
plugin.initSequences(controller)
|
plugin.initSequences(controller)
|
||||||
|
|
||||||
|
|||||||
@@ -26,13 +26,19 @@ def initConfig(controllerObject):
|
|||||||
|
|
||||||
logging.debug("Provisioning OpenStack resources for demo usage and testing")
|
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 = {
|
conf_params = {
|
||||||
"PROVISION_DEMO" : [
|
"PROVISION_INIT" : [
|
||||||
{"CMD_OPTION" : "provision-demo",
|
{"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?",
|
"PROMPT" : "Would you like to provision for demo usage and testing?",
|
||||||
"OPTION_LIST" : ["y", "n"],
|
"OPTION_LIST" : ["y", "n"],
|
||||||
"VALIDATORS" : [validators.validate_options],
|
"VALIDATORS" : [validators.validate_options],
|
||||||
|
"PROCESSORS" : [process_provision],
|
||||||
"DEFAULT_VALUE" : "y",
|
"DEFAULT_VALUE" : "y",
|
||||||
"MASK_INPUT" : False,
|
"MASK_INPUT" : False,
|
||||||
"LOOSE_VALIDATION": True,
|
"LOOSE_VALIDATION": True,
|
||||||
@@ -40,6 +46,23 @@ def initConfig(controllerObject):
|
|||||||
"USE_DEFAULT" : False,
|
"USE_DEFAULT" : False,
|
||||||
"NEED_CONFIRM" : False,
|
"NEED_CONFIRM" : False,
|
||||||
"CONDITION" : 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",
|
{"CMD_OPTION" : "provision-demo-floatrange",
|
||||||
"USAGE" : "The CIDR network address for the floating IP subnet",
|
"USAGE" : "The CIDR network address for the floating IP subnet",
|
||||||
"PROMPT" : "Enter the 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,
|
"NEED_CONFIRM" : False,
|
||||||
"CONDITION" : 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" : [
|
"TEMPEST_GIT_REFS" : [
|
||||||
{"CMD_OPTION" : "provision-tempest-repo-uri",
|
{"CMD_OPTION" : "provision-tempest-repo-uri",
|
||||||
"USAGE" : "The uri of the tempest git repository to use",
|
"USAGE" : "The uri of the tempest git repository to use",
|
||||||
@@ -115,6 +124,11 @@ def initConfig(controllerObject):
|
|||||||
# resources are implemented).
|
# resources are implemented).
|
||||||
return is_all_in_one(config)
|
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):
|
def check_provisioning_tempest(config):
|
||||||
return allow_provisioning(config) and \
|
return allow_provisioning(config) and \
|
||||||
config.get('CONFIG_PROVISION_TEMPEST', 'n') == 'y'
|
config.get('CONFIG_PROVISION_TEMPEST', 'n') == 'y'
|
||||||
@@ -125,15 +139,15 @@ def initConfig(controllerObject):
|
|||||||
config['CONFIG_NEUTRON_L2_PLUGIN'] == 'openvswitch'
|
config['CONFIG_NEUTRON_L2_PLUGIN'] == 'openvswitch'
|
||||||
|
|
||||||
conf_groups = [
|
conf_groups = [
|
||||||
{ "GROUP_NAME" : "PROVISION_DEMO",
|
{ "GROUP_NAME" : "PROVISION_INIT",
|
||||||
"DESCRIPTION" : "Provisioning demo config",
|
"DESCRIPTION" : "Provisioning demo config",
|
||||||
"PRE_CONDITION" : allow_provisioning,
|
"PRE_CONDITION" : lambda x: 'yes',
|
||||||
"PRE_CONDITION_MATCH" : True,
|
"PRE_CONDITION_MATCH" : "yes",
|
||||||
"POST_CONDITION" : False,
|
"POST_CONDITION" : False,
|
||||||
"POST_CONDITION_MATCH" : True },
|
"POST_CONDITION_MATCH" : True },
|
||||||
{ "GROUP_NAME" : "PROVISION_TEMPEST",
|
{ "GROUP_NAME" : "PROVISION_DEMO",
|
||||||
"DESCRIPTION" : "Provisioning tempest config",
|
"DESCRIPTION" : "Provisioning demo config",
|
||||||
"PRE_CONDITION" : allow_provisioning,
|
"PRE_CONDITION" : check_provisioning_demo,
|
||||||
"PRE_CONDITION_MATCH" : True,
|
"PRE_CONDITION_MATCH" : True,
|
||||||
"POST_CONDITION" : False,
|
"POST_CONDITION" : False,
|
||||||
"POST_CONDITION_MATCH" : True },
|
"POST_CONDITION_MATCH" : True },
|
||||||
@@ -150,11 +164,23 @@ def initConfig(controllerObject):
|
|||||||
"POST_CONDITION" : False,
|
"POST_CONDITION" : False,
|
||||||
"POST_CONDITION_MATCH" : True },
|
"POST_CONDITION_MATCH" : True },
|
||||||
]
|
]
|
||||||
|
|
||||||
for group in conf_groups:
|
for group in conf_groups:
|
||||||
paramList = conf_params[group["GROUP_NAME"]]
|
paramList = conf_params[group["GROUP_NAME"]]
|
||||||
controller.addGroup(group, paramList)
|
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):
|
def marshall_conf_bool(conf, key):
|
||||||
if conf[key] == 'y':
|
if conf[key] == 'y':
|
||||||
@@ -203,6 +229,5 @@ def create_manifest(config):
|
|||||||
marshall_conf_bool(config, 'PROVISION_NEUTRON_AVAILABLE')
|
marshall_conf_bool(config, 'PROVISION_NEUTRON_AVAILABLE')
|
||||||
|
|
||||||
manifest_file = '%s_provision.pp' % host
|
manifest_file = '%s_provision.pp' % host
|
||||||
|
|
||||||
manifest_data = getManifestTemplate("provision.pp")
|
manifest_data = getManifestTemplate("provision.pp")
|
||||||
appendManifestFile(manifest_file, manifest_data)
|
appendManifestFile(manifest_file, manifest_data)
|
||||||
|
|||||||
Reference in New Issue
Block a user