示例#1
0
def new_html(hub_id, dataset_id, version):
    check_assertion(VersionExists(hub_id, dataset_id, version))
    data = flask.request.form
    start_time, end_time = None, None

    if data.get('start_date'):
        if data.get('start_time'):
            start_time = dt.datetime.strptime(
                f'{data["start_date"]} {data["start_time"]}', '%Y-%m-%d %H:%M')
        else:
            start_time = dt.datetime.strptime(data['start_date'], '%Y-%m-%d')

    if data.get('end_date'):
        if data.get('end_time'):
            end_time = dt.datetime.strptime(
                f'{data["end_date"]} {data["end_time"]}', '%Y-%m-%d %H:%M')
        else:
            end_time = dt.datetime.strptime(data['end_date'], '%Y-%m-%d')

    execute_action(
        NewPartition(hub_id, dataset_id, version, data['path'],
                     data.getlist('partition_values[]'), data.get('row_count'),
                     start_time, end_time))

    return flask.redirect(
        flask.url_for('versions.detail_html',
                      hub_id=hub_id,
                      dataset_id=dataset_id,
                      version=version))
示例#2
0
def verify_json(hub_id, dataset_id, version):
    check_assertion(VersionExists(hub_id, dataset_id, version))
    execute_action(SetQueuedPartitionStatus(hub_id, dataset_id, version))
    backend_id = fetch_view(SimpleDetailVersion(hub_id, dataset_id, version))['backend_id']
    queue_id = enqueue_job(backend_id, 'verify_partitions', {
        'hub_id': str(hub_id),
        'dataset_id': str(dataset_id),
        'version': str(version)
    })
    return flask.jsonify({'queue_id': queue_id})
示例#3
0
def verify_html(hub_id, dataset_id, version):
    check_assertion(VersionExists(hub_id, dataset_id, version))
    execute_action(SetQueuedPartitionStatus(hub_id, dataset_id, version))
    backend_id = fetch_view(SimpleDetailVersion(hub_id, dataset_id, version))['backend_id']
    enqueue_job(backend_id, 'verify_partitions', {
        'hub_id': str(hub_id),
        'dataset_id': str(dataset_id),
        'version': str(version)
    })
    return flask.redirect(flask.url_for('versions.detail_html', hub_id=hub_id, dataset_id=dataset_id, version=version))
示例#4
0
def new_html(hub_id, dataset_id):
    check_assertion(DatasetExists(hub_id, dataset_id))
    data = flask.request.form

    execute_action(NewConnection(hub_id,
                                 dataset_id,
                                 data['connector_id'],
                                 data['path']))

    return flask.redirect(flask.url_for('versions.index_html',
                                        hub_id=hub_id, dataset_id=dataset_id))
示例#5
0
def new_html():
    error = None

    if flask.request.method == 'POST':
        data = flask.request.form
        try:
            execute_action(NewTeam(data['name']))
            return flask.redirect(flask.url_for('teams.index_html'))
        except DbException as e:
            error = str(e)

    return flask.render_template('teams/new.html.j2', error=error)
示例#6
0
def new_html(hub_id, dataset_id):
    error = None

    if flask.request.method == 'POST':
        data = flask.request.form
        columns = [
            [
                name,
                data.getlist('column_type[]')[idx],
                data.getlist('column_description[]')[idx],
                data.getlist('column_is_nullable[]')[idx] == 'true',
                data.getlist('column_is_unique[]')[idx] == 'true',
                data.getlist('column_has_pii[]')[idx] == 'true',
            ]
            for (idx, name) in enumerate(data.getlist('column_name[]'))
        ]
        depends_on = [
            [
                hub_id,
                data.getlist('parent_dataset_id[]')[idx],
                int(data.getlist('parent_version[]')[idx]),
            ]
            for (idx, hub_id) in enumerate(data.getlist('parent_hub_id[]'))
        ]

        try:
            execute_action(
                NewDatasetVersion(hub_id,
                                  dataset_id,
                                  data['backend'],
                                  data['path'],
                                  data.getlist('partition_key[]'),
                                  data['description'],
                                  bool(data.get('is_overlapping')),
                                  columns,
                                  depends_on)
            )
            return flask.redirect(flask.url_for('versions.index_html', hub_id=hub_id, dataset_id=dataset_id))
        except DbException as e:
            error = str(e)

    published = fetch_view(PublishedVersions())
    dataset_name = fetch_view(DetailDataset(hub_id, dataset_id))['name']
    return flask.render_template('versions/new.html.j2',
                                 hub_id=hub_id,
                                 dataset_id=dataset_id,
                                 backends=Backends,
                                 types=Types,
                                 error=error,
                                 published=published,
                                 dataset_name=dataset_name,
                                 version={})
