From 3bc3611f6fa4d41769afce4e0975ec6f3db45233 Mon Sep 17 00:00:00 2001 From: Jesse Lovelace Date: Thu, 12 Sep 2019 13:07:51 -0700 Subject: [PATCH 1/3] Remove required argument from list buckets sample --- storage/cloud-client/snippets.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/storage/cloud-client/snippets.py b/storage/cloud-client/snippets.py index 95aff2c506d..8efc95ca95d 100644 --- a/storage/cloud-client/snippets.py +++ b/storage/cloud-client/snippets.py @@ -432,8 +432,6 @@ def main(): subparsers = parser.add_subparsers(dest='command') list_buckets_parser = subparsers.add_parser( 'list-buckets', help=list_buckets.__doc__) - list_buckets_parser.add_argument( - 'bucket_name', help='Your cloud storage bucket.') create_bucket_parser = subparsers.add_parser( 'create-bucket', help=create_bucket.__doc__) From 9e6d35f3e2dcae178fc04b415e5dda7ae4d71b6e Mon Sep 17 00:00:00 2001 From: Jesse Lovelace Date: Thu, 12 Sep 2019 16:32:14 -0700 Subject: [PATCH 2/3] Bucket metadata sample --- storage/cloud-client/snippets.py | 34 ++++++++++++++++++++++++++- storage/cloud-client/snippets_test.py | 4 ++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/storage/cloud-client/snippets.py b/storage/cloud-client/snippets.py index 8efc95ca95d..c2294592add 100644 --- a/storage/cloud-client/snippets.py +++ b/storage/cloud-client/snippets.py @@ -247,6 +247,30 @@ def blob_metadata(bucket_name, blob_name): print("retentionExpirationTime: {}" .format(blob.retention_expiration_time)) +def bucket_metadata(bucket_name): + """Prints out a bucket's metadata.""" + storage_client = storage.Client(); + bucket = storage_client.get_bucket(bucket_name); + + print('ID: {}'.format(bucket.id)) + print('Name: {}'.format(bucket.name)) + print('Storage Class: {}'.format(bucket.storage_class)) + print('Location: {}'.format(bucket.location)) + print('Location Type: {}'.format(bucket.location_type)) + print('Cors: {}'.format(bucket.cors)) + print('Default Event Based Hold: {}'.format(bucket.default_event_based_hold)) + print('Default KMS Key Name: {}'.format(bucket.default_kms_key_name)) + print('Metageneration: {}'.format(bucket.metageneration)) + print('Retention Effective Time: {}'.format(bucket.retention_policy_effective_time)) + print('Retention Period: {}'.format(bucket.retention_period)) + print('Retention Policy Locked: {}'.format(bucket.retention_policy_locked)) + print('Requester Pays: {}'.format(bucket.requester_pays)) + print('Self Link: {}'.format(bucket.self_link)) + print('Time Created: {}'.format(bucket.time_created)) + print('Versioning Enabled: {}'.format(bucket.versioning_enabled)) + print('Labels:') + pprint.pprint(bucket.labels) + def make_blob_public(bucket_name, blob_name): """Makes a blob publicly accessible.""" @@ -367,6 +391,8 @@ def copy_blob(bucket_name, blob_name, new_bucket_name, new_blob_name): def bucket_commands(args): if args.command == 'list-buckets': list_buckets() + elif args.command == 'bucket-metadata': + bucket_metadata(args.bucket_name) elif args.command == 'create-bucket': create_bucket(args.bucket_name) elif args.command == 'enable-default-kms-key': @@ -430,7 +456,8 @@ def main(): formatter_class=argparse.RawDescriptionHelpFormatter) subparsers = parser.add_subparsers(dest='command') - list_buckets_parser = subparsers.add_parser( + + subparsers.add_parser( 'list-buckets', help=list_buckets.__doc__) create_bucket_parser = subparsers.add_parser( @@ -463,6 +490,11 @@ def main(): list_blobs_parser.add_argument( 'bucket_name', help='Your cloud storage bucket.') + bucket_metadata_parser = subparsers.add_parser( + 'bucket-metadata', help=bucket_metadata.__doc__) + bucket_metadata_parser.add_argument( + 'bucket_name', help='Your cloud storage bucket.') + list_with_prefix_parser = subparsers.add_parser( 'list-with-prefix', help=list_blobs_with_prefix.__doc__) list_with_prefix_parser.add_argument( diff --git a/storage/cloud-client/snippets_test.py b/storage/cloud-client/snippets_test.py index 117bbd5bb06..b0c01e4deac 100644 --- a/storage/cloud-client/snippets_test.py +++ b/storage/cloud-client/snippets_test.py @@ -75,6 +75,10 @@ def test_list_blobs(test_blob, capsys): out, _ = capsys.readouterr() assert test_blob.name in out +def test_bucket_metadata(capsys): + snippets.bucket_metadata(BUCKET) + out, _ = capsys.readouterr() + assert BUCKET in out def test_list_blobs_with_prefix(test_blob, capsys): snippets.list_blobs_with_prefix( From 99005a62781396e7d5063a02816d4ab354b7f094 Mon Sep 17 00:00:00 2001 From: Jesse Lovelace Date: Thu, 12 Sep 2019 16:32:14 -0700 Subject: [PATCH 3/3] Bucket metadata sample --- storage/cloud-client/snippets.py | 36 ++++++++++++++++++++++++++- storage/cloud-client/snippets_test.py | 4 +++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/storage/cloud-client/snippets.py b/storage/cloud-client/snippets.py index 8efc95ca95d..f50cead8c1f 100644 --- a/storage/cloud-client/snippets.py +++ b/storage/cloud-client/snippets.py @@ -247,6 +247,32 @@ def blob_metadata(bucket_name, blob_name): print("retentionExpirationTime: {}" .format(blob.retention_expiration_time)) +def bucket_metadata(bucket_name): + """Prints out a bucket's metadata.""" + # [START storage_get_bucket_metadata] + storage_client = storage.Client(); + bucket = storage_client.get_bucket(bucket_name); + + print('ID: {}'.format(bucket.id)) + print('Name: {}'.format(bucket.name)) + print('Storage Class: {}'.format(bucket.storage_class)) + print('Location: {}'.format(bucket.location)) + print('Location Type: {}'.format(bucket.location_type)) + print('Cors: {}'.format(bucket.cors)) + print('Default Event Based Hold: {}'.format(bucket.default_event_based_hold)) + print('Default KMS Key Name: {}'.format(bucket.default_kms_key_name)) + print('Metageneration: {}'.format(bucket.metageneration)) + print('Retention Effective Time: {}'.format(bucket.retention_policy_effective_time)) + print('Retention Period: {}'.format(bucket.retention_period)) + print('Retention Policy Locked: {}'.format(bucket.retention_policy_locked)) + print('Requester Pays: {}'.format(bucket.requester_pays)) + print('Self Link: {}'.format(bucket.self_link)) + print('Time Created: {}'.format(bucket.time_created)) + print('Versioning Enabled: {}'.format(bucket.versioning_enabled)) + print('Labels:') + pprint.pprint(bucket.labels) + # [END storage_get_bucket_metadata] + def make_blob_public(bucket_name, blob_name): """Makes a blob publicly accessible.""" @@ -367,6 +393,8 @@ def copy_blob(bucket_name, blob_name, new_bucket_name, new_blob_name): def bucket_commands(args): if args.command == 'list-buckets': list_buckets() + elif args.command == 'bucket-metadata': + bucket_metadata(args.bucket_name) elif args.command == 'create-bucket': create_bucket(args.bucket_name) elif args.command == 'enable-default-kms-key': @@ -430,7 +458,8 @@ def main(): formatter_class=argparse.RawDescriptionHelpFormatter) subparsers = parser.add_subparsers(dest='command') - list_buckets_parser = subparsers.add_parser( + + subparsers.add_parser( 'list-buckets', help=list_buckets.__doc__) create_bucket_parser = subparsers.add_parser( @@ -463,6 +492,11 @@ def main(): list_blobs_parser.add_argument( 'bucket_name', help='Your cloud storage bucket.') + bucket_metadata_parser = subparsers.add_parser( + 'bucket-metadata', help=bucket_metadata.__doc__) + bucket_metadata_parser.add_argument( + 'bucket_name', help='Your cloud storage bucket.') + list_with_prefix_parser = subparsers.add_parser( 'list-with-prefix', help=list_blobs_with_prefix.__doc__) list_with_prefix_parser.add_argument( diff --git a/storage/cloud-client/snippets_test.py b/storage/cloud-client/snippets_test.py index 117bbd5bb06..b0c01e4deac 100644 --- a/storage/cloud-client/snippets_test.py +++ b/storage/cloud-client/snippets_test.py @@ -75,6 +75,10 @@ def test_list_blobs(test_blob, capsys): out, _ = capsys.readouterr() assert test_blob.name in out +def test_bucket_metadata(capsys): + snippets.bucket_metadata(BUCKET) + out, _ = capsys.readouterr() + assert BUCKET in out def test_list_blobs_with_prefix(test_blob, capsys): snippets.list_blobs_with_prefix(