Beispiel #1
0
 def allow_provisioning(config):
     # Provisioning is currently supported only for all-in-one (due
     # to a limitation with how the custom types for OpenStack
     # resources are implemented) and neutron with namespaces (due
     # to the provisioning manifest assuming this configuration).
     return is_all_in_one(config) and \
            config['CONFIG_NEUTRON_INSTALL'] == 'y'
def install_keys(config, messages):
    with open(config["CONFIG_SSH_KEY"]) as fp:
        sshkeydata = fp.read().strip()

    # If this is a --allinone install *and* we are running as root,
    # we can configure the authorized_keys file locally, avoid problems
    # if PasswordAuthentication is disabled.
    if is_all_in_one(config) and os.getuid() == 0:
        install_keys_on_host(None, sshkeydata)
    else:
        for hostname in filtered_hosts(config):
            if '/' in hostname:
                hostname = hostname.split('/')[0]
            install_keys_on_host(hostname, sshkeydata)
Beispiel #3
0
def install_keys(config, messages):
    with open(config["CONFIG_SSH_KEY"]) as fp:
        sshkeydata = fp.read().strip()

    # If this is a --allinone install *and* we are running as root,
    # we can configure the authorized_keys file locally, avoid problems
    # if PasswordAuthentication is disabled.
    if is_all_in_one(config) and os.getuid() == 0:
        install_keys_on_host(None, sshkeydata)
    else:
        for hostname in filtered_hosts(config):
            if '/' in hostname:
                hostname = hostname.split('/')[0]
            install_keys_on_host(hostname, sshkeydata)
Beispiel #4
0
def initSequences(controller):
    provisioning_required = (
        is_all_in_one(controller.CONF)
        and
        ( controller.CONF['CONFIG_PROVISION_DEMO'] == 'y'
          or
          controller.CONF['CONFIG_PROVISION_TEMPEST'] == 'y')
    )

    if not provisioning_required:
        return
    marshall_conf_bool(controller.CONF, 'CONFIG_PROVISION_TEMPEST')
    marshall_conf_bool(controller.CONF,
                       'CONFIG_PROVISION_ALL_IN_ONE_OVS_BRIDGE')
    provision_steps = [
        {
            'title': 'Adding Provisioning manifest entries',
            'functions': [create_manifest],
        }
    ]
    controller.addSequence("Provisioning for Demo and Testing Usage",
                           [], [], provision_steps)
