Beispiel #1
0
    def test__plug_vifs_count_mismatch(self):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_uvifs = mock.patch.object(self.driver, '_unplug_vifs').start()
        self.addCleanup(mock_uvifs.stop)
        mock_port_udt = mock.patch.object(FAKE_CLIENT.port, 'update').start()
        self.addCleanup(mock_port_udt.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]

            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node_uuid)
            # len(network_info) > len(ports)
            network_info = (utils.get_test_network_info() +
                            utils.get_test_network_info())
            self.assertRaises(exception.NovaException, self.driver._plug_vifs,
                              node, instance, network_info)

            # asserts
            mock_uvifs.assert_called_once_with(node, instance, network_info)
            mock_lp.assert_called_once_with(node_uuid)
            # assert port.update() was not called
            assert not mock_port_udt.called
Beispiel #2
0
    def test__plug_vifs(self):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_uvifs = mock.patch.object(self.driver, '_unplug_vifs').start()
        self.addCleanup(mock_uvifs.stop)

        mock_port_udt = mock.patch.object(FAKE_CLIENT.port, 'update').start()
        self.addCleanup(mock_port_udt.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]

            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node_uuid)
            network_info = utils.get_test_network_info()

            port_id = unicode(network_info[0]['id'])
            expected_patch = [{'op': 'add',
                               'path': '/extra/vif_port_id',
                               'value': port_id}]
            self.driver._plug_vifs(node, instance, network_info)

            # asserts
            mock_uvifs.assert_called_once_with(node, instance, network_info)
            mock_lp.assert_called_once_with(node_uuid)
            mock_port_udt.assert_called_with(port.uuid, expected_patch)
Beispiel #3
0
    def test__plug_vifs(self):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_uvifs = mock.patch.object(self.driver, '_unplug_vifs').start()
        self.addCleanup(mock_uvifs.stop)

        mock_port_udt = mock.patch.object(FAKE_CLIENT.port, 'update').start()
        self.addCleanup(mock_port_udt.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]

            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node_uuid)
            network_info = utils.get_test_network_info()

            port_id = unicode(network_info[0]['id'])
            expected_patch = [{
                'op': 'add',
                'path': '/extra/vif_port_id',
                'value': port_id
            }]
            self.driver._plug_vifs(node, instance, network_info)

            # asserts
            mock_uvifs.assert_called_once_with(node, instance, network_info)
            mock_lp.assert_called_once_with(node_uuid)
            mock_port_udt.assert_called_with(port.uuid, expected_patch)
Beispiel #4
0
    def test__plug_vifs_count_mismatch(self):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_uvifs = mock.patch.object(self.driver, '_unplug_vifs').start()
        self.addCleanup(mock_uvifs.stop)
        mock_port_udt = mock.patch.object(FAKE_CLIENT.port, 'update').start()
        self.addCleanup(mock_port_udt.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]

            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node_uuid)
            # len(network_info) > len(ports)
            network_info = (utils.get_test_network_info() +
                            utils.get_test_network_info())
            self.assertRaises(exception.NovaException,
                              self.driver._plug_vifs, node, instance,
                              network_info)

            # asserts
            mock_uvifs.assert_called_once_with(node, instance, network_info)
            mock_lp.assert_called_once_with(node_uuid)
            # assert port.update() was not called
            assert not mock_port_udt.called
Beispiel #5
0
    def test_unplug_vifs(self):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_update = mock.patch.object(FAKE_CLIENT.port, 'update').start()
        self.addCleanup(mock_update.stop)
        mock_get = mock.patch.object(FAKE_CLIENT.node, 'get').start()
        mock_get.return_value = node
        self.addCleanup(mock_get.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]

            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node_uuid)
            expected_patch = [{'op': 'remove', 'path':
                               '/extra/vif_port_id'}]
            self.driver.unplug_vifs(instance,
                                    utils.get_test_network_info())

            # asserts
            mock_get.assert_called_once_with(node_uuid)
            mock_lp.assert_called_once_with(node_uuid)
            mock_update.assert_called_once_with(port.uuid, expected_patch)
Beispiel #6
0
 def test_macs_for_instance(self, mock_node):
     node = ironic_utils.get_test_node()
     port = ironic_utils.get_test_port()
     mock_node.get.return_value = node
     mock_node.list_ports.return_value = [port]
     instance = fake_instance.fake_instance_obj(self.ctx, node=node.uuid)
     result = self.driver.macs_for_instance(instance)
     self.assertEqual([port.address], result)
     mock_node.list_ports.assert_called_once_with(node.uuid)
