Beispiel #1
0
def query_train_jobs():
    """Query train jobs."""
    offset = request.args.get("offset", default=0)
    limit = request.args.get("limit", default=10)

    summary_watcher = SummaryWatcher()
    total, directories = summary_watcher.list_summary_directories_by_pagination(
        settings.SUMMARY_BASE_DIR, offset, limit)

    train_jobs = [{
        'train_id':
        directory['relative_path'],
        'relative_path':
        directory['relative_path'],
        'create_time':
        directory['create_time'].strftime('%Y-%m-%d %H:%M:%S'),
        'update_time':
        directory['update_time'].strftime('%Y-%m-%d %H:%M:%S'),
    } for directory in directories]

    return jsonify({
        'name':
        os.path.basename(os.path.realpath(settings.SUMMARY_BASE_DIR)),
        'total':
        total,
        'train_jobs':
        train_jobs,
    })
    def test_list_summary_directories_by_pagination(self):
        """Test list_summary_directories method success."""
        summary_base_dir = tempfile.mkdtemp(dir=self.base_dir)
        file_count = 10
        directory_count = 10
        gen_directories_and_files(summary_base_dir, file_count, directory_count)

        summary_watcher = SummaryWatcher()
        total, directories = summary_watcher.list_summary_directories_by_pagination(
            summary_base_dir, offset=0, limit=10)

        if (file_count + 1) * directory_count + file_count >= SummaryWatcher.MAX_SCAN_COUNT:
            expected_directory_count = math.ceil((SummaryWatcher.MAX_SCAN_COUNT - file_count) / (file_count + 1) + 1)
            assert total == len(directories) == expected_directory_count
        else:
            expected_directory_count = directory_count + 1
            assert total == min(expected_directory_count, SummaryWatcher.MAX_SUMMARY_DIR_COUNT)

        shutil.rmtree(summary_base_dir)