Skip to content

Commit 3d5b4c2

Browse files
frankynandrewsg
authored andcommitted
[Storage] Update kms samples (GoogleCloudPlatform#1517)
* Storage: add KMS samples * Add CLOUD_KMS_KEY environment variable * Add region tags around samples * Add more testing * Fix tests and lint
1 parent 364d3aa commit 3d5b4c2

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

storage/cloud-client/snippets.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def delete_bucket(bucket_name):
4444

4545

4646
def enable_default_kms_key(bucket_name, kms_key_name):
47+
# [START storage_set_bucket_default_kms_key]
4748
"""Sets a bucket's default KMS key."""
4849
storage_client = storage.Client()
4950
bucket = storage_client.get_bucket(bucket_name)
@@ -53,6 +54,7 @@ def enable_default_kms_key(bucket_name, kms_key_name):
5354
print('Set default KMS key for bucket {} to {}.'.format(
5455
bucket.name,
5556
bucket.default_kms_key_name))
57+
# [END storage_set_bucket_default_kms_key]
5658

5759

5860
def get_bucket_labels(bucket_name):
@@ -157,6 +159,7 @@ def upload_blob(bucket_name, source_file_name, destination_blob_name):
157159

158160
def upload_blob_with_kms(bucket_name, source_file_name, destination_blob_name,
159161
kms_key_name):
162+
# [START storage_upload_with_kms_key]
160163
"""Uploads a file to the bucket, encrypting it with the given KMS key."""
161164
storage_client = storage.Client()
162165
bucket = storage_client.get_bucket(bucket_name)
@@ -167,6 +170,7 @@ def upload_blob_with_kms(bucket_name, source_file_name, destination_blob_name,
167170
source_file_name,
168171
destination_blob_name,
169172
kms_key_name))
173+
# [END storage_upload_with_kms_key]
170174

171175

172176
def download_blob(bucket_name, source_blob_name, destination_file_name):

storage/cloud-client/snippets_test.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@
2626
KMS_KEY = os.environ['CLOUD_KMS_KEY']
2727

2828

29+
def test_enable_default_kms_key():
30+
snippets.enable_default_kms_key(
31+
bucket_name=BUCKET,
32+
kms_key_name=KMS_KEY)
33+
bucket = storage.Client().get_bucket(BUCKET)
34+
assert bucket.default_kms_key_name.startswith(KMS_KEY)
35+
bucket.default_kms_key_name = None
36+
bucket.patch()
37+
38+
2939
def test_get_bucket_labels():
3040
snippets.get_bucket_labels(BUCKET)
3141

@@ -83,12 +93,14 @@ def test_upload_blob():
8393
def test_upload_blob_with_kms():
8494
with tempfile.NamedTemporaryFile() as source_file:
8595
source_file.write(b'test')
86-
8796
snippets.upload_blob_with_kms(
8897
BUCKET,
8998
source_file.name,
9099
'test_upload_blob_encrypted',
91100
KMS_KEY)
101+
bucket = storage.Client().bucket(BUCKET)
102+
kms_blob = bucket.get_blob('test_upload_blob_encrypted')
103+
assert kms_blob.kms_key_name.startswith(KMS_KEY)
92104

93105

94106
def test_download_blob(test_blob):

0 commit comments

Comments
 (0)