def test_recipe_start_time_is_set_to_rebooted_timestamp(self): # For a normal recipe running on a system, update_status should set # recipe.start_time to the rebooted timestamp. job = data_setup.create_job() data_setup.mark_job_scheduled(job) recipe = job.recipesets[0].recipes[0] self.assertIsNone(recipe.start_time) recipe.provision() recipe.installation.rebooted = datetime.datetime(2016, 2, 18, 13, 0, 0) job.update_status() self.assertEqual(recipe.start_time, datetime.datetime(2016, 2, 18, 13, 0, 0)) self.assertEqual(recipe.status, TaskStatus.installing)
def test_recipe_start_time_is_set_to_first_task_start_time(self): # For guest recipes, and systems without power control, there is no # rebooted timestamp. Instead the first task just gets started. job = data_setup.create_job(num_recipes=1, num_guestrecipes=1) data_setup.mark_job_scheduled(job) guestrecipe = job.recipesets[0].recipes[0].guests[0] self.assertIsNone(guestrecipe.start_time) # /distribution/virt/install starts the first task before it starts # running the guest installation. guestrecipe.provision() guestrecipe.first_task.start() guestrecipe.first_task.start_time = datetime.datetime(2016, 2, 18, 14, 0, 0) self.assertIsNone(guestrecipe.installation.rebooted) job.update_status() self.assertEqual(guestrecipe.start_time, datetime.datetime(2016, 2, 18, 14, 0, 0))