def test_status_transitions(self): """ Test that status transitions work as expected for different server workflows """ # Normal workflow server = OpenStackServerFactory() self.assertEqual(server.status, ServerStatus.Pending) self._assert_status_conditions(server) server._status_to_building() self.assertEqual(server.status, ServerStatus.Building) self._assert_status_conditions(server) server._status_to_unknown() self.assertEqual(server.status, ServerStatus.Unknown) self._assert_status_conditions(server) server._status_to_building() self.assertEqual(server.status, ServerStatus.Building) self._assert_status_conditions(server) server._status_to_booting() self.assertEqual(server.status, ServerStatus.Booting) self._assert_status_conditions(server, vm_available=True) server._status_to_unknown() self.assertEqual(server.status, ServerStatus.Unknown) self._assert_status_conditions(server) server._status_to_booting() self.assertEqual(server.status, ServerStatus.Booting) self._assert_status_conditions(server, vm_available=True) server._status_to_ready() self.assertEqual(server.status, ServerStatus.Ready) self._assert_status_conditions(server, is_steady_state=True, accepts_ssh_commands=True, vm_available=True) server._status_to_unknown() self.assertEqual(server.status, ServerStatus.Unknown) self._assert_status_conditions(server) server._status_to_ready() self.assertEqual(server.status, ServerStatus.Ready) self._assert_status_conditions(server, is_steady_state=True, accepts_ssh_commands=True, vm_available=True) server._status_to_terminated() self.assertEqual(server.status, ServerStatus.Terminated) self._assert_status_conditions(server, is_steady_state=True) # Server creation fails instance_bad_server = BuildingOpenStackServerFactory() instance_bad_server._status_to_build_failed() self.assertEqual(instance_bad_server.status, ServerStatus.BuildFailed) self._assert_status_conditions(server, is_steady_state=True)
def test_status_transitions(self): """ Test that status transitions work as expected for different server workflows """ # Normal workflow server = OpenStackServerFactory() self.assertEqual(server.status, ServerStatus.Pending) self._assert_status_conditions(server) server._status_to_building() self.assertEqual(server.status, ServerStatus.Building) self._assert_status_conditions(server) server._status_to_booting() self.assertEqual(server.status, ServerStatus.Booting) self._assert_status_conditions(server, vm_available=True) server._status_to_ready() self.assertEqual(server.status, ServerStatus.Ready) self._assert_status_conditions(server, is_steady_state=True, accepts_ssh_commands=True, vm_available=True) server._status_to_terminated() self.assertEqual(server.status, ServerStatus.Terminated) self._assert_status_conditions(server, is_steady_state=True) # Server creation fails instance_bad_server = BuildingOpenStackServerFactory() instance_bad_server._status_to_build_failed() self.assertEqual(instance_bad_server.status, ServerStatus.BuildFailed) self._assert_status_conditions(server, is_steady_state=True)
def test_server_status(self): """ Server status of an instance with one active server """ instance = SingleVMOpenEdXInstanceFactory() self.assertIsNone(instance.server_status) server = OpenStackServerFactory(instance=instance) self.assertEqual(instance.server_status, Server.Status.Pending) server._status_to_building() self.assertEqual(instance.server_status, Server.Status.Building) server._status_to_booting() self.assertEqual(instance.server_status, Server.Status.Booting) server._status_to_ready() self.assertEqual(instance.server_status, Server.Status.Ready) server._status_to_terminated() self.assertIsNone(instance.server_status) bad_instance = SingleVMOpenEdXInstanceFactory() bad_server = BuildingOpenStackServerFactory(instance=bad_instance) bad_server._status_to_build_failed() self.assertEqual(bad_instance.server_status, Server.Status.BuildFailed)