Merge "Separate satellite configuration from the rest"

This commit is contained in:
Jenkins
2013-02-25 15:27:30 +00:00
committed by Gerrit Code Review
2 changed files with 92 additions and 54 deletions

View File

@@ -301,7 +301,7 @@ def _handleGroupCondition(config, conditionName, conditionValue):
"""
# If the post condition is a function
if type(conditionName) == types.FunctionType:
if callable(conditionName):
# Call the function conditionName with conf as the arg
conditionValue = conditionName(controller.CONF)
@@ -313,7 +313,6 @@ def _handleGroupCondition(config, conditionName, conditionValue):
# Any other type is invalid
raise TypeError("%s type (%s) is not supported" % (conditionName, type(conditionName)))
return conditionValue
def _loadParamFromFile(config, section, paramName):
"""

View File

@@ -28,7 +28,8 @@ def initConfig(controllerObject):
global controller
controller = controllerObject
logging.debug("Adding SERVERPREPARE KEY configuration")
conf_params = {"SERVERPREPARE": [
conf_params = {
"SERVERPREPARE": [
{"CMD_OPTION" : "use-epel",
"USAGE" : "Install OpenStack from EPEL. If set to \"y\" EPEL will be installed on each server",
"PROMPT" : "Should Packstack install EPEL on each server",
@@ -41,6 +42,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "additional-repo",
"USAGE" : "A comma separated list of URLs to any additional yum repositories to install",
"PROMPT" : "Enter a comma separated list of URLs to any additional yum repositories to install",
@@ -52,6 +54,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rh-username",
"USAGE" : "To subscribe each server with Red Hat subscription manager, include this with CONFIG_RH_PW",
"PROMPT" : "To subscribe each server to Red Hat enter a username here",
@@ -63,6 +66,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rh-password",
"USAGE" : "To subscribe each server with Red Hat subscription manager, include this with CONFIG_RH_USER",
"PROMPT" : "To subscribe each server to Red Hat enter your password here",
@@ -74,6 +78,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rh-beta-repo",
"USAGE" : "To subscribe each server with Red Hat subscription manager, to Red Hat Beta RPM's",
"PROMPT" : "To subscribe each server to Red Hat Beta RPM's enter y",
@@ -86,6 +91,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-server",
"USAGE" : ("To subscribe each server with RHN Satellite,"
"fill Satellite's URL here. Note that either "
@@ -100,7 +106,9 @@ def initConfig(controllerObject):
"CONF_NAME" : "CONFIG_SATELLITE_URL",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
"CONDITION" : False }],
"SATELLITE": [
{"CMD_OPTION" : "rhn-satellite-username",
"USAGE" : "Username to access RHN Satellite",
"PROMPT" : ("Enter RHN Satellite username or leave plain "
@@ -113,6 +121,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-password",
"USAGE" : "Password to access RHN Satellite",
"PROMPT" : ("Enter RHN Satellite password or leave plain "
@@ -125,6 +134,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-activation-key",
"USAGE" : "Activation key for subscription to RHN Satellite",
"PROMPT" : ("Enter RHN Satellite activation key or leave plain "
@@ -137,6 +147,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-cacert",
"USAGE" : "Specify a path or URL to a SSL CA certificate to use",
"PROMPT" : "Specify a path or URL to a SSL CA certificate to use",
@@ -148,6 +159,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-profile",
"USAGE" : ("If required specify the profile name that should "
"be used as an identifier for the system in RHN "
@@ -163,39 +175,7 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-proxy-host",
"USAGE" : "Specify a HTTP proxy to use with RHN Satellite",
"PROMPT" : "Specify a HTTP proxy to use with RHN Satellite",
"OPTION_LIST" : [],
"DEFAULT_VALUE" : "",
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_SATELLITE_PROXY",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-proxy-username",
"USAGE" : "Specify a username to use with an authenticated HTTP proxy",
"PROMPT" : "Specify a username to use with an authenticated HTTP proxy",
"OPTION_LIST" : [],
"DEFAULT_VALUE" : "",
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_SATELLITE_PROXY_USER",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-proxy-password",
"USAGE" : "Specify a password to use with an authenticated HTTP proxy.",
"PROMPT" : "Specify a password to use with an authenticated HTTP proxy.",
"OPTION_LIST" : [],
"DEFAULT_VALUE" : "",
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_SATELLITE_PROXY_PW",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-flags",
"USAGE" : ("Comma separated list of flags passed to rhnreg_ks. Valid "
"flags are: novirtinfo, norhnsd, nopackages"),
@@ -209,16 +189,71 @@ def initConfig(controllerObject):
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
]
}
{"CMD_OPTION" : "rhn-satellite-proxy-host",
"USAGE" : "Specify a HTTP proxy to use with RHN Satellite",
"PROMPT" : "Specify a HTTP proxy to use with RHN Satellite",
"OPTION_LIST" : [],
"DEFAULT_VALUE" : "",
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_SATELLITE_PROXY",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False }],
"SATELLITE_PROXY": [
{"CMD_OPTION" : "rhn-satellite-proxy-username",
"USAGE" : "Specify a username to use with an authenticated HTTP proxy",
"PROMPT" : "Specify a username to use with an authenticated HTTP proxy",
"OPTION_LIST" : [],
"DEFAULT_VALUE" : "",
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_SATELLITE_PROXY_USER",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False },
{"CMD_OPTION" : "rhn-satellite-proxy-password",
"USAGE" : "Specify a password to use with an authenticated HTTP proxy.",
"PROMPT" : "Specify a password to use with an authenticated HTTP proxy.",
"OPTION_LIST" : [],
"DEFAULT_VALUE" : "",
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
"CONF_NAME" : "CONFIG_SATELLITE_PROXY_PW",
"USE_DEFAULT" : False,
"NEED_CONFIRM" : False,
"CONDITION" : False }]}
def filled_satellite(config):
return bool(config.get('CONFIG_SATELLITE_URL'))
def filled_satellite_proxy(config):
return bool(config.get('CONFIG_SATELLITE_PROXY'))
conf_groups = [
{ "GROUP_NAME" : "SERVERPREPARE",
{"GROUP_NAME" : "SERVERPREPARE",
"DESCRIPTION" : "Server Prepare Configs ",
"PRE_CONDITION" : utils.returnYes,
"PRE_CONDITION_MATCH" : "yes",
"POST_CONDITION" : False,
"POST_CONDITION_MATCH" : True},
{"GROUP_NAME" : "SATELLITE",
"DESCRIPTION" : "RHN Satellite config",
"PRE_CONDITION" : filled_satellite,
"PRE_CONDITION_MATCH" : True,
"POST_CONDITION" : False,
"POST_CONDITION_MATCH" : True},
{"GROUP_NAME" : "SATELLITE_PROXY",
"DESCRIPTION" : "RHN Satellite proxy config",
"PRE_CONDITION" : filled_satellite_proxy,
"PRE_CONDITION_MATCH" : True,
"POST_CONDITION" : False,
"POST_CONDITION_MATCH" : True},
]
for group in conf_groups:
@@ -330,18 +365,22 @@ def serverprep():
rh_password = config["CONFIG_RH_PW"].strip()
sat_registered = set()
satellite_flags = map(lambda i: i.strip(),
config["CONFIG_SATELLITE_FLAGS"].split(','))
satellite_url = config["CONFIG_SATELLITE_URL"]
satellite_args = {'username': config["CONFIG_SATELLITE_USER"].strip(),
'password': config["CONFIG_SATELLITE_PW"].strip(),
'cacert': config["CONFIG_SATELLITE_CACERT"].strip(),
'activation_key': config["CONFIG_SATELLITE_AKEY"].strip(),
'profile_name': config["CONFIG_SATELLITE_PROFILE"].strip(),
'proxy_host': config["CONFIG_SATELLITE_PROXY"].strip(),
'proxy_user': config["CONFIG_SATELLITE_PROXY_USER"].strip(),
'proxy_pass': config["CONFIG_SATELLITE_PROXY_PW"].strip(),
'flags': satellite_flags}
sat_url = config["CONFIG_SATELLITE_URL"].strip()
if sat_url:
sat_flags = map(lambda i: i.strip(),
config["CONFIG_SATELLITE_FLAGS"].split(','))
sat_proxy_user = config.get("CONFIG_SATELLITE_PROXY_USER", '')
sat_proxy_pass = config.get("CONFIG_SATELLITE_PROXY_PW", '')
sat_args = {'username': config["CONFIG_SATELLITE_USER"].strip(),
'password': config["CONFIG_SATELLITE_PW"].strip(),
'cacert': config["CONFIG_SATELLITE_CACERT"].strip(),
'activation_key': config["CONFIG_SATELLITE_AKEY"].strip(),
'profile_name': config["CONFIG_SATELLITE_PROFILE"].strip(),
'proxy_host': config["CONFIG_SATELLITE_PROXY"].strip(),
'proxy_user': sat_proxy_user.strip(),
'proxy_pass': sat_proxy_pass.strip(),
'flags': sat_flags}
for hostname in gethostlist(config):
if '/' in hostname:
@@ -394,6 +433,6 @@ def serverprep():
run_rhsm_reg(hostname, rh_username, rh_password, config["CONFIG_RH_BETA_REPO"] == 'y')
# Subscribe to RHN Satellite if configured
if satellite_url and hostname not in sat_registered:
run_rhn_reg(hostname, satellite_url, **satellite_args)
if sat_url and hostname not in sat_registered:
run_rhn_reg(hostname, sat_url, **sat_args)
sat_registered.add(hostname)