def query_single_train_task():
    """Query single train task"""
    plugin_name = request.args.get('plugin_name')
    train_id = get_train_id(request)

    processor = TrainTaskManager(DATA_MANAGER)
    tasks = processor.get_single_train_task(train_id=train_id, plugin_name=plugin_name)
    return jsonify(tasks)
Example #2
0
def query_plugins():
    """Query plugins."""
    train_id = get_train_id(request)

    manual_update = request.args.get('manual_update', default='false')
    manual_update = str_to_bool(manual_update, "manual_update")

    processor = TrainTaskManager(DATA_MANAGER)
    plugins = processor.get_plugins(train_id, manual_update)
    return jsonify(plugins)
 def test_get_single_train_task_with_not_exists_train_id(self):
     """Test getting single train task with not exists train_id."""
     train_task_manager = TrainTaskManager(self._mock_data_manager)
     for plugin_name in PluginNameEnum.list_members():
         test_train_id = "not_exist_id"
         with pytest.raises(TrainJobNotExistError) as exc_info:
             _ = train_task_manager.get_single_train_task(plugin_name, test_train_id)
         assert exc_info.value.message == "Train job is not exist. " \
                                          "Detail: Can not find the train job in data manager."
         assert exc_info.value.error_code == '50545005'
    def test_get_plugins_with_train_id(self):
        """Test getting plugins with train id."""
        train_task_manager = TrainTaskManager(self._mock_data_manager)

        for train_id in self._train_id_list:
            result = train_task_manager.get_plugins(train_id)
            plugins = result.get('plugins')
            for plugin_name in plugins:
                if plugins.get(plugin_name):
                    assert train_id in self._plugins_id_map.get(plugin_name)
                else:
                    assert train_id not in self._plugins_id_map.get(plugin_name)
Example #5
0
 def test_get_single_train_task_with_not_exists_train_id(self, load_data):
     """Test getting single train task with not exists train_id."""
     train_task_manager = TrainTaskManager(self._mock_data_manager)
     for plugin_name in PluginNameEnum.list_members():
         test_train_id = "not_exist_id"
         with pytest.raises(ParamValueError) as exc_info:
             _ = train_task_manager.get_single_train_task(
                 plugin_name, test_train_id)
         assert exc_info.type == ParamValueError
         assert exc_info.value.message == "Invalid parameter value. Can not find " \
                                          "the train job in data manager."
         assert exc_info.value.error_code == '50540002'
    def test_get_single_train_task_with_params(self):
        """Test getting single train task with params."""
        train_task_manager = TrainTaskManager(self._mock_data_manager)
        for plugin_name in PluginNameEnum.list_members():
            for test_train_id in self._train_id_list:
                result = train_task_manager.get_single_train_task(plugin_name, test_train_id)
                tags = result.get("train_jobs")[0].get("tags")

                # if it is a UUID
                if tags:
                    assert test_train_id in self._plugins_id_map.get(plugin_name)
                else:
                    assert test_train_id not in self._plugins_id_map.get(plugin_name)
Example #7
0
def cache_train_jobs():
    """ Cache train jobs."""
    data = request.get_json(silent=True)
    if data is None:
        raise ParamMissError('train_ids')

    train_ids = data.get('train_ids')
    if train_ids is None:
        raise ParamMissError('train_ids')

    processor = TrainTaskManager(DATA_MANAGER)
    cache_result = processor.cache_train_jobs(train_ids)

    return jsonify({'cache_result': cache_result})
def query_train_jobs():
    """Query train jobs."""
    offset = request.args.get("offset", default=0)
    limit = request.args.get("limit", default=10)

    offset = Validation.check_offset(offset=offset)
    limit = Validation.check_limit(limit, min_value=1, max_value=SummaryWatcher.MAX_SUMMARY_DIR_COUNT)

    processor = TrainTaskManager(DATA_MANAGER)
    total, train_jobs = processor.query_train_jobs(offset, limit)

    return jsonify({
        'name': os.path.basename(os.path.realpath(settings.SUMMARY_BASE_DIR)),
        'total': total,
        'train_jobs': train_jobs,
    })
Example #9
0
    def test_cache_train_jobs(self):
        """Test caching train jobs with train ids."""
        train_task_manager = TrainTaskManager(self._mock_data_manager)

        cache_result = train_task_manager.cache_train_jobs(self._train_id_list)
        assert len(self._train_id_list) == len(cache_result)