def test_non_dict(self):
     errors = validation.check_static_ip_pool_collision(None, {})
     self.assertEqual(len(errors), 1)
     self.assertEqual("The static IPs input must be a dictionary.", errors[0])
     errors = validation.check_static_ip_pool_collision({}, None)
     self.assertEqual(len(errors), 1)
     self.assertEqual("The Pools input must be a dictionary.", errors[0])
 def test_non_dict(self):
     errors = validation.check_static_ip_pool_collision(None, {})
     self.assertEqual(len(errors), 1)
     self.assertEqual('The static IPs input must be a dictionary.',
                      errors[0])
     errors = validation.check_static_ip_pool_collision({}, None)
     self.assertEqual(len(errors), 1)
     self.assertEqual('The Pools input must be a dictionary.', errors[0])
 def _test_pool_invalid_range(self, addr_range):
     static_ips = {}
     pools = {'TestAllocationPools': [addr_range]}
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual(len(errors), 1)
     self.assertEqual(
         'Invalid format of the IP range in'
         ' TestAllocationPools: {}'.format(addr_range), errors[0])
 def test_static_ips_not_parseable(self):
     static_ips = {"ComputeIPs": {"internal_api": ["nonsense", None, "270.0.0.1"]}}
     pools = {}
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual(len(errors), 3)
     self.assertIn("nonsense is not a valid IP address", errors[0])
     self.assertIn("None is not a valid IP address", errors[1])
     self.assertIn("270.0.0.1 is not a valid IP address", errors[2])
 def test_pool_with_correct_range(self):
     static_ips = {}
     pools = {
         'StorageAllocationPools': [{
             'start': '172.18.0.10',
             'end': '172.18.0.200'
         }]
     }
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual([], errors)
 def test_static_ip_collide_with_pool(self):
     static_ips = {"ControllerIps": {"internal_api": ["10.35.191.150", "10.35.191.60"]}}
     pools = {"InternalApiAllocationPools": [{"start": "10.35.191.150", "end": "10.35.191.240"}]}
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual(len(errors), 1)
     self.assertEqual(
         "IP address 10.35.191.150 from "
         "ControllerIps[internal_api] is in the "
         "InternalApiAllocationPools pool.",
         errors[0],
     )
 def test_static_ips_not_parseable(self):
     static_ips = {
         'ComputeIPs': {
             'internal_api': ['nonsense', None, '270.0.0.1'],
         }
     }
     pools = {}
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual(len(errors), 3)
     self.assertIn('nonsense is not a valid IP address', errors[0])
     self.assertIn('None is not a valid IP address', errors[1])
     self.assertIn('270.0.0.1 is not a valid IP address', errors[2])
 def test_static_ip_no_collisions(self):
     static_ips = {
         "ControllerIps": {
             "internal_api": ["10.35.191.50", "10.35.191.60"],
             "storage": ["192.168.100.20", "192.168.100.30"],
         },
         "ComputeIps": {
             "internal_api": ["10.35.191.100", "10.35.191.110"],
             "storage": ["192.168.100.45", "192.168.100.46"],
         },
     }
     pools = {"InternalApiAllocationPools": [{"start": "10.35.191.150", "end": "10.35.191.240"}]}
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual([], errors)
 def test_static_ip_collide_with_pool(self):
     static_ips = {
         'ControllerIps': {
             'internal_api': ['10.35.191.150', '10.35.191.60']
         }
     }
     pools = {
         'InternalApiAllocationPools': [{
             'start': '10.35.191.150',
             'end': '10.35.191.240'
         }]
     }
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual(len(errors), 1)
     self.assertEqual(
         'IP address 10.35.191.150 from '
         'ControllerIps[internal_api] is in the '
         'InternalApiAllocationPools pool.', errors[0])
 def test_static_ip_no_collisions(self):
     static_ips = {
         'ControllerIps': {
             'internal_api': ['10.35.191.50', '10.35.191.60'],
             'storage': ['192.168.100.20', '192.168.100.30'],
         },
         'ComputeIps': {
             'internal_api': ['10.35.191.100', '10.35.191.110'],
             'storage': ['192.168.100.45', '192.168.100.46']
         }
     }
     pools = {
         'InternalApiAllocationPools': [{
             'start': '10.35.191.150',
             'end': '10.35.191.240'
         }]
     }
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual([], errors)
예제 #11
0
 def test_static_ips_not_lists(self):
     static_ips = {"ComputeIPs": {"internal_api": None}}
     errors = validation.check_static_ip_pool_collision(static_ips, {})
     self.assertEqual(len(errors), 1)
     self.assertEqual("The ComputeIPs->internal_api must be an array.", errors[0])
예제 #12
0
 def test_static_ip_service_not_dict(self):
     static_ips = {"ComputeIPs": None}
     errors = validation.check_static_ip_pool_collision(static_ips, {})
     self.assertEqual(len(errors), 1)
     self.assertEqual("The ComputeIPs must be a dictionary.", errors[0])
예제 #13
0
 def test_pool_with_correct_range(self):
     static_ips = {}
     pools = {"StorageAllocationPools": [{"start": "172.18.0.10", "end": "172.18.0.200"}]}
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual([], errors)
예제 #14
0
 def _test_pool_invalid_range(self, addr_range):
     static_ips = {}
     pools = {"TestAllocationPools": [addr_range]}
     errors = validation.check_static_ip_pool_collision(static_ips, pools)
     self.assertEqual(len(errors), 1)
     self.assertEqual("Invalid format of the IP range in" " TestAllocationPools: {}".format(addr_range), errors[0])
예제 #15
0
 def test_pool_range_not_list(self):
     pools = {"TestPools": None}
     errors = validation.check_static_ip_pool_collision({}, pools)
     self.assertEqual(len(errors), 1)
     self.assertEqual("The IP ranges in TestPools must form a list.", errors[0])
 def test_pool_range_not_list(self):
     pools = {'TestPools': None}
     errors = validation.check_static_ip_pool_collision({}, pools)
     self.assertEqual(len(errors), 1)
     self.assertEqual('The IP ranges in TestPools must form a list.',
                      errors[0])
 def test_static_ip_service_not_dict(self):
     static_ips = {'ComputeIPs': None}
     errors = validation.check_static_ip_pool_collision(static_ips, {})
     self.assertEqual(len(errors), 1)
     self.assertEqual('The ComputeIPs must be a dictionary.', errors[0])
 def test_static_ips_not_lists(self):
     static_ips = {'ComputeIPs': {'internal_api': None}}
     errors = validation.check_static_ip_pool_collision(static_ips, {})
     self.assertEqual(len(errors), 1)
     self.assertEqual('The ComputeIPs->internal_api must be an array.',
                      errors[0])
예제 #19
0
 def test_empty(self):
     errors = validation.check_static_ip_pool_collision({}, {})
     self.assertEqual([], errors)
 def test_empty(self):
     errors = validation.check_static_ip_pool_collision({}, {})
     self.assertEqual([], errors)