From db92c3483220264b8206b0dd95fac642966a2625 Mon Sep 17 00:00:00 2001 From: Martin Magr Date: Thu, 28 Feb 2013 11:43:23 +0100 Subject: [PATCH] Added missing validator test renamed validators module to be pep8 compliant Change-Id: I476ad5af8b292cb1a094e2913952b1756aa35517 --- packstack/installer/run_setup.py | 12 +++---- .../{engine_validators.py => validators.py} | 9 ++---- packstack/plugins/cinder_250.py | 12 +++---- packstack/plugins/dashboard_500.py | 6 ++-- packstack/plugins/glance_200.py | 8 ++--- packstack/plugins/keystone_100.py | 10 +++--- packstack/plugins/mysql_001.py | 8 ++--- packstack/plugins/nagios_910.py | 10 +++--- packstack/plugins/nova_300.py | 32 +++++++++---------- packstack/plugins/openstack_client_400.py | 4 +-- packstack/plugins/postscript_949.py | 2 +- packstack/plugins/prescript_000.py | 18 +++++------ packstack/plugins/qpid_002.py | 4 +-- packstack/plugins/serverprep_901.py | 8 ++--- packstack/plugins/sshkeys_000.py | 4 +-- packstack/plugins/swift_600.py | 16 +++++----- tests/__init__.py | 0 tests/installer/__init__.py | 0 tests/{ => installer}/test_validators.py | 18 +++++++++-- 19 files changed, 96 insertions(+), 85 deletions(-) rename packstack/installer/{engine_validators.py => validators.py} (95%) create mode 100644 tests/__init__.py create mode 100644 tests/installer/__init__.py rename tests/{ => installer}/test_validators.py (76%) diff --git a/packstack/installer/run_setup.py b/packstack/installer/run_setup.py index 65777498c..30eec52b3 100644 --- a/packstack/installer/run_setup.py +++ b/packstack/installer/run_setup.py @@ -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: diff --git a/packstack/installer/engine_validators.py b/packstack/installer/validators.py similarity index 95% rename from packstack/installer/engine_validators.py rename to packstack/installer/validators.py index 4534c5f48..01218ebeb 100644 --- a/packstack/installer/engine_validators.py +++ b/packstack/installer/validators.py @@ -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): """ diff --git a/packstack/plugins/cinder_250.py b/packstack/plugins/cinder_250.py index 3b3ebace3..192ef15db 100644 --- a/packstack/plugins/cinder_250.py +++ b/packstack/plugins/cinder_250.py @@ -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, diff --git a/packstack/plugins/dashboard_500.py b/packstack/plugins/dashboard_500.py index a78ad7f05..451e806d9 100644 --- a/packstack/plugins/dashboard_500.py +++ b/packstack/plugins/dashboard_500.py @@ -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, diff --git a/packstack/plugins/glance_200.py b/packstack/plugins/glance_200.py index 37d7bb023..8eb8c4b97 100644 --- a/packstack/plugins/glance_200.py +++ b/packstack/plugins/glance_200.py @@ -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, diff --git a/packstack/plugins/keystone_100.py b/packstack/plugins/keystone_100.py index ba4a284b5..1fbe31e44 100644 --- a/packstack/plugins/keystone_100.py +++ b/packstack/plugins/keystone_100.py @@ -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, diff --git a/packstack/plugins/mysql_001.py b/packstack/plugins/mysql_001.py index 61398f010..208ddfd2a 100644 --- a/packstack/plugins/mysql_001.py +++ b/packstack/plugins/mysql_001.py @@ -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, diff --git a/packstack/plugins/nagios_910.py b/packstack/plugins/nagios_910.py index d405d2ab3..0299ec47d 100644 --- a/packstack/plugins/nagios_910.py +++ b/packstack/plugins/nagios_910.py @@ -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'])) diff --git a/packstack/plugins/nova_300.py b/packstack/plugins/nova_300.py index 3a404c1c5..3f229a2b4 100644 --- a/packstack/plugins/nova_300.py +++ b/packstack/plugins/nova_300.py @@ -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, diff --git a/packstack/plugins/openstack_client_400.py b/packstack/plugins/openstack_client_400.py index 7bcf86839..711959b33 100644 --- a/packstack/plugins/openstack_client_400.py +++ b/packstack/plugins/openstack_client_400.py @@ -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, diff --git a/packstack/plugins/postscript_949.py b/packstack/plugins/postscript_949.py index 607ce51dd..a47c9e2e6 100644 --- a/packstack/plugins/postscript_949.py +++ b/packstack/plugins/postscript_949.py @@ -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 diff --git a/packstack/plugins/prescript_000.py b/packstack/plugins/prescript_000.py index b250d3e10..5b25fd576 100644 --- a/packstack/plugins/prescript_000.py +++ b/packstack/plugins/prescript_000.py @@ -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 diff --git a/packstack/plugins/qpid_002.py b/packstack/plugins/qpid_002.py index a9f9c2ba3..9bfa546b8 100644 --- a/packstack/plugins/qpid_002.py +++ b/packstack/plugins/qpid_002.py @@ -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, diff --git a/packstack/plugins/serverprep_901.py b/packstack/plugins/serverprep_901.py index 89a91fdf9..5bb1f46b9 100644 --- a/packstack/plugins/serverprep_901.py +++ b/packstack/plugins/serverprep_901.py @@ -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, diff --git a/packstack/plugins/sshkeys_000.py b/packstack/plugins/sshkeys_000.py index b30996a15..6eb77ab86 100644 --- a/packstack/plugins/sshkeys_000.py +++ b/packstack/plugins/sshkeys_000.py @@ -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, diff --git a/packstack/plugins/swift_600.py b/packstack/plugins/swift_600.py index 156fc8871..51127b293 100644 --- a/packstack/plugins/swift_600.py +++ b/packstack/plugins/swift_600.py @@ -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 [/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): diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/installer/__init__.py b/tests/installer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/test_validators.py b/tests/installer/test_validators.py similarity index 76% rename from tests/test_validators.py rename to tests/installer/test_validators.py index ff11bd355..e66000df7 100644 --- a/tests/test_validators.py +++ b/tests/installer/test_validators.py @@ -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')