示例#7
0
def new_html(hub_id):
    error = None

    if flask.request.method == 'POST':
        data = flask.request.form
        try:
            execute_action(NewDataset(hub_id, data['name']))
            return flask.redirect(flask.url_for('datasets.index_html', hub_id=hub_id))
        except DbException as e:
            error = str(e)

    details = fetch_view(DetailHub(hub_id))
    return flask.render_template('datasets/new.html.j2', hub_id=hub_id, error=error, **details)
示例#8
0
文件: hubs.py 项目: angelini/data-hub
def new_html():
    error = None

    if flask.request.method == 'POST':
        data = flask.request.form
        try:
            execute_action(NewHub(data['team_id'], data['name']))
            return flask.redirect(flask.url_for('hubs.index_html'))
        except DbException as e:
            error = str(e)

    teams = fetch_view(ListTeams())['teams']
    return flask.render_template('hubs/new.html.j2', teams=teams, error=error)
示例#9
0
def new_json(hub_id, dataset_id, version):
    check_assertion(VersionExists(hub_id, dataset_id, version))
    data = flask.request.json
    partition_id = execute_action(
        NewPartition(hub_id, dataset_id, version, data['path'],
                     data['partition_values'], data.get('row_count'),
                     data.get('start_time'), data.get('end_time')))
    return flask.jsonify({'partition_id': partition_id}), 201
示例#10
0
def new_json(hub_id, dataset_id):
    check_assertion(DatasetExists(hub_id, dataset_id))
    data = flask.request.json
    connection_id = execute_action(
        NewConnection(hub_id,
                      dataset_id,
                      data['connector_id'],
                      data['path'])
    )
    return flask.jsonify({'connection_id': connection_id}), 201
示例#11
0
def new_json(hub_id, dataset_id):
    data = flask.request.json
    version_id = execute_action(
        NewDatasetVersion(hub_id,
                          dataset_id,
                          data['backend'],
                          data['path'],
                          data['partition_keys'],
                          data['description'],
                          data['is_overlapping'],
                          data['columns'],
                          data['depends_on'])
    )
    return flask.jsonify({'version': version_id}), 201
示例#12
0
def new_json():
    data = flask.request.json
    user_id = execute_action(NewUser(data['email'], data['password']))
    return flask.jsonify({'user_id': user_id}), 201
示例#13
0
def new_json():
    data = flask.request.json
    team_id = execute_action(NewTeam(data['name']))
    return flask.jsonify({'team_id': team_id}), 201
示例#14
0
def new_json(hub_id):
    data = flask.request.json
    dataset_id = execute_action(NewDataset(hub_id, data['name']))
    return flask.jsonify({'dataset_id': dataset_id}), 201
示例#15
0
def new_member_json(team_id):
    data = flask.request.json
    check_assertion(TeamExists(team_id))
    member_id = execute_action(NewTeamMember(team_id, data['user_id']))
    return flask.jsonify({'member_id': member_id})
示例#16
0
def new_member_html(team_id):
    data = flask.request.form
    check_assertion(TeamExists(team_id))
    execute_action(NewTeamMember(team_id, data['user_id']))
    return flask.redirect(flask.url_for('teams.detail_html', team_id=team_id))
示例#17
0
文件: hubs.py 项目: angelini/data-hub
def new_json():
    data = flask.request.json
    hub_id = execute_action(NewHub(data['team_id'], data['name']))
    return flask.jsonify({'hub_id': hub_id}), 201
示例#18
0
def publish_html(hub_id, dataset_id, version):
    check_assertion(VersionExists(hub_id, dataset_id, version))
    execute_action(PublishVersion(hub_id, dataset_id, version))
    return flask.redirect(flask.url_for('versions.index_html', hub_id=hub_id, dataset_id=dataset_id))
示例#19
0
def publish_json(hub_id, dataset_id, version):
    check_assertion(VersionExists(hub_id, dataset_id, version))
    execute_action(PublishVersion(hub_id, dataset_id, version))
    return flask.jsonify({})