示例#1
0
    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)
示例#3
0
    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)
示例#6
0
    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)
示例#7
0
 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)
示例#12
0
    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)
示例#13
0
 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())