Skip to content
This repository was archived by the owner on Oct 29, 2023. It is now read-only.
57 changes: 19 additions & 38 deletions samples/api-client/accesstoken_example/accesstoken.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
import os
import time

from google.cloud import pubsub
from google.cloud import storage
import jwt
import requests as req

Expand Down Expand Up @@ -127,18 +129,16 @@ def publish_pubsub_message(
rsa_private_key_path,
)

# Create Pub/Sub topic
request_path = "https://pubsub.googleapis.com/v1/projects/{}/topics/{}".format(
project_id, topic_id
)
pubsub_client = pubsub.PublisherClient()
topic_path = pubsub_client.topic_path(project_id, topic_id)
pubsub_client.create_topic(request={"name": topic_path})
print("Successfully created Pub/Sub topic: {}.".format(topic_id))

headers = {
"Authorization": "Bearer {}".format(access_token),
"content-type": "application/json",
"cache-control": "no-cache",
}
resp = req.put(url=request_path, data={}, headers=headers)
assert resp.ok, resp.raise_for_status()
print("Successfully created Pub/Sub topic: {}.".format(topic_id))

# Publish message to Pub/Sub topic
publish_payload = {
Expand All @@ -160,11 +160,7 @@ def publish_pubsub_message(
)

# Delete Pub/Sub topic
pubsub_delete_request_path = "https://pubsub.googleapis.com/v1/projects/{}/topics/{}".format(
project_id, topic_id
)
delete_resp = req.delete(url=pubsub_delete_request_path, headers=headers)
assert delete_resp.ok, delete_resp.raise_for_status()
pubsub_client.delete_topic(request={"topic": topic_path})
print("Successfully deleted Pub/Sub topic: {}".format(topic_id))
# [END iot_access_token_pubsub]

Expand Down Expand Up @@ -202,27 +198,18 @@ def download_cloud_storage_file(
rsa_private_key_path,
)

# Create GCS bucket
create_payload = {
"name": bucket_name,
"location": cloud_region,
"storageClass": "STANDARD",
"iamConfiguration": {"uniformBucketLevelAccess": {"enabled": True}},
}
create_request_path = "https://storage.googleapis.com/storage/v1/b?project={}".format(
project_id
)
headers = {
"authorization": "Bearer {}".format(access_token),
"content-type": "application/json",
"cache-control": "no-cache",
}
create_resp = req.post(
url=create_request_path,
data=bytes(json.dumps(create_payload), "utf-8"),
headers=headers,
)
assert create_resp.ok, create_resp.raise_for_status()

# Create GCS bucket
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
bucket.storage_class = "COLDLINE"
bucket.iam_configuration.uniform_bucket_level_access_enabled = True
storage_client.create_bucket(bucket, location=cloud_region)
print("Successfully created Storage bucket: {}".format(bucket_name))

# Upload data to GCS bucket.
Expand All @@ -232,6 +219,7 @@ def download_cloud_storage_file(
bucket_name, data_name
)
upload_resp = req.post(url=upload_request_path, data=binary_data, headers=headers)
print("Upload response: ", upload_resp.json())
assert upload_resp.ok, upload_resp.raise_for_status()
print(
"Successfully uploaded {} as {} to bucket {}.".format(
Expand All @@ -248,19 +236,12 @@ def download_cloud_storage_file(
print("Successfully downloaded {} from bucket {}.".format(data_name, bucket_name))

# Delete data from GCS bucket.
delete_request_path = "https://storage.googleapis.com/storage/v1/b/{}/o/{}".format(
bucket_name, data_name
)
delete_data_resp = req.delete(url=delete_request_path, headers=headers)
assert delete_data_resp.ok, delete_data_resp.raise_for_status()
blob = bucket.blob(data_name)
blob.delete()
print("Successfully deleted {} from bucket {}.".format(data_name, bucket_name))

# Delete GCS Bucket
gcs_delete_request_path = "https://storage.googleapis.com/storage/v1/b/{}".format(
bucket_name
)
delete_resp = req.delete(url=gcs_delete_request_path, headers=headers)
assert delete_resp.ok, delete_resp.raise_for_status()
bucket.delete()
print("Successfully deleted bucket: {}".format(bucket_name))
# [END iot_access_token_gcs]

Expand Down