Unified validators
When parameter value should not be empty, user has to explicitly use validate_not_empty validator. Some validators did not follow this rule. This patch is fixing it. Change-Id: I92fb0773a2bc69fe05f79ba03dd487b15da5d9c6
This commit is contained in:
		| @@ -26,6 +26,8 @@ def validate_integer(param, options=None): | ||||
|     """ | ||||
|     Raises ParamValidationError if given param is not integer. | ||||
|     """ | ||||
|     if not param: | ||||
|         return | ||||
|     options = options or [] | ||||
|     try: | ||||
|         int(param) | ||||
| @@ -40,6 +42,8 @@ def validate_float(param, options=None): | ||||
|     """ | ||||
|     Raises ParamValidationError if given param is not a float. | ||||
|     """ | ||||
|     if not param: | ||||
|         return | ||||
|     options = options or [] | ||||
|     try: | ||||
|         float(param) | ||||
| @@ -55,6 +59,8 @@ def validate_regexp(param, options=None): | ||||
|     Raises ParamValidationError if given param doesn't match at least | ||||
|     one of regular expressions given in options. | ||||
|     """ | ||||
|     if not param: | ||||
|         return | ||||
|     options = options or [] | ||||
|     for regex in options: | ||||
|         if re.search(regex, param): | ||||
| @@ -81,6 +87,8 @@ def validate_port(param, options=None): | ||||
|     Raises ParamValidationError if given param is not a decimal number | ||||
|     in range (0, 65535). | ||||
|     """ | ||||
|     if not param: | ||||
|         return | ||||
|     options = options or [] | ||||
|     validate_integer(param, options) | ||||
|     port = int(param) | ||||
| @@ -107,9 +115,10 @@ def validate_options(param, options=None): | ||||
|     """ | ||||
|     Raises ParamValidationError if given param is not member of options. | ||||
|     """ | ||||
|     options = options or [] | ||||
|     if not param: | ||||
|         return | ||||
|  | ||||
|     # TO-DO: to be more flexible, remove this and exit in case param is empty | ||||
|     options = options or [] | ||||
|     validate_not_empty(param, options) | ||||
|     if param not in options: | ||||
|         logging.debug('validate_options(%s, options=%s) failed.' % | ||||
| @@ -135,6 +144,8 @@ def validate_ip(param, options=None): | ||||
|     Raises ParamValidationError if given parameter value is not in IPv4 | ||||
|     or IPv6 address. | ||||
|     """ | ||||
|     if not param: | ||||
|         return | ||||
|     for family in (socket.AF_INET, socket.AF_INET6): | ||||
|         try: | ||||
|             socket.inet_pton(family, param) | ||||
| @@ -162,10 +173,10 @@ def validate_file(param, options=None): | ||||
|     """ | ||||
|     Raises ParamValidationError if provided file in param does not exist. | ||||
|     """ | ||||
|     options = options or [] | ||||
|     # TO-DO: to be more flexible, remove this and exit in case param is empty | ||||
|     validate_not_empty(param) | ||||
|     if not param: | ||||
|         return | ||||
|  | ||||
|     options = options or [] | ||||
|     if not os.path.isfile(param): | ||||
|         logging.debug('validate_file(%s, options=%s) failed.' % | ||||
|                       (param, options)) | ||||
| @@ -178,10 +189,9 @@ def validate_ping(param, options=None): | ||||
|     Raises ParamValidationError if provided host does not answer to ICMP | ||||
|     echo request. | ||||
|     """ | ||||
|     if not param: | ||||
|         return | ||||
|     options = options or [] | ||||
|     # TO-DO: to be more flexible, remove this and exit in case param is empty | ||||
|     validate_not_empty(param) | ||||
|  | ||||
|     rc, out = utils.execute(['/bin/ping', '-c', '1', str(param)], | ||||
|                             can_fail=False) | ||||
|     if rc != 0: | ||||
| @@ -197,8 +207,6 @@ def validate_multi_ping(param, options=None): | ||||
|     do not answer to ICMP echo request. | ||||
|     """ | ||||
|     options = options or [] | ||||
|     # TO-DO: to be more flexible, remove this and exit in case param is empty | ||||
|     validate_not_empty(param) | ||||
|     for host in param.split(","): | ||||
|         validate_ping(host.strip()) | ||||
|  | ||||
| @@ -225,6 +233,8 @@ def validate_ssh(param, options=None): | ||||
|     Raises ParamValidationError if provided host does not listen | ||||
|     on port 22. | ||||
|     """ | ||||
|     if not param: | ||||
|         return | ||||
|     options = options or [] | ||||
|     try: | ||||
|         touch_port(param.strip(), 22) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Mágr
					Martin Mágr