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)
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()
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)
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)
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)
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)
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)
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)
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()