Added missing validator test renamed validators module to be pep8 compliant

Change-Id: I476ad5af8b292cb1a094e2913952b1756aa35517
This commit is contained in:
Martin Magr 2013-02-28 11:43:23 +01:00
parent 6efb258bb1
commit db92c34832
19 changed files with 96 additions and 85 deletions

View File

@ -14,9 +14,9 @@ import textwrap
from optparse import OptionParser, OptionGroup
import basedefs
import validators
import common_utils as utils
import engine_processors as process
import engine_validators as validate
import output_messages
from .exceptions import FlagValidationError, ParamValidationError
@ -80,8 +80,8 @@ def _getInputFromUser(param):
message = StringIO()
message.write(param.getKey("PROMPT"))
validators = param.getKey("VALIDATORS") or []
if validate.validate_regexp not in validators \
val_list = param.getKey("VALIDATORS") or []
if validators.validate_regexp not in val_list \
and param.getKey("OPTION_LIST"):
message.write(" [%s]" % "|".join(param.getKey("OPTION_LIST")))
@ -147,7 +147,7 @@ def input_param(param):
confirmedParamName = param.getKey("CONF_NAME") + "_CONFIRMED"
confirmedParam.setKey("CONF_NAME", confirmedParamName)
confirmedParam.setKey("PROMPT", output_messages.INFO_CONF_PARAMS_PASSWD_CONFIRM_PROMPT)
confirmedParam.setKey("VALIDATORS", [validate.validate_not_empty])
confirmedParam.setKey("VALIDATORS", [validators.validate_not_empty])
# Now get both values from user (with existing validations
while True:
_getInputFromUser(param)
@ -264,9 +264,9 @@ def validate_param_value(param, value):
cname = param.getKey("CONF_NAME")
logging.debug("Validating parameter %s." % cname)
validators = param.getKey("VALIDATORS") or []
val_list = param.getKey("VALIDATORS") or []
opt_list = param.getKey("OPTION_LIST")
for val_func in validators:
for val_func in val_list:
try:
val_func(value, opt_list)
except ParamValidationError as ex:

View File

