def test_terminate_server_not_found(self, openstack_id, server_status): """ Terminate a server for which the corresponding VM doesn't exist anymore """ server = OpenStackServerFactory(openstack_id=openstack_id, status=server_status) def raise_not_found(): #pylint: disable=missing-docstring raise novaclient.exceptions.NotFound('not-found') server.os_server.delete.side_effect = raise_not_found server.logger = Mock() mock_logger = server.logger server.terminate() self.assertEqual(server.status, ServerStatus.Terminated) server.os_server.delete.assert_called_once_with() mock_logger.error.assert_called_once_with(AnyStringMatching('Error while attempting to terminate server'))
def test_terminate_server_openstack_api_error(self, exception): """ Terminate a server when there are errors connecting to the OpenStack API """ server = OpenStackServerFactory() def raise_openstack_api_error(): #pylint: disable=missing-docstring raise exception server.os_server.delete.side_effect = raise_openstack_api_error server.logger = Mock() mock_logger = server.logger server.terminate() self.assertEqual(server.status, ServerStatus.Unknown) server.os_server.delete.assert_called_once_with() mock_logger.error.assert_called_once_with( AnyStringMatching('Unable to reach the OpenStack API due to'), exception)
def test_start_server(self, mock_create_server): """ Start a new server """ mock_create_server.return_value.id = 'pending-server-id' server = OpenStackServerFactory() self.assertEqual(server.status, ServerStatus.Pending) server.start() mock_create_server.assert_called_once_with( server.nova, AnyStringMatching(r'test-inst-\d+'), flavor_selector=settings.OPENSTACK_SANDBOX_FLAVOR, image_selector=settings.OPENSTACK_SANDBOX_BASE_IMAGE, key_name=settings.OPENSTACK_SANDBOX_SSH_KEYNAME, ) server = OpenStackServer.objects.get(pk=server.pk) self.assertEqual(server.status, ServerStatus.Building) self.assertEqual(server.openstack_id, 'pending-server-id') self.assertEqual(str(server), 'pending-server-id')
def test_start_server(self, mock_create_server): """ Start a new server """ mock_create_server.return_value.id = 'new-server-id' server = OpenStackServerFactory() self.assertEqual(server.status, ServerStatus.New) self.assertEqual(server.progress, ServerProgress.Running) server.start() mock_create_server.assert_called_once_with( server.nova, AnyStringMatching(r'instance\d+\.test'), {"ram": 4096, "disk": 40}, {"name": "Ubuntu 12.04"}, key_name='opencraft', ) server = OpenStackServer.objects.get(pk=server.pk) self.assertEqual(server.status, ServerStatus.Started) self.assertEqual(server.progress, ServerProgress.Success) self.assertEqual(server.openstack_id, 'new-server-id') self.assertEqual(str(server), 'new-server-id')