Beispiel #7
0
 def test_macs_for_instance(self, mock_node):
     node = ironic_utils.get_test_node()
     port = ironic_utils.get_test_port()
     mock_node.get.return_value = node
     mock_node.list_ports.return_value = [port]
     instance = fake_instance.fake_instance_obj(self.ctx, node=node.uuid)
     result = self.driver.macs_for_instance(instance)
     self.assertEqual([port.address], result)
     mock_node.list_ports.assert_called_once_with(node.uuid)
Beispiel #8
0
    def test_macs_for_instance(self):
        node = ironic_utils.get_test_node()
        port = ironic_utils.get_test_port()
        mock_get = mock.patch.object(FAKE_CLIENT.node, 'get').start()
        mock_get.return_value = node
        self.addCleanup(mock_get.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]
            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node.uuid)
            result = self.driver.macs_for_instance(instance)
            self.assertEqual([port.address], result)
            mock_lp.assert_called_once_with(node.uuid)
Beispiel #9
0
    def test_macs_for_instance(self):
        node = ironic_utils.get_test_node()
        port = ironic_utils.get_test_port()
        mock_get = mock.patch.object(FAKE_CLIENT.node, 'get').start()
        mock_get.return_value = node
        self.addCleanup(mock_get.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]
            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node.uuid)
            result = self.driver.macs_for_instance(instance)
            self.assertEqual([port.address], result)
            mock_lp.assert_called_once_with(node.uuid)
Beispiel #10
0
    def test_plug_vifs_no_network_info(self, mock_uvifs, mock_lp, mock_port_udt):
        node_uuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_lp.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        network_info = []
        self.driver._plug_vifs(node, instance, network_info)

        # asserts
        mock_uvifs.assert_called_once_with(node, instance, network_info)
        mock_lp.assert_called_once_with(node_uuid)
        # assert port.update() was not called
        self.assertFalse(mock_port_udt.called)
Beispiel #11
0
    def test_unplug_vifs(self, mock_node, mock_update):
        node_uuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_node.get.return_value = node
        mock_node.list_ports.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        expected_patch = [{"op": "remove", "path": "/extra/vif_port_id"}]
        self.driver.unplug_vifs(instance, utils.get_test_network_info())

        # asserts
        mock_node.get.assert_called_once_with(node_uuid)
        mock_node.list_ports.assert_called_once_with(node_uuid)
        mock_update.assert_called_once_with(port.uuid, expected_patch)
Beispiel #12
0
    def test_unplug_vifs(self, mock_node, mock_update):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_node.get.return_value = node
        mock_node.list_ports.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        expected_patch = [{'op': 'remove', 'path': '/extra/vif_port_id'}]
        self.driver.unplug_vifs(instance, utils.get_test_network_info())

        # asserts
        mock_node.get.assert_called_once_with(node_uuid)
        mock_node.list_ports.assert_called_once_with(node_uuid)
        mock_update.assert_called_once_with(port.uuid, expected_patch)
Beispiel #13
0
    def test_plug_vifs_no_network_info(self, mock_uvifs, mock_lp,
                                       mock_port_udt):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_lp.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        network_info = []
        self.driver._plug_vifs(node, instance, network_info)

        # asserts
        mock_uvifs.assert_called_once_with(node, instance, network_info)
        mock_lp.assert_called_once_with(node_uuid)
        # assert port.update() was not called
        self.assertFalse(mock_port_udt.called)
Beispiel #14
0
    def test_plug_vifs_count_mismatch(self, mock_uvifs, mock_lp, mock_port_udt):
        node_uuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_lp.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        # len(network_info) > len(ports)
        network_info = utils.get_test_network_info() + utils.get_test_network_info()
        self.assertRaises(exception.NovaException, self.driver._plug_vifs, node, instance, network_info)

        # asserts
        mock_uvifs.assert_called_once_with(node, instance, network_info)
        mock_lp.assert_called_once_with(node_uuid)
        # assert port.update() was not called
        self.assertFalse(mock_port_udt.called)
