def test_add_node(self, m_get_subnet_id): driver = node_subnets.OpenShiftNodesSubnets() m_get_subnet_id.return_value = 'foobar' self.assertTrue(driver.add_node(self.machine)) m_get_subnet_id.assert_called_once_with( name='foo-tv22d-nodes', tags='openshiftClusterID=foo-tv22d') self.assertEqual(['foobar'], driver.get_nodes_subnets())
def test_add_node_cannot(self, m_get_subnet_id): driver = node_subnets.OpenShiftNodesSubnets() net = self.machine['spec']['providerSpec']['value']['networks'][0] del net['subnets'] self.assertFalse(driver.add_node(self.machine)) m_get_subnet_id.assert_not_called() self.assertEqual([], driver.get_nodes_subnets())
def test_get_subnet_from_machine_networks_subnets(self, m_get_subnet_id): subnetid = 'd467451b-ab28-4578-882f-347f0dff4c9a' m_get_subnet_id.return_value = subnetid driver = node_subnets.OpenShiftNodesSubnets() self.assertEqual(subnetid, driver._get_subnet_from_machine(self.machine))
def test_add_node_uuid(self, m_get_subnet_id): driver = node_subnets.OpenShiftNodesSubnets() net = self.machine['spec']['providerSpec']['value']['networks'][0] del net['subnets'][0]['filter'] net['subnets'][0]['uuid'] = 'barfoo' self.assertTrue(driver.add_node(self.machine)) m_get_subnet_id.assert_not_called() self.assertEqual(['barfoo'], driver.get_nodes_subnets())
def test_get_subnet_from_machine_primary_subnet(self): driver = node_subnets.OpenShiftNodesSubnets() psub = '622c5fd4-804c-40e8-95ab-ecd1565ac8e2' self.machine['spec']['providerSpec']['value']['primarySubnet'] = psub result = driver._get_subnet_from_machine(self.machine) self.assertEqual(psub, result)
def test_get_subnet_from_machine_networks_wo_filters(self): driver = node_subnets.OpenShiftNodesSubnets() nets = self.machine['spec']['providerSpec']['value']['networks'] nets[0]['subnets'] = [{'uuid': 'f8a458e5-c280-47b7-9c8a-dbd4ecd65545'}] self.machine['spec']['providerSpec']['value']['networks'] = nets result = driver._get_subnet_from_machine(self.machine) self.assertEqual(nets[0]['subnets'][0]['uuid'], result)
def test_delete_node_cannot(self, m_get_k8s, m_get_subnet_id): m_k8s = mock.Mock() m_get_k8s.return_value = m_k8s driver = node_subnets.OpenShiftNodesSubnets() net = self.machine['spec']['providerSpec']['value']['networks'][0] del net['subnets'] self.assertFalse(driver.delete_node(self.machine)) m_get_subnet_id.assert_not_called() self.assertEqual([], driver.get_nodes_subnets())
def test_get_nodes_subnets_with_config(self): subnets = ['subnet1', 'subnet2'] cfg.CONF.set_override('worker_nodes_subnets', ['subnet3', 'subnet2'], group='pod_vif_nested') driver = node_subnets.OpenShiftNodesSubnets() for subnet in subnets: driver.subnets.add(subnet) self.assertCountEqual(['subnet1', 'subnet2', 'subnet3'], driver.get_nodes_subnets())
def test_get_subnet_from_machine_ports(self): driver = node_subnets.OpenShiftNodesSubnets() subnet_id = '0530f763-899b-4acb-a2ca-deeedd760409' ports = [{'fixedIPs': [{'subnetID': subnet_id}]}] self.machine['spec']['providerSpec']['value']['ports'] = ports del self.machine['spec']['providerSpec']['value']['networks'] result = driver._get_subnet_from_machine(self.machine) self.assertEqual(subnet_id, result)
def test_get_subnet_from_machine_empty_networks(self): """Test both: networks and ports presence, but no primarySubnet. Precedence would have networks over ports. """ self.machine['spec']['providerSpec']['value']['networks'] = [] driver = node_subnets.OpenShiftNodesSubnets() result = driver._get_subnet_from_machine(self.machine) self.assertIsNone(result)
def test_get_subnet_from_machine_networks_ports_and_primary(self): driver = node_subnets.OpenShiftNodesSubnets() subnet_id = 'ec4c50ac-e3f6-426e-ad91-6ddc10b5c391' ports = [{'fixedIPs': [{'subnetID': subnet_id}]}] self.machine['spec']['providerSpec']['value']['ports'] = ports psub = 'cdf08c3d-0918-4f1d-92ab-3f1e657395d7' self.machine['spec']['providerSpec']['value']['primarySubnet'] = psub result = driver._get_subnet_from_machine(self.machine) self.assertEqual(psub, result)
def test_delete_node_still_exists(self, m_get_k8s, m_get_subnet_id): m_k8s = mock.Mock() m_get_k8s.return_value = m_k8s m_k8s.get.return_value = {'items': [self.machine]} driver = node_subnets.OpenShiftNodesSubnets() driver.subnets.add('foobar') m_get_subnet_id.return_value = 'foobar' self.assertFalse(driver.delete_node(self.machine)) m_get_subnet_id.assert_called_with(name='foo-tv22d-nodes', tags='openshiftClusterID=foo-tv22d') self.assertEqual(['foobar'], driver.get_nodes_subnets())
def test_get_subnet_from_machine_networks_and_ports(self, m_get_subnet_id): """Test both: networks and ports presence, but no primarySubnet. Precedence would have networks over ports. """ subnet_id = '7607a620-b706-478f-9481-7fdf11deeab2' m_get_subnet_id.return_value = subnet_id port_subnet_id = 'ec4c50ac-e3f6-426e-ad91-6ddc10b5c391' ports = [{'fixedIPs': [{'subnetID': port_subnet_id}]}] self.machine['spec']['providerSpec']['value']['ports'] = ports driver = node_subnets.OpenShiftNodesSubnets() result = driver._get_subnet_from_machine(self.machine) self.assertEqual(subnet_id, result)
def test_get_subnet_from_machine_ports_both_wrong(self): del self.machine['spec']['providerSpec']['value']['networks'] ports = [{ 'trunk': True }, { 'fixedIPs': [{ 'foo': 'bar' }], 'trunk': True }] self.machine['spec']['providerSpec']['value']['ports'] = ports driver = node_subnets.OpenShiftNodesSubnets() result = driver._get_subnet_from_machine(self.machine) self.assertIsNone(result)
def test_get_subnet_from_machine_ports_no_trunk_one_with_trunk(self): del self.machine['spec']['providerSpec']['value']['trunk'] del self.machine['spec']['providerSpec']['value']['networks'] subnet_id = '0530f763-899b-4acb-a2ca-deeedd760409' ports = [{ 'fixedIPs': [{ 'subnetID': 'foo' }] }, { 'fixedIPs': [{ 'subnetID': subnet_id }], 'trunk': True }] self.machine['spec']['providerSpec']['value']['ports'] = ports driver = node_subnets.OpenShiftNodesSubnets() result = driver._get_subnet_from_machine(self.machine) self.assertEqual(subnet_id, result)
def test_get_subnet_from_machine_ports_both_with_trunk(self): del self.machine['spec']['providerSpec']['value']['networks'] subnet_id1 = '0530f763-899b-4acb-a2ca-deeedd760409' subnet_id2 = 'ccfe75a8-c15e-4504-9596-02e397362abf' ports = [{ 'fixedIPs': [{ 'subnetID': subnet_id1 }], 'trunk': False }, { 'fixedIPs': [{ 'subnetID': subnet_id2 }], 'trunk': True }] self.machine['spec']['providerSpec']['value']['ports'] = ports driver = node_subnets.OpenShiftNodesSubnets() result = driver._get_subnet_from_machine(self.machine) self.assertEqual(subnet_id2, result)
def test_get_subnet_from_machine_networks_no_trunk(self): del self.machine['spec']['providerSpec']['value']['trunk'] driver = node_subnets.OpenShiftNodesSubnets() self.assertIsNone(driver._get_subnet_from_machine(self.machine))
def test_get_nodes_subnets_raise(self): driver = node_subnets.OpenShiftNodesSubnets() self.assertRaises(exceptions.ResourceNotReady, driver.get_nodes_subnets, raise_on_empty=True)
def test_get_nodes_subnets_not_raise(self): driver = node_subnets.OpenShiftNodesSubnets() self.assertEqual([], driver.get_nodes_subnets())
def test_get_nodes_subnets(self): subnets = ['subnet1', 'subnet2'] driver = node_subnets.OpenShiftNodesSubnets() for subnet in subnets: driver.subnets.add(subnet) self.assertCountEqual(subnets, driver.get_nodes_subnets())