def test_update_status_provisioned_to_rebooting(self): """ Update status when the server is rebooted, after being provisioned """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', status=OpenStackServer.PROVISIONED) self.assertEqual(server.update_status(), server.PROVISIONED) self.assertEqual(server.update_status(rebooting=True), server.REBOOTING) self.assertEqual(server.status, server.REBOOTING)
def test_update_status_booted_to_provisioned(self): """ Update status while the server is booted, when the VM is provisioned """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', status=OpenStackServer.BOOTED) self.assertEqual(server.update_status(), server.BOOTED) self.assertEqual(server.update_status(provisioned=True), server.PROVISIONED) self.assertEqual(server.status, server.PROVISIONED)
def test_update_status_booted_to_error(self): """ Update status while the server is booted, when the VM failed to be provisioned """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', status=OpenStackServer.BOOTED) self.assertEqual(server.update_status(), server.BOOTED) self.assertEqual(server.update_status(provisioning=True), server.PROVISIONING) self.assertEqual(server.update_status(provisioning=True, failed=True), server.PROVISIONING) self.assertEqual(server.progress, server.PROGRESS_FAILED)
def test_update_status_rebooting_to_ready(self, mock_is_port_open): """ Update status while the server is rebooting, when the server becomes ready (ssh accessible again) """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', status=OpenStackServer.REBOOTING) mock_is_port_open.return_value = False self.assertEqual(server.update_status(), server.REBOOTING) mock_is_port_open.return_value = True self.assertEqual(server.update_status(), server.READY) self.assertEqual(server.status, server.READY)
def test_update_status_active_to_booted(self, mock_is_port_open): """ Update status while the server is active, when the VM becomes booted """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', status=OpenStackServer.ACTIVE) mock_is_port_open.return_value = False self.assertEqual(server.update_status(), server.ACTIVE) mock_is_port_open.return_value = True self.assertEqual(server.update_status(), server.BOOTED) self.assertEqual(server.status, server.BOOTED)
def test_update_status_rebooting_to_ready(self, mock_is_port_open): """ Update status while the server is rebooting, when the server becomes ready (ssh accessible again) """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', _status=ServerStatus.Rebooting.state_id) mock_is_port_open.return_value = False self.assertIsInstance(server.update_status(), ServerStatus.Rebooting) mock_is_port_open.return_value = True self.assertIsInstance(server.update_status(), ServerStatus.Ready) self.assertEqual(server.status, ServerStatus.Ready) self.assertEqual(server.progress, ServerProgress.Success)
def test_update_status_active_to_booted(self, mock_is_port_open): """ Update status while the server is active, when the VM becomes booted """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', _status=ServerStatus.Active.state_id) mock_is_port_open.return_value = False self.assertIsInstance(server.update_status(), ServerStatus.Active) mock_is_port_open.return_value = True self.assertIsInstance(server.update_status(), ServerStatus.Booted) self.assertEqual(server.status, ServerStatus.Booted) self.assertEqual(server.progress, ServerProgress.Success)
def test_update_status_started(self): """ Update status while the server is started, without change on the OpenStack VM """ server = StartedOpenStackServerFactory(os_server_fixture='openstack/api_server_1_building.json') self.assertEqual(server.update_status(), server.ACTIVE) self.assertEqual(server.progress, server.PROGRESS_RUNNING)
def test_update_status_started(self): """ Update status while the server is started, without change on the OpenStack VM """ server = StartedOpenStackServerFactory(os_server_fixture='openstack/api_server_1_building.json') self.assertEqual(server.update_status(), server.STARTED) self.assertEqual(server.status, server.STARTED)
def test_update_status_started(self): """ Update status while the server is started, without change on the OpenStack VM """ server = StartedOpenStackServerFactory(os_server_fixture='openstack/api_server_1_building.json') self.assertIsInstance(server.update_status(), ServerStatus.Active) self.assertEqual(server.progress, ServerProgress.Running)
def test_update_status_started_to_active(self, mock_is_port_open): """ Update status while the server is started, when the VM becomes active """ mock_is_port_open.return_value = False server = StartedOpenStackServerFactory(os_server_fixture='openstack/api_server_2_active.json') self.assertEqual(server.update_status(), server.ACTIVE) self.assertEqual(server.status, server.ACTIVE)
def test_update_status_started_to_active(self, mock_is_port_open): """ Update status while the server is started, when the VM becomes active """ mock_is_port_open.return_value = False server = StartedOpenStackServerFactory(os_server_fixture='openstack/api_server_2_active.json') self.assertIsInstance(server.update_status(), ServerStatus.Active) self.assertEqual(server.status, ServerStatus.Active) self.assertEqual(server.progress, ServerProgress.Success)
def test_update_status_provisioned_to_rebooting(self, _mock_sleep, mock_is_port_open): """ Update status when the server is rebooted, after being provisioned """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', _status=ServerStatus.Provisioning.state_id, _progress=ServerProgress.Success.state_id) # If server is in Status.Rebooting, update_status calls is_port_open # to determine if server should transition to Status.Ready. # When using a fixture for server.os_server, is_port_open will eventually return False, # but only after a delay of about two minutes. # So we mock out is_port_open here to speed up testing: mock_is_port_open.return_value = False self.assertIsInstance(server.update_status(), ServerStatus.Provisioning) self.assertEqual(server.progress, ServerProgress.Success) server.reboot() self.assertEqual(server.status, ServerStatus.Rebooting) self.assertIsInstance(server.update_status(), ServerStatus.Rebooting) self.assertEqual(server.status, ServerStatus.Rebooting) self.assertEqual(server.progress, ServerProgress.Running)
def test_update_status_booted_to_error(self): """ Update status while the server is booted, when the VM failed to be provisioned """ server = StartedOpenStackServerFactory( os_server_fixture='openstack/api_server_2_active.json', _status=ServerStatus.Booted.state_id) self.assertIsInstance(server.update_status(), ServerStatus.Booted) server.mark_as_provisioning() self.assertEqual(server.status, ServerStatus.Provisioning) self.assertEqual(server.progress, ServerProgress.Running) server.mark_provisioning_finished(success=False) self.assertEqual(server.status, ServerStatus.Provisioning) self.assertEqual(server.progress, ServerProgress.Failed)