Exemple #1
0
def create(ctx, *args, **kwargs):
    admin_check(ctx.obj["user_id"])
    bucket = Bucket(ctx.obj["client"], name=ctx.obj["name"])
    bucket.location = kwargs["location"].upper()
    bucket.storage_class = kwargs["class"].upper()
    bucket.create()
    return f"Bucket `{bucket.name}` created."
Exemple #2
0
def delete(ctx, *args, **kwargs):
    admin_check(ctx.obj["user_id"])
    cmd = ["gsutil", "-m", "rm", kwargs["src_path"]]
    proc = run(cmd, capture_output=True)
    if proc.returncode:
        raise ValueError(proc.stderr.decode("utf-8"))
    return f"Deleted files matching `{kwargs['src_path']}`"
Exemple #3
0
def remove_bucket_iam_member(ctx, *args, **kwargs):
    """Remove member from bucket IAM Policy."""
    admin_check(ctx.obj["user_id"])
    member = kwargs["member"]
    bucket = ctx.obj["client"].bucket(ctx.obj["name"])
    msg = _bucket_iam_helper(bucket, member, _get_roles(**kwargs), False)
    return f"```{msg}```"
Exemple #4
0
def add_bucket_iam_member(ctx, *args, **kwargs):
    """
    Add a new member to an IAM Policy.
    For users external to the organization, only accounts associated with Gmail will work.
    """
    admin_check(ctx.obj["user_id"])
    member = kwargs["member"]
    bucket = ctx.obj["client"].bucket(ctx.obj["name"])
    msg = _bucket_iam_helper(bucket, member, _get_roles(**kwargs), True)
    return f"```{msg}```"
Exemple #5
0
def move(ctx, *args, **kwargs):
    admin_check(ctx.obj["user_id"])
    # with Storage(kwargs["src_path"], n_threads=ctx.obj["n_threads"]) as src, Storage(
    #     kwargs["dst_path"], n_threads=ctx.obj["n_threads"]
    # ) as dst:
    #     files = src.list_files()
    #     dst.put_files(src.get_files(files))  # pylint: disable=no-member
    #     src.delete_files(files)
    # return f"Moved files from `{kwargs['src_path']}` to `{kwargs['dst_path']}`"
    cmd = ["gsutil", "-m", "mv", kwargs["src_path"], kwargs["dst_path"]]
    proc = run(cmd, capture_output=True)
    if proc.returncode:
        raise ValueError(proc.stderr.decode("utf-8"))
    return f"Moved files from `{kwargs['src_path']}` to `{kwargs['dst_path']}`"
Exemple #6
0
def delete(ctx, *args, **kwargs):
    admin_check(ctx.obj["user_id"])
    bucket = Bucket(ctx.obj["client"], name=ctx.obj["name"])
    bucket.delete(force=kwargs["force"])
    return f"Bucket `{bucket.name}` deleted."
def service_accounts(ctx, *args, **kwargs):
    """Group for Service Account commands."""
    admin_check(ctx.obj["user_id"])
    ctx.obj["sa_actions"] = ServiceAccountActions(ctx.obj["project"])
    return ctx.obj["sa_actions"].list()