def test_order_list_with_filters(self): parent_kitchen = 'CLI-Top' # Don't use a guid for this. Don't kitchen = self._add_my_guid('test_order_list_with_filters') recipe1 = 'parallel-recipe-test' recipe1_variation = self._get_run_variation_for_recipe(recipe1) recipe2 = 'simple' recipe2_variation = 'simple-variation-now' setup = True if setup: self._delete_and_clean_kitchen(kitchen) rv = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, kitchen) self.assertTrue(rv.ok()) rv = DKCloudCommandRunner.create_order(self._api, kitchen, recipe1, recipe1_variation) self.assertTrue(rv.ok()) first_order = rv.get_payload() rv = DKCloudCommandRunner.create_order(self._api, kitchen, recipe1, recipe1_variation) self.assertTrue(rv.ok()) time.sleep(20) rs = DKCloudCommandRunner.list_order(self._api, kitchen) self.assertTrue(rs.ok()) message = rs.rc['message'] self.assertTrue( 'OrderRun is Planned' in message or 'OrderRun Completed' in message or 'OrderRun is Active' in message) # cleanup self._delete_and_clean_kitchen(kitchen)
def test_order_list_with_filters(self): parent_kitchen = 'CLI-Top' # Don't use a guid for this. Don't kitchen = self._add_my_guid('test_order_list_with_filters') recipe1 = 'parallel-recipe-test' recipe1_variation = self._get_run_variation_for_recipe(recipe1) recipe2 = 'simple' recipe2_variation = 'simple-variation-now' setup = True if setup: self._delete_and_clean_kitchen(kitchen) rv = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, kitchen) self.assertTrue(rv.ok()) rv = DKCloudCommandRunner.create_order(self._api, kitchen, recipe1, recipe1_variation) self.assertTrue(rv.ok()) first_order = rv.get_payload() rv = DKCloudCommandRunner.create_order(self._api, kitchen, recipe1, recipe1_variation) self.assertTrue(rv.ok()) time.sleep(20) rs = DKCloudCommandRunner.list_order(self._api, kitchen) self.assertTrue(rs.ok()) message = rs.rc['message'] self.assertTrue( 'OrderRun is Planned' in message or 'OrderRun Completed' in message or 'OrderRun is Active' in message) # cleanup self._delete_and_clean_kitchen(kitchen)
def test_order_list(self): parent_kitchen = 'CLI-Top' recipe_name = 'parallel-recipe-test' variation_name = self._get_run_variation_for_recipe(recipe_name) new_kitchen = 'test_order_list' new_kitchen = self._add_my_guid(new_kitchen) self._delete_and_clean_kitchen(new_kitchen) rs = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, new_kitchen) self.assertTrue(rs.ok()) rs = DKCloudCommandRunner.create_order(self._api, new_kitchen, recipe_name, variation_name) new_order_id_1 = rs.get_payload()['serving_chronos_id'] self.assertTrue(rs.ok()) rs = DKCloudCommandRunner.list_order(self._api, new_kitchen) output_string = rs.rc['message'] self.assertTrue(new_order_id_1 in output_string) found_completed_serving = False wait_time = [.2, .5, .5, .5, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 10, 10] for wt in wait_time: rs = DKCloudCommandRunner.list_order(self._api, new_kitchen) output_string = rs.rc['message'] n = output_string.count(new_order_id_1) if n == 2 and ('OrderRun Completed' in output_string): found_completed_serving = True break time.sleep(wt) self.assertTrue(found_completed_serving) # cleanup self._delete_and_clean_kitchen(new_kitchen)
def test_order_list_for_repeating_order(self): parent_kitchen = 'master' recipe_name = 'parallel-recipe-test' variation_name = self._get_run_variation_for_recipe(recipe_name, repeater=True) new_kitchen = 'test_order_list_for_repeating_order' new_kitchen = self._add_my_guid(new_kitchen) self._delete_and_clean_kitchen(new_kitchen) rs = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, new_kitchen) self.assertTrue(rs.ok()) rs = DKCloudCommandRunner.create_order(self._api, new_kitchen, recipe_name, variation_name) new_order_id_1 = rs.get_payload() self.assertTrue(rs.ok()) found_completed_serving = False wait_time = [10,61,61,61,61] for wt in wait_time: rs = DKCloudCommandRunner.list_order(self._api, new_kitchen) output_string = rs.rc['message'] n = output_string.count(new_order_id_1) if n >= 3 and ('OrderRun Completed' in output_string): found_completed_serving = True break time.sleep(wt) self.assertTrue(found_completed_serving) # cleanup self._delete_and_clean_kitchen(new_kitchen)
def test_order_list_for_repeating_order(self): parent_kitchen = 'master' recipe_name = 'parallel-recipe-test' variation_name = self._get_run_variation_for_recipe(recipe_name, repeater=True) new_kitchen = 'test_order_list_for_repeating_order' new_kitchen = self._add_my_guid(new_kitchen) self._delete_and_clean_kitchen(new_kitchen) rs = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, new_kitchen) self.assertTrue(rs.ok()) rs = DKCloudCommandRunner.create_order(self._api, new_kitchen, recipe_name, variation_name) new_order_id_1 = rs.get_payload() self.assertTrue(rs.ok()) found_completed_serving = False wait_time = [10,61,61,61,61] for wt in wait_time: rs = DKCloudCommandRunner.list_order(self._api, new_kitchen) output_string = rs.rc['message'] n = output_string.count(new_order_id_1) if n >= 3 and ('OrderRun Completed' in output_string): found_completed_serving = True break time.sleep(wt) self.assertTrue(found_completed_serving) # cleanup self._delete_and_clean_kitchen(new_kitchen)
def test_active_serving_watcher(self): # setup parent = 'master' kitchen = 'test_active_serving_watcher' kitchen = self._add_my_guid(kitchen) recipe_name = 'test-everything-recipe' variation_name = self._get_run_variation() self._delete_and_clean_kitchen(kitchen) rv = DKCloudCommandRunner.create_kitchen(self._api, parent, kitchen) self.assertTrue(rv.ok()) # start watcher DKActiveServingWatcherSingleton().set_sleep_time(2) DKActiveServingWatcherSingleton().set_api(self._api) DKActiveServingWatcherSingleton().set_kitchen(kitchen) self.assertTrue(DKActiveServingWatcherSingleton().start_watcher()) # cook one rs = DKCloudCommandRunner.create_order(self._api, kitchen, recipe_name, variation_name) self.assertTrue(rs.ok()) wait_time = [.1, 1, 3, 3, 3, 3, 9, 18] found_active_serving = False wait_generator = (wt for wt in wait_time if found_active_serving is False) print 'test_active_serving_watcher: found_active_serving, trying ... ' for wt in wait_generator: time.sleep(wt) resp1 = DKCloudCommandRunner.orderrun_detail(self._api, kitchen, {'summary': True}) print 'test_active_serving_watcher: found_active_serving is False (%s)' % wt # print 'got', resp1.get_message() message = resp1.get_message() if resp1.ok(): message_split = message.split('\n') if message_split is not None and len(message_split) > 10 and \ 'ORDER RUN SUMMARY' in message_split[1] and \ 'Order ID' in message_split[3] and 'DKRecipe#dk#test-everything-recipe#variation-test#' in message_split[3] and \ 'Order Run ID' in message_split[4] and 'ct:' in message_split[4] and 'DKRecipe#dk#test-everything-recipe#variation-test#' in message_split[4] and \ 'Status' in message_split[5] and 'COMPLETED_SERVING' in message_split[5]: found_active_serving = True self.assertTrue(found_active_serving) # cleanup self._delete_and_clean_kitchen(kitchen)
def test_delete_one_order(self): # setup parent_kitchen = 'CLI-Top' new_kitchen = 'test_deleteall_order-RUN' new_kitchen = self._add_my_guid(new_kitchen) recipe = 'simple' variation = 'simple-variation-now' DKCloudCommandRunner.delete_kitchen(self._api, new_kitchen) # clean up junk rc = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, new_kitchen) self.assertTrue(rc.ok()) rv = DKCloudCommandRunner.create_order(self._api, new_kitchen, recipe, variation) self.assertIsNotNone(rv) order_id = rv.get_payload()['serving_chronos_id'] self.assertIsNotNone(variation in order_id) # test rc = DKCloudCommandRunner.delete_one_order(self._api, order_id) self.assertTrue(rc.ok()) # cleanup DKCloudCommandRunner.delete_kitchen(self._api, new_kitchen)
def test_delete_one_order(self): # setup parent_kitchen = 'CLI-Top' new_kitchen = 'test_deleteall_order-RUN' new_kitchen = self._add_my_guid(new_kitchen) recipe = 'simple' variation = 'simple-variation-now' DKCloudCommandRunner.delete_kitchen(self._api, new_kitchen) # clean up junk rc = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, new_kitchen) self.assertTrue(rc.ok()) rv = DKCloudCommandRunner.create_order(self._api, new_kitchen, recipe, variation) self.assertIsNotNone(rv) order_id = rv.get_payload() self.assertIsNotNone(variation in order_id) # test rc = DKCloudCommandRunner.delete_one_order(self._api, order_id) self.assertTrue(rc.ok()) # cleanup DKCloudCommandRunner.delete_kitchen(self._api, new_kitchen)
def test_stop_order(self): # setup parent_kitchen = 'CLI-Top' new_kitchen = 'test_stop_order-RUN' new_kitchen = self._add_my_guid(new_kitchen) recipe = 'simple' variation = 'simple-variation-now' DKCloudCommandRunner.delete_kitchen(self._api, new_kitchen) # clean up junk rc = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, new_kitchen) self.assertTrue(rc.ok()) rv = DKCloudCommandRunner.create_order(self._api, new_kitchen, recipe, variation) self.assertIsNotNone(rv) order_id = rv.get_payload() self.assertIsNotNone(variation in order_id) # test rc = DKCloudCommandRunner.stop_order(self._api, order_id) # todo: need to find a way for this to succeed self.assertTrue(rc.ok()) # cleanup DKCloudCommandRunner.delete_kitchen(self._api, new_kitchen)
def test_active_serving_watcher(self): # setup parent = 'master' kitchen = 'test_active_serving_watcher' kitchen = self._add_my_guid(kitchen) recipe_name = 'test-everything-recipe' variation_name = self._get_run_variation() self._delete_and_clean_kitchen(kitchen) rv = DKCloudCommandRunner.create_kitchen(self._api, parent, kitchen) self.assertTrue(rv.ok()) # start watcher DKActiveServingWatcherSingleton().set_sleep_time(2) DKActiveServingWatcherSingleton().set_api(self._api) DKActiveServingWatcherSingleton().set_kitchen(kitchen) self.assertTrue(DKActiveServingWatcherSingleton().start_watcher()) # cook one rs = DKCloudCommandRunner.create_order(self._api, kitchen, recipe_name, variation_name) self.assertTrue(rs.ok()) wait_time = [.1, 1, 3, 3, 3, 3, 9, 18] found_active_serving = False wait_generator = (wt for wt in wait_time if found_active_serving is False) print 'test_active_serving_watcher: found_active_serving, trying ... ' for wt in wait_generator: time.sleep(wt) resp1 = DKCloudCommandRunner.orderrun_detail(self._api, kitchen, {'summary': True}) print 'test_active_serving_watcher: found_active_serving is False (%s)' % wt # print 'got', resp1.get_message() message = resp1.get_message() if resp1.ok() and ('OrderRun is Planned' in message or 'OrderRun Completed' in message or 'OrderRun is Active' in message): found_active_serving = True self.assertTrue(found_active_serving) # cleanup self._delete_and_clean_kitchen(kitchen)
def test_active_serving_watcher(self): # setup parent = 'master' kitchen = 'test_active_serving_watcher' kitchen = self._add_my_guid(kitchen) recipe_name = 'test-everything-recipe' variation_name = self._get_run_variation() self._delete_and_clean_kitchen(kitchen) rv = DKCloudCommandRunner.create_kitchen(self._api, parent, kitchen) self.assertTrue(rv.ok()) # start watcher DKActiveServingWatcherSingleton().set_sleep_time(2) DKActiveServingWatcherSingleton().set_api(self._api) DKActiveServingWatcherSingleton().set_kitchen(kitchen) self.assertTrue(DKActiveServingWatcherSingleton().start_watcher()) # cook one rs = DKCloudCommandRunner.create_order(self._api, kitchen, recipe_name, variation_name) self.assertTrue(rs.ok()) wait_time = [.1, 1, 3, 3, 3, 3, 9, 18] found_active_serving = False wait_generator = (wt for wt in wait_time if found_active_serving is False) print('test_active_serving_watcher: found_active_serving, trying ... ') for wt in wait_generator: time.sleep(wt) resp1 = DKCloudCommandRunner.orderrun_detail(self._api, kitchen, {'summary': True}) print('test_active_serving_watcher: found_active_serving is False (%s)' % wt) # print 'got', resp1.get_message() message = resp1.get_message() if resp1.ok() and ('OrderRun is Planned' in message or 'OrderRun Completed' in message or 'OrderRun is Active' in message): found_active_serving = True self.assertTrue(found_active_serving) # cleanup self._delete_and_clean_kitchen(kitchen)
def test_order_list_for_repeating_order(self): parent_kitchen = 'master' recipe_name = 'parallel-recipe-test' variation_name = self._get_run_variation_for_recipe(recipe_name, repeater=True) new_kitchen = 'test_order_list_for_repeating_order' new_kitchen = self._add_my_guid(new_kitchen) self._delete_and_clean_kitchen(new_kitchen) rs = DKCloudCommandRunner.create_kitchen(self._api, parent_kitchen, new_kitchen) self.assertTrue(rs.ok()) rs = DKCloudCommandRunner.create_order(self._api, new_kitchen, recipe_name, variation_name) self.assertTrue(rs.ok()) new_order_id_1 = rs.get_payload()['serving_chronos_id'] found_completed_serving = False wait_time = [10,61,61,61,61,61,61,61] for wt in wait_time: rs = DKCloudCommandRunner.list_order(self._api, new_kitchen) output_string = rs.rc['message'] output_string_split = output_string.split('\n') index = 0 output_string_split_length = len(output_string_split) find_title = False pattern_title = 'ORDER SUMMARY (order ID: DKRecipe#dk#parallel-recipe-test#variation-test-repeat#test_order_list_for_repeating_order_ut_' while not find_title and index < output_string_split_length: if pattern_title in output_string_split[index]: find_title = True index += 1 find_order_run_1 = False pattern_order_run_1a = '1. ORDER RUN (OrderRun ID: ct:' pattern_order_run_1b = 'DKRecipe#dk#parallel-recipe-test#variation-test-repeat#test_order_list_for_repeating_order_ut_' while not find_order_run_1 and index < output_string_split_length: if pattern_order_run_1a in output_string_split[index] and \ pattern_order_run_1b in output_string_split[index] and \ index + 1 < output_string_split_length and \ 'OrderRun Completed' in output_string_split[index+1]: find_order_run_1 = True index += 1 find_order_run_2 = False pattern_order_run_2a = '2. ORDER RUN (OrderRun ID: ct:' pattern_order_run_2b = 'DKRecipe#dk#parallel-recipe-test#variation-test-repeat#test_order_list_for_repeating_order_ut_' while not find_order_run_2 and index < output_string_split_length: if pattern_order_run_2a in output_string_split[index] and \ pattern_order_run_2b in output_string_split[index] and \ index + 1 < output_string_split_length and \ 'OrderRun Completed' in output_string_split[index+1]: find_order_run_2 = True index += 1 if find_title and find_order_run_1 and find_order_run_2: found_completed_serving = True break time.sleep(wt) self.assertTrue(found_completed_serving) # cleanup self._delete_and_clean_kitchen(new_kitchen)
def test_create_order(self): kitchen = 'CLI-Top' recipe = 'simple' variation = 'simple-variation-now' rv = DKCloudCommandRunner.create_order(self._api, kitchen, recipe, variation) self.assertTrue('simple' in rv.get_message())
def test_create_order(self): kitchen = 'CLI-Top' recipe = 'simple' variation = 'simple-variation-now' rv = DKCloudCommandRunner.create_order(self._api, kitchen, recipe, variation) self.assertTrue('simple' in rv.get_message())