@ -107,7 +107,7 @@ def validate_options(param, options=None):
if param not in options:
logging.debug('validate_options(%s, options=%s) failed.' %
(param, options))
msg = 'Given value is not is allowed values %s: %s'
msg = 'Given value is not member of allowed values %s: %s'
raise ParamValidationError(msg % (options, param))
@ -120,11 +120,8 @@ def validate_multi_options(param, options=None):
return
options = options or []
for i in param.split(','):
if i.strip() not in options:
logging.debug('validate_multi_options(%s, options=%s) '
'failed.' % (param, options))
msg = 'Given value is not member of allowed values %s: %s'
raise ParamValidationError(msg % (options, param))
validate_options(i.strip(), options=options)
def validate_ip(param, options=None):
"""

View File

@ -8,7 +8,7 @@ import logging
from packstack.installer import exceptions
from packstack.installer import engine_processors as process
from packstack.installer import engine_validators as validate
from packstack.installer import validators
from packstack.installer import basedefs
import packstack.installer.common_utils as utils
@ -37,7 +37,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install Cinder",
"PROMPT" : "Enter the IP address of the Cinder server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -49,7 +49,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Cinder to access DB",
"PROMPT" : "Enter the password for the Cinder DB access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -61,7 +61,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Cinder to authenticate with Keystone",
"PROMPT" : "Enter the password for the Cinder Keystone access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -73,7 +73,7 @@ def initConfig(controllerObject):
"USAGE" : "Create Cinder's volumes group",
"PROMPT" : "Should Cinder's volumes group be created?",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "y",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -97,7 +97,7 @@ def initConfig(controllerObject):
"USAGE" : "Cinder's volumes group size",
"PROMPT" : "Enter Cinder's volumes group size",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "20G",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,

View File

@ -5,7 +5,7 @@ Installs and configures OpenStack Horizon
import logging
import uuid
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs, output_messages
import packstack.installer.common_utils as utils
@ -30,7 +30,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install Horizon",
"PROMPT" : "Enter the IP address of the Horizon server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -42,7 +42,7 @@ def initConfig(controllerObject):
"USAGE" : "To set up Horizon communication over https set this to \"y\"",
"PROMPT" : "Would you like to set up Horizon communication over https",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "n",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,

View File

@ -5,7 +5,7 @@ Installs and configures Glance
import uuid
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs
import packstack.installer.common_utils as utils
@ -30,7 +30,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install Glance",
"PROMPT" : "Enter the IP address of the Glance server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -42,7 +42,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Glance to access DB",
"PROMPT" : "Enter the password for the Glance DB access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -54,7 +54,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Glance to authenticate with Keystone",
"PROMPT" : "Enter the password for the Glance Keystone access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,

View File

@ -6,7 +6,7 @@ import logging
import uuid
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs
import packstack.installer.common_utils as utils
@ -31,7 +31,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install Keystone",
"PROMPT" : "Enter the IP address of the Keystone server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -43,7 +43,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Keystone to access DB",
"PROMPT" : "Enter the password for the Keystone DB access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -55,7 +55,7 @@ def initConfig(controllerObject):
"USAGE" : "The token to use for the Keystone service api",
"PROMPT" : "The token to use for the Keystone service api",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex,
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -67,7 +67,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Keystone admin user",
"PROMPT" : "Enter the password for the Keystone admin user",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,

View File

@ -5,7 +5,7 @@ Installs and configures MySQL
import uuid
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs
import packstack.installer.common_utils as utils
@ -30,7 +30,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install MySQL",
"PROMPT" : "Enter the IP address of the MySQL server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -42,7 +42,7 @@ def initConfig(controllerObject):
"USAGE" : "Username for the MySQL admin user",
"PROMPT" : "Enter the username for the MySQL admin user",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "root",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -54,7 +54,7 @@ def initConfig(controllerObject):
"USAGE" : "Password for the MySQL admin user",
"PROMPT" : "Enter the password for the MySQL admin user",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": True,

View File

@ -5,7 +5,7 @@ Installs and configures Nagios
import uuid
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
from packstack.installer import basedefs, output_messages
import packstack.installer.common_utils as utils
@ -31,7 +31,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the Nagios server",
"PROMPT" : "Enter the IP address of the Nagios server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -43,7 +43,7 @@ def initConfig(controllerObject):
"USAGE" : "The password of the nagiosadmin user on the Nagios server",
"PROMPT" : "Enter the password for the nagiosadmin user",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": True,
@ -165,6 +165,6 @@ def createnrpemanifests():
appendManifestFile(manifestfile, manifestdata)
controller.MESSAGES.append("To use Nagios, browse to http://%s/nagios "
"username : nagiosadmin, password : %s" %
(controller.CONF['CONFIG_NAGIOS_HOST'],
"username : nagiosadmin, password : %s" %
(controller.CONF['CONFIG_NAGIOS_HOST'],
controller.CONF['CONFIG_NAGIOS_PW']))

View File

@ -6,7 +6,7 @@ import os
import uuid
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
import packstack.installer.common_utils as utils
from packstack.installer.exceptions import ScriptRuntimeError
@ -29,7 +29,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the Nova API service",
"PROMPT" : "Enter the IP address of the Nova API service",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ip, validate.validate_ssh],
"VALIDATORS" : [validators.validate_ip, validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -41,7 +41,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the Nova Cert service",
"PROMPT" : "Enter the IP address of the Nova Cert service",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -53,7 +53,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the Nova VNC proxy",
"PROMPT" : "Enter the IP address of the Nova VNC proxy",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -65,7 +65,7 @@ def initConfig(controllerObject):
"USAGE" : "A comma separated list of IP addresses on which to install the Nova Compute services",
"PROMPT" : "Enter a comma separated list of IP addresses on which to install the Nova Compute services",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_multi_ssh],
"VALIDATORS" : [validators.validate_multi_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -77,7 +77,7 @@ def initConfig(controllerObject):
"USAGE" : "Private interface for Flat DHCP on the Nova compute servers",
"PROMPT" : "Enter the Private interface for Flat DHCP on the Nova compute servers",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "eth1",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -89,7 +89,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the Nova Network service",
"PROMPT" : "Enter the IP address of the Nova Network service",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ip, validate.validate_ssh],
"VALIDATORS" : [validators.validate_ip, validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -101,7 +101,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Nova to access DB",
"PROMPT" : "Enter the password for the Nova DB access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -113,7 +113,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Nova to authenticate with Keystone",
"PROMPT" : "Enter the password for the Nova Keystone access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -125,7 +125,7 @@ def initConfig(controllerObject):
"USAGE" : "Public interface on the Nova network server",
"PROMPT" : "Enter the Public interface on the Nova network server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "eth0",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -137,7 +137,7 @@ def initConfig(controllerObject):
"USAGE" : "Private interface for Flat DHCP on the Nova network server",
"PROMPT" : "Enter the Private interface for Flat DHCP on the Nova network server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : "eth1",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -149,7 +149,7 @@ def initConfig(controllerObject):
"USAGE" : "IP Range for Flat DHCP",
"PROMPT" : "Enter the IP Range for Flat DHCP",
"OPTION_LIST" : ["^([\d]{1,3}\.){3}[\d]{1,3}/\d\d?$"],
"VALIDATORS" : [validate.validate_regexp],
"VALIDATORS" : [validators.validate_regexp],
"DEFAULT_VALUE" : "192.168.32.0/22",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -161,7 +161,7 @@ def initConfig(controllerObject):
"USAGE" : "IP Range for Floating IP's",
"PROMPT" : "Enter the IP Range for Floating IP's",
"OPTION_LIST" : ["^([\d]{1,3}\.){3}[\d]{1,3}/\d\d?$"],
"VALIDATORS" : [validate.validate_regexp],
"VALIDATORS" : [validators.validate_regexp],
"DEFAULT_VALUE" : "10.3.4.0/22",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -173,7 +173,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the Nova Scheduler service",
"PROMPT" : "Enter the IP address of the Nova Scheduler service",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -187,7 +187,7 @@ def initConfig(controllerObject):
"PROMPT" : "Enter the CPU overcommitment ratio. "
"Set to 1.0 to disable CPU overcommitment",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_float],
"VALIDATORS" : [validators.validate_float],
"DEFAULT_VALUE" : 16.0,
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -201,7 +201,7 @@ def initConfig(controllerObject):
"PROMPT" : "Enter the RAM overcommitment ratio. "
"Set to 1.0 to disable RAM overcommitment",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_float],
"VALIDATORS" : [validators.validate_float],
"DEFAULT_VALUE" : 1.5,
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,

View File

@ -4,7 +4,7 @@ Installs and configures an OpenStack Client
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs, output_messages
import packstack.installer.common_utils as utils
@ -29,7 +29,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the OpenStack client packages. An admin \"rc\" file will also be installed",
"PROMPT" : "Enter the IP address of the client server",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,

View File

@ -4,7 +4,7 @@ Installs and configures an OpenStack Client
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs, output_messages
import packstack.installer.common_utils as utils

View File

@ -5,7 +5,7 @@ Plugin responsible for setting OpenStack global options
import uuid
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.common_utils as utils
from packstack.modules.ospluginutils import gethostlist,\
@ -29,7 +29,7 @@ def initConfig(controllerObject):
"USAGE" : "Set to 'y' if you would like Packstack to install Glance",
"PROMPT" : "Should Packstack install Glance image service",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "y",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -41,7 +41,7 @@ def initConfig(controllerObject):
"USAGE" : "Set to 'y' if you would like Packstack to install Cinder",
"PROMPT" : "Should Packstack install Cinder volume service",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "y",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -53,7 +53,7 @@ def initConfig(controllerObject):
"USAGE" : "Set to 'y' if you would like Packstack to install Nova",
"PROMPT" : "Should Packstack install Nova compute service",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "y",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -65,7 +65,7 @@ def initConfig(controllerObject):
"USAGE" : "Set to 'y' if you would like Packstack to install Horizon",
"PROMPT" : "Should Packstack install Horizon dashboard",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "y",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -77,7 +77,7 @@ def initConfig(controllerObject):
"USAGE" : "Set to 'y' if you would like Packstack to install Swift",
"PROMPT" : "Should Packstack install Swift object storage",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "n",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -89,7 +89,7 @@ def initConfig(controllerObject):
"USAGE" : "Set to 'y' if you would like Packstack to install the OpenStack Client packages. An admin \"rc\" file will also be installed",
"PROMPT" : "Should Packstack install OpenStack client tools",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "y",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -112,7 +112,7 @@ def initConfig(controllerObject):
"USAGE" : "Set to 'y' if you would like Packstack to install Nagios to monitor openstack hosts",
"PROMPT" : "Should Packstack install Nagios to monitor openstack hosts",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : 'n',
"MASK_INPUT" : False,
"LOOSE_VALIDATION": False,
@ -156,7 +156,7 @@ def create_ntp_manifest():
servers = ''
for srv in controller.CONF['CONFIG_NTP_SERVERS'].split(','):
srv = srv.strip()
validate.validate_ping(srv)
validators.validate_ping(srv)
servers += 'server %s\n' % srv
controller.CONF.setdefault('CONFIG_NTP_FIRST_SERVER', srv)
controller.CONF['CONFIG_NTP_SERVERS'] = servers

View File

@ -4,7 +4,7 @@ Installs and configures qpid
import logging
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs
import packstack.installer.common_utils as utils
@ -29,7 +29,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address of the server on which to install the QPID service",
"PROMPT" : "Enter the IP address of the QPID service",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ssh],
"VALIDATORS" : [validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,

View File

@ -9,7 +9,7 @@ import datetime
from packstack.installer import basedefs
from packstack.installer import common_utils as utils
from packstack.installer import engine_validators as validate
from packstack.installer import validators
from packstack.installer.exceptions import InstallError
@ -34,7 +34,7 @@ def initConfig(controllerObject):
"USAGE" : "Install OpenStack from EPEL. If set to \"y\" EPEL will be installed on each server",
"PROMPT" : "Should Packstack install EPEL on each server",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "n",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -83,7 +83,7 @@ def initConfig(controllerObject):
"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",
"OPTION_LIST" : ["y", "n"],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "n",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -181,7 +181,7 @@ def initConfig(controllerObject):
"flags are: novirtinfo, norhnsd, nopackages"),
"PROMPT" : "Enter comma separated list of flags passed to rhnreg_ks",
"OPTION_LIST" : ['novirtinfo', 'norhnsd', 'nopackages'],
"VALIDATORS" : [validate.validate_multi_options],
"VALIDATORS" : [validators.validate_multi_options],
"DEFAULT_VALUE" : "",
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,

View File

@ -8,7 +8,7 @@ import os
import tempfile
import packstack.installer.engine_processors as process
import packstack.installer.engine_validators as validate
from packstack.installer import validators
from packstack.installer import basedefs
import packstack.installer.common_utils as utils
@ -32,7 +32,7 @@ def initConfig(controllerObject):
"USAGE" : "Path to a Public key to install on servers. If a usable key has not been installed on the remote servers the user will be prompted for a password and this key will be installed so the password will not be required again",
"PROMPT" : "Enter the path to your ssh Public key to install on servers",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_file],
"VALIDATORS" : [validators.validate_file],
"PROCESSORS" : [process.processSSHKey],
"DEFAULT_VALUE" : (glob.glob(os.path.join(os.environ["HOME"], ".ssh/*.pub"))+[""])[0],
"MASK_INPUT" : False,

View File

@ -6,7 +6,7 @@ import uuid
import logging
import os
import packstack.installer.engine_validators as validate
from packstack.installer import validators
import packstack.installer.engine_processors as process
from packstack.installer import basedefs
import packstack.installer.common_utils as utils
@ -31,7 +31,7 @@ def initConfig(controllerObject):
"USAGE" : "The IP address on which to install the Swift proxy service",
"PROMPT" : "Enter the IP address of the Swift proxy service",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_ip, validate.validate_ssh],
"VALIDATORS" : [validators.validate_ip, validators.validate_ssh],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -43,7 +43,7 @@ def initConfig(controllerObject):
"USAGE" : "The password to use for the Swift to authenticate with Keystone",
"PROMPT" : "Enter the password for the Swift Keystone access",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty],
"VALIDATORS" : [validators.validate_not_empty],
"DEFAULT_VALUE" : uuid.uuid4().hex[:16],
"MASK_INPUT" : True,
"LOOSE_VALIDATION": False,
@ -55,7 +55,7 @@ def initConfig(controllerObject):
"USAGE" : "A comma separated list of IP addresses on which to install the Swift Storage services, each entry should take the format <ipaddress>[/dev], for example 127.0.0.1/vdb will install /dev/vdb on 127.0.0.1 as a swift storage device(packstack does not create the filesystem, you must do this first), if /dev is omitted Packstack will create a loopback device for a test setup",
"PROMPT" : "Enter the Swift Storage servers e.g. host/dev,host/dev",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_not_empty, validate_storage],
"VALIDATORS" : [validators.validate_not_empty, validate_storage],
"DEFAULT_VALUE" : utils.getLocalhostIP(),
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -67,7 +67,7 @@ def initConfig(controllerObject):
"USAGE" : "Number of swift storage zones, this number MUST be no bigger than the number of storage devices configured",
"PROMPT" : "Enter the number of swift storage zones, MUST be no bigger than the number of storage devices configured",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_integer],
"VALIDATORS" : [validators.validate_integer],
"DEFAULT_VALUE" : "1",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -79,7 +79,7 @@ def initConfig(controllerObject):
"USAGE" : "Number of swift storage replicas, this number MUST be no bigger than the number of storage zones configured",
"PROMPT" : "Enter the number of swift storage replicas, MUST be no bigger than the number of storage zones configured",
"OPTION_LIST" : [],
"VALIDATORS" : [validate.validate_integer],
"VALIDATORS" : [validators.validate_integer],
"DEFAULT_VALUE" : "1",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -91,7 +91,7 @@ def initConfig(controllerObject):
"USAGE" : "FileSystem type for storage nodes",
"PROMPT" : "Enter FileSystem type for storage nodes",
"OPTION_LIST" : ['xfs','ext4'],
"VALIDATORS" : [validate.validate_options],
"VALIDATORS" : [validators.validate_options],
"DEFAULT_VALUE" : "ext4",
"MASK_INPUT" : False,
"LOOSE_VALIDATION": True,
@ -114,7 +114,7 @@ def initConfig(controllerObject):
def validate_storage(param, options=None):
for host in param.split(','):
host = host.split('/', 1)[0]
validate.validate_ip(host.strip(), options)
validators.validate_ip(host.strip(), options)
def initSequences(controller):

0
tests/__init__.py Normal file
View File

View File

View File

@ -19,9 +19,9 @@ import os
import shutil
import tempfile
from unittest import TestCase
from packstack.installer.validators import *
from test_base import PackstackTestCaseMixin
from packstack.installer.engine_validators import *
from ..test_base import PackstackTestCaseMixin
class ValidatorsTestCase(PackstackTestCaseMixin, TestCase):
@ -34,20 +34,24 @@ class ValidatorsTestCase(PackstackTestCaseMixin, TestCase):
shutil.rmtree(self.tempdir)
def test_validate_integer(self):
"""Test packstack.installer.validators.validate_integer"""
validate_integer('1')
self.assertRaises(ParamValidationError, validate_integer, 'test')
def test_validate_regexp(self):
"""Test packstack.installer.validators.validate_regexp"""
validate_regexp('Test_123', options=['\w'])
self.assertRaises(ParamValidationError, validate_regexp,
'!#$%', options=['\w'])
def test_validate_port(self):
"""Test packstack.installer.validators.validate_port"""
validate_port('666')
self.assertRaises(ParamValidationError, validate_port, 'test')
self.assertRaises(ParamValidationError, validate_port, '-3')
def test_validate_not_empty(self):
"""Test packstack.installer.validators.validate_not_empty"""
validate_not_empty('test')
validate_not_empty(False)
self.assertRaises(ParamValidationError, validate_not_empty, '')
@ -55,17 +59,20 @@ class ValidatorsTestCase(PackstackTestCaseMixin, TestCase):
self.assertRaises(ParamValidationError, validate_not_empty, {})
def test_validate_options(self):
"""Test packstack.installer.validators.validate_options"""
validate_options('a', options=['a', 'b'])
validate_options('b', options=['a', 'b'])
self.assertRaises(ParamValidationError, validate_options,
'c', options=['a', 'b'])
def test_validate_ip(self):
"""Test packstack.installer.validators.validate_ip"""
validate_ip('127.0.0.1')
validate_ip('::1')
self.assertRaises(ParamValidationError, validate_ip, 'test')
def test_validate_file(self):
"""Test packstack.installer.validators.validate_file"""
fname = os.path.join(self.tempdir, '.test_validate_file')
bad_name = os.path.join(self.tempdir, '.me_no_exists')
with open(fname, 'w') as f:
@ -74,9 +81,16 @@ class ValidatorsTestCase(PackstackTestCaseMixin, TestCase):
self.assertRaises(ParamValidationError, validate_file, bad_name)
def test_validate_ping(self):
"""Test packstack.installer.validators.validate_ping"""
# ping to broadcast fails
self.assertRaises(ParamValidationError, validate_ping, '192.168.122.0')
def test_validate_ssh(self):
"""Test packstack.installer.validators.validate_ssh"""
# ssh to broadcast fails
self.assertRaises(ParamValidationError, validate_ssh, '192.168.122.0')
def test_validate_float(self):
"""Test packstack.installer.validators.validate_float"""
validate_float('5.3')
self.assertRaises(ParamValidationError, validate_float, 'test')