From 38902c482c0a1d50c87f45cba01d89649885c27b Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Tue, 13 Jul 2021 15:57:01 -0400 Subject: [PATCH] test(samples): add backoff to cluster creation sample (#362) Closes #353. --- samples/instanceadmin/requirements.txt | 1 + samples/instanceadmin/test_instanceadmin.py | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/samples/instanceadmin/requirements.txt b/samples/instanceadmin/requirements.txt index 81a589a74..b5ec99177 100755 --- a/samples/instanceadmin/requirements.txt +++ b/samples/instanceadmin/requirements.txt @@ -1 +1,2 @@ google-cloud-bigtable==2.0.0 +backoff==1.11.0 diff --git a/samples/instanceadmin/test_instanceadmin.py b/samples/instanceadmin/test_instanceadmin.py index c63222953..929da10e4 100644 --- a/samples/instanceadmin/test_instanceadmin.py +++ b/samples/instanceadmin/test_instanceadmin.py @@ -17,8 +17,9 @@ import time import warnings +import backoff +from google.api_core import exceptions from google.cloud import bigtable - import pytest import instanceadmin @@ -128,7 +129,10 @@ def test_add_and_delete_cluster(capsys, dispose_of): capsys.readouterr() # throw away output # Add a cluster to that instance - instanceadmin.add_cluster(PROJECT, INSTANCE, CLUSTER2) + # Avoid failing for "instance is currently being changed" by + # applying an exponential backoff + w_backoff = backoff.on_exception(backoff.expo, exceptions.ServiceUnavailable) + w_backoff(instanceadmin.add_cluster)(PROJECT, INSTANCE, CLUSTER2) out = capsys.readouterr().out assert f"Adding cluster to instance {INSTANCE}" in out assert "Listing clusters..." in out