Skip to content

Commit 55f83dc

Browse files
feat(spanner): add samples for instance partitions (googleapis#1168)
* feat(spanner): add samples for instance partitions * PR feedback --------- Co-authored-by: Sri Harsha CH <[email protected]>
1 parent 1a77146 commit 55f83dc

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

samples/samples/snippets.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,36 @@ def list_instance_config():
158158
# [END spanner_list_instance_configs]
159159

160160

161+
# [START spanner_create_instance_partition]
162+
def create_instance_partition(instance_id, instance_partition_id):
163+
"""Creates an instance partition."""
164+
from google.cloud.spanner_admin_instance_v1.types import \
165+
spanner_instance_admin
166+
167+
spanner_client = spanner.Client()
168+
instance_admin_api = spanner_client.instance_admin_api
169+
170+
config_name = "{}/instanceConfigs/nam3".format(spanner_client.project_name)
171+
172+
operation = spanner_client.instance_admin_api.create_instance_partition(
173+
parent=instance_admin_api.instance_path(spanner_client.project, instance_id),
174+
instance_partition_id=instance_partition_id,
175+
instance_partition=spanner_instance_admin.InstancePartition(
176+
config=config_name,
177+
display_name="Test instance partition",
178+
node_count=1,
179+
),
180+
)
181+
182+
print("Waiting for operation to complete...")
183+
operation.result(OPERATION_TIMEOUT_SECONDS)
184+
185+
print("Created instance partition {}".format(instance_partition_id))
186+
187+
188+
# [END spanner_create_instance_partition]
189+
190+
161191
# [START spanner_list_databases]
162192
def list_databases(instance_id):
163193
"""Lists databases and their leader options."""

samples/samples/snippets_test.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ def lci_instance_id():
8282
return f"lci-instance-{uuid.uuid4().hex[:10]}"
8383

8484

85+
@pytest.fixture(scope="module")
86+
def instance_partition_instance_id():
87+
"""Id for the instance that tests instance partitions."""
88+
return f"instance-partition-test-{uuid.uuid4().hex[:10]}"
89+
90+
8591
@pytest.fixture(scope="module")
8692
def database_id():
8793
return f"test-db-{uuid.uuid4().hex[:10]}"
@@ -188,6 +194,18 @@ def test_create_instance_with_autoscaling_config(capsys, lci_instance_id):
188194
retry_429(instance.delete)()
189195

190196

197+
def test_create_instance_partition(capsys, instance_partition_instance_id):
198+
snippets.create_instance(instance_partition_instance_id)
199+
retry_429(snippets.create_instance_partition)(
200+
instance_partition_instance_id, "my-instance-partition"
201+
)
202+
out, _ = capsys.readouterr()
203+
assert "Created instance partition my-instance-partition" in out
204+
spanner_client = spanner.Client()
205+
instance = spanner_client.instance(instance_partition_instance_id)
206+
retry_429(instance.delete)()
207+
208+
191209
def test_update_database(capsys, instance_id, sample_database):
192210
snippets.update_database(instance_id, sample_database.database_id)
193211
out, _ = capsys.readouterr()

0 commit comments

Comments
 (0)