コード例 #1
0
 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())
コード例 #2
0
 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())
コード例 #3
0
    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))
コード例 #4
0
 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())
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
 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())
コード例 #8
0
 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())
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
    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)
コード例 #12
0
    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())
コード例 #13
0
    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)
コード例 #14
0
    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)
コード例 #15
0
    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)
コード例 #16
0
    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)
コード例 #17
0
    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))
コード例 #18
0
 def test_get_nodes_subnets_raise(self):
     driver = node_subnets.OpenShiftNodesSubnets()
     self.assertRaises(exceptions.ResourceNotReady,
                       driver.get_nodes_subnets,
                       raise_on_empty=True)
コード例 #19
0
 def test_get_nodes_subnets_not_raise(self):
     driver = node_subnets.OpenShiftNodesSubnets()
     self.assertEqual([], driver.get_nodes_subnets())
コード例 #20
0
 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())