Beispiel #5
0
def initConfig(controllerObject):
    global controller
    controller = controllerObject
    logging.debug("Adding SERVERPREPARE KEY configuration")
    conf_params = {
            "SERVERPREPARE": [
                  {"CMD_OPTION"      : "use-epel",
                   "USAGE"           : "To subscribe each server to EPEL enter \"y\"",
                   "PROMPT"          : "To subscribe each server to EPEL enter \"y\"",
                   "OPTION_LIST"     : ["y", "n"],
                   "VALIDATORS"      : [validators.validate_options],
                   "DEFAULT_VALUE"   : "n",
                   "MASK_INPUT"      : False,
                   "LOOSE_VALIDATION": True,
                   "CONF_NAME"       : "CONFIG_USE_EPEL",
                   "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",
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : False,
                   "LOOSE_VALIDATION": True,
                   "CONF_NAME"       : "CONFIG_REPO",
                   "USE_DEFAULT"     : False,
                   "NEED_CONFIRM"    : False,
                   "CONDITION"       : False }],

            "RHEL": [
                  {"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",
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : False,
                   "LOOSE_VALIDATION": True,
                   "CONF_NAME"       : "CONFIG_RH_USER",
                   "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",
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : True,
                   "LOOSE_VALIDATION": True,
                   "CONF_NAME"       : "CONFIG_RH_PW",
                   "USE_DEFAULT"     : False,
                   "NEED_CONFIRM"    : False,
                   "CONDITION"       : False },

                  {"CMD_OPTION"      : "rh-beta-repo",
                   "USAGE"           : "To subscribe each server to Red Hat Enterprise Linux 6 Server Beta channel (only needed for Preview versions of RHOS) enter \"y\"",
                   "PROMPT"          : "To subscribe each server to Red Hat Enterprise Linux 6 Server Beta channel (only needed for Preview versions of RHOS) enter \"y\"",
                   "OPTION_LIST"     : ["y", "n"],
                   "VALIDATORS"      : [validators.validate_options],
                   "DEFAULT_VALUE"   : "n",
                   "MASK_INPUT"      : False,
                   "LOOSE_VALIDATION": True,
                   "CONF_NAME"       : "CONFIG_RH_BETA_REPO",
                   "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 "
                                        "satellite's username/password or activation "
                                        "key has to be provided"),
                   "PROMPT"          : ("To subscribe each server with RHN Satellite "
                                        "enter RHN Satellite server URL"),
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : False,
                   "LOOSE_VALIDATION": False,
                   "CONF_NAME"       : "CONFIG_SATELLITE_URL",
                   "USE_DEFAULT"     : False,
                   "NEED_CONFIRM"    : False,
                   "CONDITION"       : False }],

            "SATELLITE": [
                  {"CMD_OPTION"      : "rhn-satellite-username",
                   "USAGE"           : "Username to access RHN Satellite",
                   "PROMPT"          : ("Enter RHN Satellite username or leave plain "
                                        "if you will use activation key instead"),
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : False,
                   "LOOSE_VALIDATION": True,
                   "CONF_NAME"       : "CONFIG_SATELLITE_USER",
                   "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 "
                                        "if you will use activation key instead"),
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : True,
                   "LOOSE_VALIDATION": False,
                   "CONF_NAME"       : "CONFIG_SATELLITE_PW",
                   "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 "
                                        "if you used username/password instead"),
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : True,
                   "LOOSE_VALIDATION": False,
                   "CONF_NAME"       : "CONFIG_SATELLITE_AKEY",
                   "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",
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : True,
                   "LOOSE_VALIDATION": False,
                   "CONF_NAME"       : "CONFIG_SATELLITE_CACERT",
                   "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 "
                                        "Satellite"),
                   "PROMPT"          : ("If required specify the profile name that should "
                                        "be used as an identifier for the system in RHN "
                                        "Satellite"),
                   "OPTION_LIST"     : [],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : True,
                   "LOOSE_VALIDATION": False,
                   "CONF_NAME"       : "CONFIG_SATELLITE_PROFILE",
                   "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"),
                   "PROMPT"          : "Enter comma separated list of flags passed to rhnreg_ks",
                   "OPTION_LIST"     : ['novirtinfo', 'norhnsd', 'nopackages'],
                   "VALIDATORS"      : [validators.validate_multi_options],
                   "DEFAULT_VALUE"   : "",
                   "MASK_INPUT"      : True,
                   "LOOSE_VALIDATION": False,
                   "CONF_NAME"       : "CONFIG_SATELLITE_FLAGS",
                   "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",
              "DESCRIPTION"           : "Server Prepare Configs ",
              "PRE_CONDITION"         : lambda x: 'yes',
              "PRE_CONDITION_MATCH"   : "yes",
              "POST_CONDITION"        : False,
              "POST_CONDITION_MATCH"  : True},
        ]

    if ((is_all_in_one(controller.CONF) and is_rhel()) or
        not is_all_in_one(controller.CONF)):
        conf_groups.append({"GROUP_NAME"            : "RHEL",
                            "DESCRIPTION"           : "RHEL config",
                            "PRE_CONDITION"         : lambda x: 'yes',
                            "PRE_CONDITION_MATCH"   : "yes",
                            "POST_CONDITION"        : False,
                            "POST_CONDITION_MATCH"  : True})

        conf_groups.append({"GROUP_NAME"            : "SATELLITE",
                            "DESCRIPTION"           : "RHN Satellite config",
                            "PRE_CONDITION"         : filled_satellite,
                            "PRE_CONDITION_MATCH"   : True,
                            "POST_CONDITION"        : False,
                            "POST_CONDITION_MATCH"  : True})

        conf_groups.append({"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:
        paramList = conf_params[group["GROUP_NAME"]]
        controller.addGroup(group, paramList)
Beispiel #6
0
 def allow_provisioning(config):
     # Provisioning is currently supported only for all-in-one (due
     # to a limitation with how the custom types for OpenStack
     # resources are implemented).
     return is_all_in_one(config)
Beispiel #7
0
 def process_provision(param, process_args=None):
     return param if is_all_in_one(controller.CONF) else "n"
Beispiel #8
0
 def allow_provisioning(config):
     # Provisioning is currently supported only for all-in-one (due
     # to a limitation with how the custom types for OpenStack
     # resources are implemented).
     return is_all_in_one(config)
def initConfig(controller):
    conf_params = {
        "SERVERPREPARE": [
            {"CMD_OPTION": "use-epel",
             "USAGE": "To subscribe each server to EPEL enter \"y\"",
             "PROMPT": "To subscribe each server to EPEL enter \"y\"",
             "OPTION_LIST": ["y", "n"],
             "VALIDATORS": [validators.validate_options],
             "DEFAULT_VALUE": "n",
             "MASK_INPUT": False,
             "LOOSE_VALIDATION": True,
             "CONF_NAME": "CONFIG_USE_EPEL",
             "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"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": False,
             "LOOSE_VALIDATION": True,
             "CONF_NAME": "CONFIG_REPO",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False}
        ],

        "RHEL": [
            {"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 ",
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": False,
             "LOOSE_VALIDATION": True,
             "CONF_NAME": "CONFIG_RH_USER",
             "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 satellite's "
                       "username/password or activation key has "
                       "to be provided"),
             "PROMPT": ("To subscribe each server with RHN Satellite enter "
                        "RHN Satellite server URL"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": False,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_SATELLITE_URL",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False}
        ],

        "RHSM": [
            {"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"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": True,
             "CONF_NAME": "CONFIG_RH_PW",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False},

            {"CMD_OPTION": "rh-enable-optional",
             "USAGE": "To enable RHEL optional repos use value \"y\"",
             "PROMPT": "To enable RHEL optional repos use value \"y\"",
             "OPTION_LIST": ["y", "n"],
             "VALIDATORS": [validators.validate_options],
             "DEFAULT_VALUE": "y",
             "MASK_INPUT": False,
             "LOOSE_VALIDATION": True,
             "CONF_NAME": "CONFIG_RH_OPTIONAL",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False},

            {"CMD_OPTION": "rh-proxy-host",
             "USAGE": ("Specify a HTTP proxy to use with Red Hat subscription "
                       "manager"),
             "PROMPT": ("Specify a HTTP proxy to use with Red Hat subscription"
                        " manager"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_RH_PROXY",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False}
        ],

        "RHSM_PROXY": [
            {"CMD_OPTION": "rh-proxy-port",
             "USAGE": ("Specify port of Red Hat subscription manager HTTP "
                       "proxy"),
             "PROMPT": ("Specify port of Red Hat subscription manager HTTP "
                        "proxy"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": False,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_RH_PROXY_PORT",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False},

            {"CMD_OPTION": "rh-proxy-user",
             "USAGE": ("Specify a username to use with Red Hat subscription "
                       "manager HTTP proxy"),
             "PROMPT": ("Specify a username to use with Red Hat subscription "
                        "manager HTTP proxy"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_RH_PROXY_USER",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False},

            {"CMD_OPTION": "rh-proxy-password",
             "USAGE": ("Specify a password to use with Red Hat subscription "
                       "manager HTTP proxy"),
             "PROMPT": ("Specify a password to use with Red Hat subscription "
                        "manager HTTP proxy"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_RH_PROXY_PW",
             "USE_DEFAULT": False,
             "NEED_CONFIRM": False,
             "CONDITION": False}
        ],

        "SATELLITE": [
            {"CMD_OPTION": "rhn-satellite-username",
             "USAGE": "Username to access RHN Satellite",
             "PROMPT": ("Enter RHN Satellite username or leave plain if you "
                        "will use activation key instead"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": False,
             "LOOSE_VALIDATION": True,
             "CONF_NAME": "CONFIG_SATELLITE_USER",
             "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 if you "
                        "will use activation key instead"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_SATELLITE_PW",
             "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 if "
                        "you used username/password instead"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_SATELLITE_AKEY",
             "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",
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_SATELLITE_CACERT",
             "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 Satellite"),
             "PROMPT": ("If required specify the profile name that should be "
                        "used as an identifier for the system "
                        "in RHN Satellite"),
             "OPTION_LIST": [],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_SATELLITE_PROFILE",
             "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"),
             "PROMPT": ("Enter comma separated list of flags passed "
                        "to rhnreg_ks"),
             "OPTION_LIST": ['novirtinfo', 'norhnsd', 'nopackages'],
             "VALIDATORS": [validators.validate_multi_options],
             "DEFAULT_VALUE": "",
             "MASK_INPUT": True,
             "LOOSE_VALIDATION": False,
             "CONF_NAME": "CONFIG_SATELLITE_FLAGS",
             "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_rhsm(config):
        return bool(config.get('CONFIG_RH_USER'))

    def filled_rhsm_proxy(config):
        return bool(config.get('CONFIG_RH_PROXY'))

    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",
         "DESCRIPTION": "Server Prepare Configs ",
         "PRE_CONDITION": lambda x: 'yes',
         "PRE_CONDITION_MATCH": "yes",
         "POST_CONDITION": False,
         "POST_CONDITION_MATCH": True},
    ]

    config = controller.CONF
    if (is_all_in_one(config) and is_rhel()) or not is_all_in_one(config):
        conf_groups.extend([
            {"GROUP_NAME": "RHEL",
             "DESCRIPTION": "RHEL config",
             "PRE_CONDITION": lambda x: 'yes',
             "PRE_CONDITION_MATCH": "yes",
             "POST_CONDITION": False,
             "POST_CONDITION_MATCH": True},

            {"GROUP_NAME": "RHSM",
             "DESCRIPTION": "RH subscription manager config",
             "PRE_CONDITION": filled_rhsm,
             "PRE_CONDITION_MATCH": True,
             "POST_CONDITION": False,
             "POST_CONDITION_MATCH": True},

            {"GROUP_NAME": "RHSM_PROXY",
             "DESCRIPTION": "RH subscription manager proxy config",
             "PRE_CONDITION": filled_rhsm_proxy,
             "PRE_CONDITION_MATCH": True,
             "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:
        params = conf_params[group["GROUP_NAME"]]
        controller.addGroup(group, params)
Beispiel #10
0
 def process_provision(param, process_args=None):
     return param if is_all_in_one(controller.CONF) else 'n'
Beispiel #11
0
def initConfig(controller):
    conf_params = {
        "SERVERPREPARE": [{
            "CMD_OPTION": "use-epel",
            "USAGE": "To subscribe each server to EPEL enter \"y\"",
            "PROMPT": "To subscribe each server to EPEL enter \"y\"",
            "OPTION_LIST": ["y", "n"],
            "VALIDATORS": [validators.validate_options],
            "DEFAULT_VALUE": "n",
            "MASK_INPUT": False,
            "LOOSE_VALIDATION": True,
            "CONF_NAME": "CONFIG_USE_EPEL",
            "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"),
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            False,
            "LOOSE_VALIDATION":
            True,
            "CONF_NAME":
            "CONFIG_REPO",
            "USE_DEFAULT":
            False,
            "NEED_CONFIRM":
            False,
            "CONDITION":
            False
        }],
        "RHEL": [{
            "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 ",
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            False,
            "LOOSE_VALIDATION":
            True,
            "CONF_NAME":
            "CONFIG_RH_USER",
            "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"),
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            True,
            "LOOSE_VALIDATION":
            True,
            "CONF_NAME":
            "CONFIG_RH_PW",
            "USE_DEFAULT":
            False,
            "NEED_CONFIRM":
            False,
            "CONDITION":
            False
        }, {
            "CMD_OPTION": "rhn-enable-optional",
            "USAGE": "To enable RHEL optional repos use value \"y\"",
            "PROMPT": "To enable RHEL optional repos use value \"y\"",
            "OPTION_LIST": ["y", "n"],
            "VALIDATORS": [validators.validate_options],
            "DEFAULT_VALUE": "y",
            "MASK_INPUT": False,
            "LOOSE_VALIDATION": True,
            "CONF_NAME": "CONFIG_RH_OPTIONAL",
            "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 satellite's "
                      "username/password or activation key has "
                      "to be provided"),
            "PROMPT": ("To subscribe each server with RHN Satellite enter "
                       "RHN Satellite server URL"),
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            False,
            "LOOSE_VALIDATION":
            False,
            "CONF_NAME":
            "CONFIG_SATELLITE_URL",
            "USE_DEFAULT":
            False,
            "NEED_CONFIRM":
            False,
            "CONDITION":
            False
        }],
        "SATELLITE": [{
            "CMD_OPTION":
            "rhn-satellite-username",
            "USAGE":
            "Username to access RHN Satellite",
            "PROMPT": ("Enter RHN Satellite username or leave plain if you "
                       "will use activation key instead"),
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            False,
            "LOOSE_VALIDATION":
            True,
            "CONF_NAME":
            "CONFIG_SATELLITE_USER",
            "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 if you "
                       "will use activation key instead"),
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            True,
            "LOOSE_VALIDATION":
            False,
            "CONF_NAME":
            "CONFIG_SATELLITE_PW",
            "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 if "
                       "you used username/password instead"),
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            True,
            "LOOSE_VALIDATION":
            False,
            "CONF_NAME":
            "CONFIG_SATELLITE_AKEY",
            "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",
            "OPTION_LIST": [],
            "DEFAULT_VALUE": "",
            "MASK_INPUT": True,
            "LOOSE_VALIDATION": False,
            "CONF_NAME": "CONFIG_SATELLITE_CACERT",
            "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 Satellite"),
            "PROMPT": ("If required specify the profile name that should be "
                       "used as an identifier for the system "
                       "in RHN Satellite"),
            "OPTION_LIST": [],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            True,
            "LOOSE_VALIDATION":
            False,
            "CONF_NAME":
            "CONFIG_SATELLITE_PROFILE",
            "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"),
            "PROMPT": ("Enter comma separated list of flags passed "
                       "to rhnreg_ks"),
            "OPTION_LIST": ['novirtinfo', 'norhnsd', 'nopackages'],
            "VALIDATORS": [validators.validate_multi_options],
            "DEFAULT_VALUE":
            "",
            "MASK_INPUT":
            True,
            "LOOSE_VALIDATION":
            False,
            "CONF_NAME":
            "CONFIG_SATELLITE_FLAGS",
            "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",
            "DESCRIPTION": "Server Prepare Configs ",
            "PRE_CONDITION": lambda x: 'yes',
            "PRE_CONDITION_MATCH": "yes",
            "POST_CONDITION": False,
            "POST_CONDITION_MATCH": True
        },
    ]

    config = controller.CONF
    if (is_all_in_one(config) and is_rhel()) or not is_all_in_one(config):
        conf_groups.append({
            "GROUP_NAME": "RHEL",
            "DESCRIPTION": "RHEL config",
            "PRE_CONDITION": lambda x: 'yes',
            "PRE_CONDITION_MATCH": "yes",
            "POST_CONDITION": False,
            "POST_CONDITION_MATCH": True
        })

        conf_groups.append({
            "GROUP_NAME": "SATELLITE",
            "DESCRIPTION": "RHN Satellite config",
            "PRE_CONDITION": filled_satellite,
            "PRE_CONDITION_MATCH": True,
            "POST_CONDITION": False,
            "POST_CONDITION_MATCH": True
        })

        conf_groups.append({
            "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:
        params = conf_params[group["GROUP_NAME"]]
        controller.addGroup(group, params)