Esempio n. 1
0
def test_unlink_default(directory_tree, client):
    """Test unlink default behaviour."""
    with chdir(client.path):
        create_dataset("dataset")
        add_file([directory_tree.join("dir2").strpath], "dataset")

    with pytest.raises(ParameterError):
        file_unlink("dataset", (), ())
Esempio n. 2
0
def unlink(short_name, include, exclude, yes):
    """Remove matching files from a dataset."""
    file_unlink(
        short_name=short_name,
        include=include,
        exclude=exclude,
        yes=yes,
        interactive=True
    )

    click.secho('OK', fg='green')
Esempio n. 3
0
def unlink_file_view(user_data, cache):
    """Unlink a file from a dataset."""
    ctx = DatasetUnlinkRequest().load(request.json)

    include = ctx.get("include_filter")
    exclude = ctx.get("exclude_filter")

    user = cache.ensure_user(user_data)
    project = cache.get_project(user, ctx["project_id"])

    if ctx.get("commit_message") is None:
        if include and exclude:
            filters = "-I {0} -X {1}".format(include, exclude)
        elif not include and exclude:
            filters = "-X {0}".format(exclude)
        else:
            filters = "-I {0}".format(include)

        ctx["commit_message"] = "service: unlink dataset {0} {1}".format(
            ctx["name"], filters)

    with chdir(project.abs_path):
        records = file_unlink(
            name=ctx["name"],
            include=ctx.get("include_filters"),
            exclude=ctx.get("exclude_filters"),
            yes=True,
            interactive=False,
            commit_message=ctx["commit_message"],
        )

        unlinked = [record.path for record in records]

    return result_response(DatasetUnlinkResponseRPC(), {"unlinked": unlinked})
Esempio n. 4
0
def unlink_file_view(user_data, cache):
    """Unlink a file from a dataset."""
    ctx = DatasetUnlinkRequest().load(request.json)

    include = ctx.get('include_filter')
    exclude = ctx.get('exclude_filter')

    user = cache.ensure_user(user_data)
    project = cache.get_project(user, ctx['project_id'])

    if ctx.get('commit_message') is None:
        if include and exclude:
            filters = '-I {0} -X {0}'.format(include, exclude)
        elif not include and exclude:
            filters = '-X {0}'.format(exclude)
        else:
            filters = '-I {0}'.format(include)

        ctx['commit_message'] = ('service: unlink dataset {0} {1}'.format(
            ctx['short_name'], filters))

    with chdir(project.abs_path):
        records = file_unlink(short_name=ctx['short_name'],
                              include=ctx.get('include_filters'),
                              exclude=ctx.get('exclude_filters'),
                              yes=True,
                              interactive=False,
                              commit_message=ctx['commit_message'])

        unlinked = [record.path for record in records]

    return result_response(DatasetUnlinkResponseRPC(), {'unlinked': unlinked})
Esempio n. 5
0
def unlink(short_name, include, exclude, yes):
    """Remove matching files from a dataset."""
    with file_unlink(short_name, include, exclude) as records:
        if not yes and records:
            prompt_text = (
                'You are about to remove '
                'following from "{0}" dataset.\n'.format(short_name) +
                '\n'.join([str(record.full_path) for record in records]) +
                '\nDo you wish to continue?'
            )
            click.confirm(WARNING + prompt_text, abort=True)

    click.secho('OK', fg='green')
Esempio n. 6
0
def unlink(name, include, exclude, yes):
    """Remove matching files from a dataset."""
    file_unlink(name=name, include=include, exclude=exclude, yes=yes, interactive=True)

    click.secho("OK", fg="green")