return msg
+def _validate_no_whitespace(data):
+ """Validates that input has no whitespace."""
+ if len(data.split()) > 1:
+ msg = _("'%s' contains whitespace") % data
+ LOG.debug(msg)
+ raise q_exc.InvalidInput(error_message=msg)
+ return data
+
+
def _validate_mac_address(data, valid_values=None):
try:
- netaddr.EUI(data)
+ netaddr.EUI(_validate_no_whitespace(data))
except Exception:
msg = _("'%s' is not a valid MAC address") % data
LOG.debug(msg)
def _validate_ip_address(data, valid_values=None):
try:
- netaddr.IPAddress(data)
+ netaddr.IPAddress(_validate_no_whitespace(data))
except Exception:
msg = _("'%s' is not a valid IP address") % data
LOG.debug(msg)
def _validate_subnet(data, valid_values=None):
try:
- netaddr.IPNetwork(data)
+ netaddr.IPNetwork(_validate_no_whitespace(data))
if len(data.split('/')) == 2:
return
except Exception:
msg = attributes._validate_string("123456789", None)
self.assertIsNone(msg)
+ def test_validate_no_whitespace(self):
+ data = 'no_white_space'
+ result = attributes._validate_no_whitespace(data)
+ self.assertEqual(result, data)
+
+ self.assertRaises(q_exc.InvalidInput,
+ attributes._validate_no_whitespace,
+ 'i have whitespace')
+
+ self.assertRaises(q_exc.InvalidInput,
+ attributes._validate_no_whitespace,
+ 'i\thave\twhitespace')
+
def test_validate_range(self):
msg = attributes._validate_range(1, [1, 9])
self.assertIsNone(msg)
msg = attributes._validate_ip_address(ip_addr)
self.assertEqual(msg, "'%s' is not a valid IP address" % ip_addr)
+ ip_addr = '1.1.1.1 has whitespace'
+ msg = attributes._validate_ip_address(ip_addr)
+ self.assertEqual(msg, "'%s' is not a valid IP address" % ip_addr)
+
+ ip_addr = '111.1.1.1\twhitespace'
+ msg = attributes._validate_ip_address(ip_addr)
+ self.assertEqual(msg, "'%s' is not a valid IP address" % ip_addr)
+
+ ip_addr = '111.1.1.1\nwhitespace'
+ msg = attributes._validate_ip_address(ip_addr)
+ self.assertEqual(msg, "'%s' is not a valid IP address" % ip_addr)
+
def test_validate_ip_pools(self):
pools = [[{'end': '10.0.0.254'}],
[{'start': '10.0.0.254'}],