Content-Length: 1550856 | pFad | https://github.com/googleapis/python-compute/commit/767d7c803453bc329499a12f92c20693134e4d91

A8 docs(samples): Migrate samples to use new type of operations (#264) · googleapis/python-compute@767d7c8 · GitHub
Skip to content
This repository was archived by the owner on Dec 31, 2023. It is now read-only.

Commit 767d7c8

Browse files
docs(samples): Migrate samples to use new type of operations (#264)
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
1 parent 005f9eb commit 767d7c8

File tree

114 files changed

+2402
-652
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+2402
-652
lines changed

samples/ingredients/disks/autodelete_change.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,8 @@ def set_disk_autodelete(project_id: str, zone: str, instance_name: str, disk_nam
4646

4747
disk.auto_delete = autodelete
4848

49-
operation = instance_client.update_unary(project=project_id, zone=zone, instance=instance_name, instance_resource=instance)
50-
operation_client = compute_v1.ZoneOperationsClient()
51-
operation = operation_client.wait(project=project_id, zone=zone, operation=operation.name)
52-
53-
if operation.error:
54-
print("Error during instance update:", operation.error, file=sys.stderr)
55-
raise RuntimeError(operation.error)
56-
if operation.warnings:
57-
print("Warnings during instance update:\n", file=sys.stderr)
58-
for warning in operation.warnings:
59-
print(f" - {warning.code}: {warning.message}", file=sys.stderr)
49+
operation = instance_client.update(project=project_id, zone=zone, instance=instance_name, instance_resource=instance)
50+
51+
wait_for_extended_operation(operation, "disk update")
6052
return
6153
# </INGREDIENT>

samples/ingredients/disks/create_empty_disk.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,9 @@ def create_empty_disk(
4747
disk.type_ = disk_type
4848

4949
disk_client = compute_v1.DisksClient()
50-
operation = disk_client.insert_unary(project=project_id, zone=zone, disk_resource=disk)
51-
operation_client = compute_v1.ZoneOperationsClient()
52-
operation = operation_client.wait(project=project_id, zone=zone, operation=operation.name)
53-
54-
if operation.error:
55-
print("Error during disk creation:", operation.error, file=sys.stderr)
56-
raise RuntimeError(operation.error)
57-
if operation.warnings:
58-
print("Warnings during disk creation:\n", file=sys.stderr)
59-
for warning in operation.warnings:
60-
print(f" - {warning.code}: {warning.message}", file=sys.stderr)
50+
operation = disk_client.insert(project=project_id, zone=zone, disk_resource=disk)
51+
52+
wait_for_extended_operation(operation, "disk creation")
6153

6254
return disk_client.get(project=project_id, zone=zone, disk=disk.name)
6355
# </INGREDIENT>

samples/ingredients/disks/create_from_image.py

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,9 @@ def create_disk_from_image(
5151
disk.source_image = source_image
5252

5353
disk_client = compute_v1.DisksClient()
54-
operation = disk_client.insert_unary(project=project_id, zone=zone, disk_resource=disk)
55-
operation_client = compute_v1.ZoneOperationsClient()
56-
operation = operation_client.wait(project=project_id, zone=zone, operation=operation.name)
54+
operation = disk_client.insert(project=project_id, zone=zone, disk_resource=disk)
5755

58-
if operation.error:
59-
print("Error during disk creation:", operation.error, file=sys.stderr)
60-
raise RuntimeError(operation.error)
61-
if operation.warnings:
62-
print("Warnings during disk creation:\n", file=sys.stderr)
63-
for warning in operation.warnings:
64-
print(f" - {warning.code}: {warning.message}", file=sys.stderr)
56+
wait_for_extended_operation(operation, "disk creation")
6557

6658
return disk_client.get(project=project_id, zone=zone, disk=disk.name)
6759
# </INGREDIENT>

samples/ingredients/disks/create_from_snapshot.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,9 @@ def create_disk_from_snapshot(project_id: str, zone: str, disk_name: str, disk_t
4848
disk.source_snapshot = snapshot_link
4949
disk.type_ = disk_type
5050
disk.name = disk_name
51-
operation = disk_client.insert_unary(project=project_id, zone=zone, disk_resource=disk)
52-
operation_client = compute_v1.ZoneOperationsClient()
53-
operation = operation_client.wait(project=project_id, zone=zone, operation=operation.name)
51+
operation = disk_client.insert(project=project_id, zone=zone, disk_resource=disk)
5452

55-
if operation.error:
56-
print("Error during disk creation:", operation.error, file=sys.stderr)
57-
raise RuntimeError(operation.error)
58-
59-
if operation.warnings:
60-
print("Warnings during disk creation:\n", file=sys.stderr)
61-
for warning in operation.warnings:
62-
print(f" - {warning.code}: {warning.message}", file=sys.stderr)
53+
wait_for_extended_operation(operation, "disk creation")
6354

6455
return disk_client.get(project=project_id, zone=zone, disk=disk_name)
6556
# </INGREDIENT>

samples/ingredients/disks/delete.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,7 @@ def delete_disk(project_id: str, zone: str, disk_name: str) -> NoReturn:
3333
disk_name: name of the disk you want to delete.
3434
"""
3535
disk_client = compute_v1.DisksClient()
36-
operation = disk_client.delete_unary(project=project_id, zone=zone, disk=disk_name)
37-
operation_client = compute_v1.ZoneOperationsClient()
38-
operation = operation_client.wait(project=project_id, zone=zone, operation=operation.name)
39-
40-
if operation.error:
41-
print("Error during disk delete operation:", operation.error, file=sys.stderr)
42-
raise RuntimeError(operation.error)
43-
if operation.warnings:
44-
print("Warnings during disk delete operation:\n", file=sys.stderr)
45-
for warning in operation.warnings:
46-
print(f" - {warning.code}: {warning.message}", file=sys.stderr)
36+
operation = disk_client.delete(project=project_id, zone=zone, disk=disk_name)
37+
wait_for_extended_operation(operation, "disk deletion")
4738
return
4839
# </INGREDIENT>

samples/ingredients/firewall/create.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# folder for complete code samples that are ready to be used.
1717
# Disabling flake8 for the ingredients file, as it would fail F821 - undefined name check.
1818
# flake8: noqa
19+
1920
from google.cloud import compute_v1
2021

2122

@@ -61,12 +62,11 @@ def create_firewall_rule(
6162
# firewall_rule.priority = 0
6263

6364
firewall_client = compute_v1.FirewallsClient()
64-
op = firewall_client.insert_unary(
65+
operation = firewall_client.insert(
6566
project=project_id, firewall_resource=firewall_rule
6667
)
6768

68-
op_client = compute_v1.GlobalOperationsClient()
69-
op_client.wait(project=project_id, operation=op.name)
69+
wait_for_extended_operation(operation, "firewall rule creation")
7070

7171
return firewall_client.get(project=project_id, firewall=firewall_rule_name)
7272
# </INGREDIENT>

samples/ingredients/firewall/delete.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# folder for complete code samples that are ready to be used.
1717
# Disabling flake8 for the ingredients file, as it would fail F821 - undefined name check.
1818
# flake8: noqa
19+
1920
from google.cloud import compute_v1
2021

2122

@@ -29,11 +30,10 @@ def delete_firewall_rule(project_id: str, firewall_rule_name: str) -> None:
2930
firewall_rule_name: name of the firewall rule you want to delete.
3031
"""
3132
firewall_client = compute_v1.FirewallsClient()
32-
operation = firewall_client.delete_unary(
33+
operation = firewall_client.delete(
3334
project=project_id, firewall=firewall_rule_name
3435
)
3536

36-
operation_client = compute_v1.GlobalOperationsClient()
37-
operation_client.wait(project=project_id, operation=operation.name)
37+
wait_for_extended_operation(operation, "firewall rule deletion")
3838
return
3939
# </INGREDIENT>

samples/ingredients/firewall/patch.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# folder for complete code samples that are ready to be used.
1717
# Disabling flake8 for the ingredients file, as it would fail F821 - undefined name check.
1818
# flake8: noqa
19+
1920
from google.cloud import compute_v1
2021

2122

@@ -35,12 +36,11 @@ def patch_firewall_priority(project_id: str, firewall_rule_name: str, priority:
3536
# The patch operation doesn't require the full definition of a Firewall object. It will only update
3637
# the values that were set in it, in this case it will only change the priority.
3738
firewall_client = compute_v1.FirewallsClient()
38-
operation = firewall_client.patch_unary(
39+
operation = firewall_client.patch(
3940
project=project_id, firewall=firewall_rule_name, firewall_resource=firewall_rule
4041
)
4142

42-
operation_client = compute_v1.GlobalOperationsClient()
43-
operation_client.wait(project=project_id, operation=operation.name)
43+
wait_for_extended_operation(operation, "firewall rule patching")
4444
return
4545
# </INGREDIENT>
4646

samples/ingredients/instance-templates/create.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# folder for complete code samples that are ready to be used.
1717
# Disabling flake8 for the ingredients file, as it would fail F821 - undefined name check.
1818
# flake8: noqa
19+
import sys
1920

2021
from google.cloud import compute_v1
2122

@@ -64,11 +65,11 @@ def create_template(project_id: str, template_name: str) -> compute_v1.InstanceT
6465
template.properties.network_interfaces = [network_interface]
6566

6667
template_client = compute_v1.InstanceTemplatesClient()
67-
operation_client = compute_v1.GlobalOperationsClient()
68-
op = template_client.insert_unary(
68+
operation = template_client.insert(
6969
project=project_id, instance_template_resource=template
7070
)
71-
operation_client.wait(project=project_id, operation=op.name)
71+
72+
wait_for_extended_operation(operation, "instance template creation")
7273

7374
return template_client.get(project=project_id, instance_template=template_name)
7475
# </INGREDIENT>

samples/ingredients/instance-templates/create_from_instance.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ def create_template_from_instance(
5454
template.source_instance_params.disk_configs = [disk]
5555

5656
template_client = compute_v1.InstanceTemplatesClient()
57-
operation_client = compute_v1.GlobalOperationsClient()
58-
op = template_client.insert_unary(
57+
operation = template_client.insert(
5958
project=project_id, instance_template_resource=template
6059
)
61-
operation_client.wait(project=project_id, operation=op.name)
60+
61+
wait_for_extended_operation(operation, "instance template creation")
6262

6363
return template_client.get(project=project_id, instance_template=template_name)
6464
# </INGREDIENT>

samples/ingredients/instance-templates/create_with_subnet.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,10 @@ def create_template_with_subnet(
6363
template.properties.network_interfaces = [network_interface]
6464

6565
template_client = compute_v1.InstanceTemplatesClient()
66-
operation_client = compute_v1.GlobalOperationsClient()
67-
op = template_client.insert_unary(
66+
operation = template_client.insert(
6867
project=project_id, instance_template_resource=template
6968
)
70-
operation_client.wait(project=project_id, operation=op.name)
69+
wait_for_extended_operation(operation, "instance template creation")
7170

7271
return template_client.get(project=project_id, instance_template=template_name)
7372
# </INGREDIENT>

samples/ingredients/instance-templates/delete.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,9 @@ def delete_instance_template(project_id: str, template_name: str):
3030
template_name: name of the template to delete.
3131
"""
3232
template_client = compute_v1.InstanceTemplatesClient()
33-
operation_client = compute_v1.GlobalOperationsClient()
34-
op = template_client.delete_unary(
33+
operation = template_client.delete(
3534
project=project_id, instance_template=template_name
3635
)
37-
operation_client.wait(project=project_id, operation=op.name)
36+
wait_for_extended_operation(operation, "instance template deletion")
3837
return
3938
# </INGREDIENT>

samples/ingredients/instances/create_instance.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818
# flake8: noqa
1919

2020
import re
21-
import sys
22-
from google.cloud import compute_v1
23-
import time
2421
from typing import List
2522

23+
from google.cloud import compute_v1
24+
2625

2726
# <INGREDIENT create_instance>
2827
def create_instance(
@@ -79,7 +78,6 @@ def create_instance(
7978
Instance object.
8079
"""
8180
instance_client = compute_v1.InstancesClient()
82-
operation_client = compute_v1.ZoneOperationsClient()
8381

8482
# Use the network interface provided in the network_link argument.
8583
network_interface = compute_v1.NetworkInterface()
@@ -135,19 +133,10 @@ def create_instance(
135133
# Wait for the create operation to complete.
136134
print(f"Creating the {instance_name} instance in {zone}...")
137135

138-
operation = instance_client.insert_unary(request=request)
139-
start = time.time()
140-
while operation.status != compute_v1.Operation.Status.DONE:
141-
operation = operation_client.wait(
142-
operation=operation.name, zone=zone, project=project_id
143-
)
144-
if time.time() - start >= 300: # 5 minutes
145-
raise TimeoutError()
146-
if operation.error:
147-
print("Error during creation:", operation.error, file=sys.stderr)
148-
raise RuntimeError(operation.error)
149-
if operation.warnings:
150-
print("Warning during creation:", operation.warnings, file=sys.stderr)
136+
operation = instance_client.insert(request=request)
137+
138+
wait_for_extended_operation(operation, "instance creation")
139+
151140
print(f"Instance {instance_name} created.")
152141
return instance_client.get(project=project_id, zone=zone, instance=instance_name)
153142
# </INGREDIENT>

samples/ingredients/instances/create_instance_from_template.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ def create_instance_from_template(
4141
Returns:
4242
Instance object.
4343
"""
44-
operation_client = compute_v1.ZoneOperationsClient()
4544
instance_client = compute_v1.InstancesClient()
4645

4746
instance_insert_request = compute_v1.InsertInstanceRequest()
@@ -50,8 +49,8 @@ def create_instance_from_template(
5049
instance_insert_request.source_instance_template = instance_template_url
5150
instance_insert_request.instance_resource.name = instance_name
5251

53-
op = instance_client.insert_unary(instance_insert_request)
54-
operation_client.wait(project=project_id, zone=zone, operation=op.name)
52+
operation = instance_client.insert(instance_insert_request)
53+
wait_for_extended_operation(operation, "instance creation")
5554

5655
return instance_client.get(project=project_id, zone=zone, instance=instance_name)
5756
# </INGREDIENT>

samples/ingredients/instances/create_instance_from_template_with_overrides.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ def create_instance_from_template_with_overrides(
5353
Returns:
5454
Instance object.
5555
"""
56-
operation_client = compute_v1.ZoneOperationsClient()
5756
instance_client = compute_v1.InstancesClient()
5857
instance_template_client = compute_v1.InstanceTemplatesClient()
5958

@@ -90,8 +89,8 @@ def create_instance_from_template_with_overrides(
9089
instance_insert_request.instance_resource = instance
9190
instance_insert_request.source_instance_template = instance_template.self_link
9291

93-
op = instance_client.insert_unary(instance_insert_request)
94-
operation_client.wait(project=project_id, zone=zone, operation=op.name)
92+
operation = instance_client.insert(instance_insert_request)
93+
wait_for_extended_operation(operation, "instance creation")
9594

9695
return instance_client.get(project=project_id, zone=zone, instance=instance_name)
9796
# </INGREDIENT>

samples/ingredients/instances/custom_machine_types/update_memory.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ def add_extended_memory_to_instance(
3838
Instance object.
3939
"""
4040
instance_client = compute_v1.InstancesClient()
41-
operation_client = compute_v1.ZoneOperationsClient()
4241
instance = instance_client.get(
4342
project=project_id, zone=zone, instance=instance_name
4443
)
@@ -51,10 +50,10 @@ def add_extended_memory_to_instance(
5150
instance.Status.TERMINATED.name,
5251
instance.Status.STOPPED.name,
5352
):
54-
op = instance_client.stop_unary(
53+
operation = instance_client.stop(
5554
project=project_id, zone=zone, instance=instance_name
5655
)
57-
operation_client.wait(project=project_id, zone=zone, operation=op.name)
56+
wait_for_extended_operation(operation, "instance stopping")
5857
start = time.time()
5958
while instance.status not in (
6059
instance.Status.TERMINATED.name,
@@ -77,13 +76,13 @@ def add_extended_memory_to_instance(
7776
# cmt.memory_mb = new_memory
7877
# cmt.extra_memory_used = True
7978
# instance.machine_type = str(cmt)
80-
op = instance_client.update_unary(
79+
operation = instance_client.update(
8180
project=project_id,
8281
zone=zone,
8382
instance=instance_name,
8483
instance_resource=instance,
8584
)
86-
operation_client.wait(project=project_id, zone=zone, operation=op.name)
85+
wait_for_extended_operation(operation, "instance update")
8786

8887
return instance_client.get(project=project_id, zone=zone, instance=instance_name)
8988
# </INGREDIENT>

samples/ingredients/instances/delete.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,24 +33,12 @@ def delete_instance(project_id: str, zone: str, machine_name: str) -> None:
3333
machine_name: name of the machine you want to delete.
3434
"""
3535
instance_client = compute_v1.InstancesClient()
36-
operation_client = compute_v1.ZoneOperationsClient()
3736

3837
print(f"Deleting {machine_name} from {zone}...")
39-
operation = instance_client.delete_unary(
38+
operation = instance_client.delete(
4039
project=project_id, zone=zone, instance=machine_name
4140
)
42-
start = time.time()
43-
while operation.status != compute_v1.Operation.Status.DONE:
44-
operation = operation_client.wait(
45-
operation=operation.name, zone=zone, project=project_id
46-
)
47-
if time.time() - start >= 300: # 5 minutes
48-
raise TimeoutError()
49-
if operation.error:
50-
print("Error during deletion:", operation.error, file=sys.stderr)
51-
return
52-
if operation.warnings:
53-
print("Warning during deletion:", operation.warnings, file=sys.stderr)
41+
wait_for_extended_operation(operation, "instance deletion")
5442
print(f"Instance {machine_name} deleted.")
5543
return
5644
# </INGREDIENT>

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/googleapis/python-compute/commit/767d7c803453bc329499a12f92c20693134e4d91

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy