Exemplo n.º 1
0
 def test_get_serial_console(self, mock_ironic_call):
     fake_node = mock.MagicMock()
     fake_node.uuid = uuidutils.generate_uuid()
     fake_console_url = {
         "url": "http://localhost:4321",
         "type": "shellinabox"
     }
     mock_ironic_call.side_effect = [
         fake_node, {
             "console_enabled": True,
             "console_info": fake_console_url
         },
         mock.MagicMock(), {
             "console_enabled": False,
             "console_info": fake_console_url
         },
         mock.MagicMock(), {
             "console_enabled": True,
             "console_info": fake_console_url
         }
     ]
     server = obj_utils.create_test_server(self.context)
     self._start_service()
     console = self.service.get_serial_console(self.context, server)
     self._stop_service()
     self.assertEqual(4321, console['port'])
     self.assertTrue(
         console['access_url'].startswith('http://127.0.0.1:8866/?token='))
     self.assertEqual('localhost', console['host'])
     self.assertIn('token', console)
Exemplo n.º 2
0
    def test_delete_server_unassociated(self, delete_server_mock):
        fake_node = mock.MagicMock()
        fake_node.provision_state = ironic_states.ACTIVE
        server = obj_utils.create_test_server(
            self.context, status=states.DELETING, node_uuid=None)
        self._start_service()

        self.service.delete_server(self.context, server)
        self._stop_service()

        delete_server_mock.assert_not_called()
Exemplo n.º 3
0
    def test_delete_server(self, delete_server_mock):
        fake_node = mock.MagicMock()
        fake_node.provision_state = ironic_states.ACTIVE
        server = obj_utils.create_test_server(
            self.context, status=states.DELETING)
        delete_server_mock.side_effect = None
        self._start_service()

        self.service.delete_server(self.context, server)
        self._stop_service()

        delete_server_mock.assert_called_once_with(mock.ANY, server)
Exemplo n.º 4
0
 def test_detach_interface(self, unplug_vif_mock, delete_port_mock):
     fake_node = mock.MagicMock()
     fake_node.provision_state = ironic_states.ACTIVE
     server = obj_utils.create_test_server(
         self.context, status=states.ACTIVE, node_uuid=None)
     port_id = server['nics'][0]['port_id']
     self._start_service()
     self.service.detach_interface(self.context, server, port_id)
     self._stop_service()
     unplug_vif_mock.assert_called_once_with(self.context, server, port_id)
     delete_port_mock.assert_called_once_with(self.context, port_id,
                                              server.uuid)
Exemplo n.º 5
0
    def test_destroy_networks(self, delete_port_mock):
        server = obj_utils.create_test_server(self.context)
        server_port_id = server.nics[0].port_id
        delete_port_mock.side_effect = None
        port = mock.MagicMock()
        port.extra = {'vif_port_id': 'fake-vif'}
        port.uuid = 'fake-uuid'
        self._start_service()

        self.service.destroy_networks(self.context, server)
        self._stop_service()

        delete_port_mock.assert_called_once_with(
            self.context, server_port_id, server.uuid)
Exemplo n.º 6
0
    def _test__delete_server(self, destroy_networks_mock,
                             destroy_node_mock, state=None):
        fake_node = mock.MagicMock()
        fake_node.provision_state = state
        server = obj_utils.create_test_server(self.context)
        destroy_networks_mock.side_effect = None
        destroy_node_mock.side_effect = None
        self._start_service()

        self.service._delete_server(self.context, server)
        self._stop_service()

        destroy_networks_mock.assert_called_once_with(self.context, server)
        destroy_node_mock.assert_called_once_with(self.context, server)
Exemplo n.º 7
0
    def test_destroy_networks(self, unplug_vif_mock, delete_port_mock):
        server = obj_utils.create_test_server(self.context)
        server_port_id = server.nics[0].port_id
        delete_port_mock.side_effect = None
        unplug_vif_mock.side_effect = None
        self._start_service()

        self.service.destroy_networks(self.context, server)
        self._stop_service()

        unplug_vif_mock.assert_called_once_with(
            self.context, server, server_port_id)
        delete_port_mock.assert_called_once_with(
            self.context, server_port_id, server.uuid)
Exemplo n.º 8
0
    def test_change_server_power_state(self, set_power_mock, get_power_mock):
        server = obj_utils.create_test_server(self.context,
                                              status=states.POWERING_ON)
        fake_node = mock.MagicMock()
        fake_node.target_power_state = ironic_states.NOSTATE
        get_power_mock.return_value = states.POWER_ON
        self._start_service()

        self.service.set_power_state(self.context, server,
                                     ironic_states.POWER_ON)
        self._stop_service()

        set_power_mock.assert_called_once_with(self.context, server,
                                               ironic_states.POWER_ON)
        get_power_mock.assert_called_once_with(self.context, server.uuid)
Exemplo n.º 9
0
    def test_change_server_power_state_with_rollback_status(
            self, set_power_mock, get_power_mock, notify_mock):
        server = obj_utils.create_test_server(
            self.context, status=states.POWERING_OFF)
        exception = ironic_exc.NotFound("The bare metal node is not found")
        get_power_mock.return_value = states.POWER_ON
        set_power_mock.side_effect = exception

        self._start_service()
        self.assertRaises(ironic_exc.NotFound, self.service.set_power_state,
                          self.context, server, 'off')
        set_power_mock.assert_called_once_with(self.context, server, 'off')
        get_power_mock.assert_called_once_with(self.context, server.uuid)
        notify_mock.assert_called_once_with(
            self.context, server, 'test-host',
            action=fields.NotificationAction.POWER_OFF,
            phase=fields.NotificationPhase.ERROR, exception=exception)
        self.assertEqual(server.status, states.ACTIVE)
        self._stop_service()