Beispiel #15
0
    def test_plug_vifs_with_port(self, mock_uvifs, mock_port_udt, mock_lp):
        node_uuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_lp.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        network_info = utils.get_test_network_info()

        port_id = unicode(network_info[0]["id"])
        expected_patch = [{"op": "add", "path": "/extra/vif_port_id", "value": port_id}]
        self.driver._plug_vifs(node, instance, network_info)

        # asserts
        mock_uvifs.assert_called_once_with(node, instance, network_info)
        mock_lp.assert_called_once_with(node_uuid)
        mock_port_udt.assert_called_with(port.uuid, expected_patch)
Beispiel #16
0
    def test_plug_vifs_count_mismatch(self, mock_uvifs, mock_lp,
                                      mock_port_udt):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_lp.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        # len(network_info) > len(ports)
        network_info = (utils.get_test_network_info() +
                        utils.get_test_network_info())
        self.assertRaises(exception.NovaException, self.driver._plug_vifs,
                          node, instance, network_info)

        # asserts
        mock_uvifs.assert_called_once_with(node, instance, network_info)
        mock_lp.assert_called_once_with(node_uuid)
        # assert port.update() was not called
        self.assertFalse(mock_port_udt.called)
Beispiel #17
0
    def test_unplug_vifs(self, mock_node, mock_update, mock_cli):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_node.get.return_value = node
        mock_node.list_ports.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx,
                                                   node=node_uuid)
        expected_patch = [{'op': 'remove', 'path':
                           '/extra/vif_port_id'}]
        mock_cli.return_value = FAKE_CLIENT
        self.driver.unplug_vifs(instance,
                                utils.get_test_network_info())

        # asserts
        mock_node.get.assert_called_once_with(node_uuid)
        mock_node.list_ports.assert_called_once_with(node_uuid)
        mock_update.assert_called_once_with(port.uuid, expected_patch)
Beispiel #18
0
    def test_plug_vifs_with_port(self, mock_uvifs, mock_port_udt, mock_lp):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_lp.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx, node=node_uuid)
        network_info = utils.get_test_network_info()

        port_id = unicode(network_info[0]['id'])
        expected_patch = [{
            'op': 'add',
            'path': '/extra/vif_port_id',
            'value': port_id
        }]
        self.driver._plug_vifs(node, instance, network_info)

        # asserts
        mock_uvifs.assert_called_once_with(node, instance, network_info)
        mock_lp.assert_called_once_with(node_uuid)
        mock_port_udt.assert_called_with(port.uuid, expected_patch)
Beispiel #19
0
    def test_unplug_vifs(self):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_update = mock.patch.object(FAKE_CLIENT.port, 'update').start()
        self.addCleanup(mock_update.stop)
        mock_get = mock.patch.object(FAKE_CLIENT.node, 'get').start()
        mock_get.return_value = node
        self.addCleanup(mock_get.stop)

        with mock.patch.object(FAKE_CLIENT.node, 'list_ports') as mock_lp:
            mock_lp.return_value = [port]

            instance = fake_instance.fake_instance_obj(self.ctx,
                                                       node=node_uuid)
            expected_patch = [{'op': 'remove', 'path': '/extra/vif_port_id'}]
            self.driver.unplug_vifs(instance, utils.get_test_network_info())

            # asserts
            mock_get.assert_called_once_with(node_uuid)
            mock_lp.assert_called_once_with(node_uuid)
            mock_update.assert_called_once_with(port.uuid, expected_patch)
Beispiel #20
0
    def test_plug_vifs_with_port(self, mock_uvifs, mock_port_udt, mock_lp,
                                 mock_cli):
        node_uuid = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
        node = ironic_utils.get_test_node(uuid=node_uuid)
        port = ironic_utils.get_test_port()

        mock_lp.return_value = [port]

        instance = fake_instance.fake_instance_obj(self.ctx,
                                                   node=node_uuid)
        network_info = utils.get_test_network_info()

        port_id = unicode(network_info[0]['id'])
        expected_patch = [{'op': 'add',
                           'path': '/extra/vif_port_id',
                           'value': port_id}]
        mock_cli.return_value = FAKE_CLIENT
        self.driver._plug_vifs(node, instance, network_info)

        # asserts
        mock_uvifs.assert_called_once_with(node, instance, network_info)
        mock_lp.assert_called_once_with(node_uuid)
        mock_port_udt.assert_called_with(port.uuid, expected_patch)