Ejemplo n.º 1
0
    def get(self, task_id):  # pylint: disable=no-self-use
        """ GET the result of the task id """
        try:
            uuid.UUID(task_id)
        except ValueError:
            return api_utils.result_handler(status=1, data='Invalid task id')

        task_handler = TasksHandler()
        try:
            task = task_handler.get_task_by_taskid(task_id)
        except ValueError:
            return api_utils.result_handler(status=1, data='No such task id')

        status = task.status
        LOGGER.debug('Task status is: %s', status)

        if status not in ['IN PROGRESS', 'FAIL', 'FINISHED']:
            return api_utils.result_handler(status=1,
                                            data='internal server error')
        if status == 'IN PROGRESS':
            result = {'status': status, 'result': ''}
        elif status == 'FAIL':
            result = {'status': status, 'error': task.error}
        else:
            result = {'status': status, 'result': json.loads(task.result)}

        return jsonify(result)
Ejemplo n.º 2
0
    def get(self, task_id):  # pylint: disable=no-self-use
        """ GET the log of the task id """
        try:
            uuid.UUID(task_id)
        except ValueError:
            return api_utils.result_handler(status=1, data='Invalid task id')

        task_handler = TasksHandler()
        try:
            task = task_handler.get_task_by_taskid(task_id)
        except ValueError:
            return api_utils.result_handler(status=1, data='No such task id')

        task_log_dir = CONST.__getattribute__('dir_results')

        try:
            with open(os.path.join(task_log_dir, '{}.log'.format(task_id)),
                      'r') as log_file:
                data = log_file.readlines()
        except OSError as err:
            if err.errno == errno.ENOENT:
                return api_utils.result_handler(status=1,
                                                data='Log file does not exist')

            return api_utils.result_handler(status=1,
                                            data='Error with log file')

        return_data = {'data': data}

        return api_utils.result_handler(status=task.status, data=return_data)
Ejemplo n.º 3
0
    def get(self, task_id):  # pylint: disable=no-self-use
        """ GET the log of the task id """
        try:
            uuid.UUID(task_id)
        except ValueError:
            return api_utils.result_handler(status=1, data='Invalid task id')

        task_handler = TasksHandler()
        try:
            task = task_handler.get_task_by_taskid(task_id)
        except ValueError:
            return api_utils.result_handler(status=1, data='No such task id')

        task_log_dir = getattr(config.CONF, 'dir_results')
        # pylint: disable=maybe-no-member
        index = int(self._get_args().get('index', 0))

        try:
            with open(os.path.join(task_log_dir, '{}.log'.format(task_id)),
                      'r') as log_file:
                log_file.seek(index)
                data = log_file.readlines()
                index = log_file.tell()
        except OSError as err:
            if err.errno == errno.ENOENT:
                return api_utils.result_handler(status=1,
                                                data='Log file does not exist')

            return api_utils.result_handler(status=1,
                                            data='Error with log file')

        return_data = {'data': data, 'index': index}

        switcher = {'IN PROGRESS': 0, 'FAIL': 1, 'FINISHED': 2}

        return api_utils.result_handler(status=switcher.get(task.status),
                                        data=return_data)