From 4d6be5c352ef9f6095122475c3e9dc9f19abc43a Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Fri, 9 Jul 2021 11:26:02 -0400 Subject: [PATCH 1/3] doc(samples): use operation to ensure creation completed In addition to showing the better practice (using the operation returned from 'Instance.create' / 'Cluster.create'), this change also hardens the sample against eventual-consistency issues. The timeouts used match those used in the system tests. Closes #353. --- samples/instanceadmin/instanceadmin.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/samples/instanceadmin/instanceadmin.py b/samples/instanceadmin/instanceadmin.py index 13e992eec..e87b917e1 100644 --- a/samples/instanceadmin/instanceadmin.py +++ b/samples/instanceadmin/instanceadmin.py @@ -72,7 +72,9 @@ def run_instance_operations(project_id, instance_id, cluster_id): if not instance.exists(): print("\nCreating an instance") # Create instance with given options - instance.create(clusters=[cluster]) + operation = instance.create(clusters=[cluster]) + # Enssure the operation completes. + operation.result(timeout=10) print("\nCreated instance: {}".format(instance_id)) # [END bigtable_create_prod_instance] @@ -155,7 +157,9 @@ def add_cluster(project_id, instance_id, cluster_id): if cluster.exists(): print("\nCluster not created, as {} already exists.".format(cluster_id)) else: - cluster.create() + operation = cluster.create() + # Enssure the operation completes. + operation.result(timeout=30) print("\nCluster created: {}".format(cluster_id)) # [END bigtable_create_cluster] From 3031563c12658c002f758986ec467b7088f17a5b Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Fri, 9 Jul 2021 13:47:15 -0400 Subject: [PATCH 2/3] fix: typo --- samples/instanceadmin/instanceadmin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/instanceadmin/instanceadmin.py b/samples/instanceadmin/instanceadmin.py index e87b917e1..433e4ce92 100644 --- a/samples/instanceadmin/instanceadmin.py +++ b/samples/instanceadmin/instanceadmin.py @@ -73,7 +73,7 @@ def run_instance_operations(project_id, instance_id, cluster_id): print("\nCreating an instance") # Create instance with given options operation = instance.create(clusters=[cluster]) - # Enssure the operation completes. + # Ensure the operation completes. operation.result(timeout=10) print("\nCreated instance: {}".format(instance_id)) # [END bigtable_create_prod_instance] @@ -158,7 +158,7 @@ def add_cluster(project_id, instance_id, cluster_id): print("\nCluster not created, as {} already exists.".format(cluster_id)) else: operation = cluster.create() - # Enssure the operation completes. + # Ensure the operation completes. operation.result(timeout=30) print("\nCluster created: {}".format(cluster_id)) # [END bigtable_create_cluster] From a89bc7bc1d96707e8bf7cfe119d0ede5bcb85816 Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Fri, 9 Jul 2021 14:25:04 -0400 Subject: [PATCH 3/3] testing: bump timeout for instance creation --- samples/instanceadmin/instanceadmin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/instanceadmin/instanceadmin.py b/samples/instanceadmin/instanceadmin.py index 433e4ce92..a900740ed 100644 --- a/samples/instanceadmin/instanceadmin.py +++ b/samples/instanceadmin/instanceadmin.py @@ -74,7 +74,7 @@ def run_instance_operations(project_id, instance_id, cluster_id): # Create instance with given options operation = instance.create(clusters=[cluster]) # Ensure the operation completes. - operation.result(timeout=10) + operation.result(timeout=30) print("\nCreated instance: {}".format(instance_id)) # [END bigtable_create_prod_instance]