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)
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])
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_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_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_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])
def test_empty(self): errors = validation.check_static_ip_pool_collision({}, {}) self.assertEqual([], errors)