Skip to content

Commit 6e6efc0

Browse files
feat(cloud): add create_and_poll() and delete_and_poll() to reserved fixed ips
1 parent 4a00499 commit 6e6efc0

3 files changed

Lines changed: 612 additions & 14 deletions

File tree

examples/cloud/reserved_fixed_ips.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,11 @@ def main() -> None:
3434

3535
def create_reserved_fixed_ip(*, client: Gcore) -> ReservedFixedIP:
3636
print("\n=== CREATE RESERVED FIXED IP ===")
37-
task_list = client.cloud.reserved_fixed_ips.create(
37+
port = client.cloud.reserved_fixed_ips.create_and_poll(
3838
type="external",
3939
ip_family="ipv4",
4040
is_vip=False,
4141
)
42-
task = client.cloud.tasks.poll(task_list.tasks[0])
43-
if not task.created_resources or not task.created_resources.ports or len(task.created_resources.ports) != 1:
44-
raise RuntimeError("Expected exactly one port created in the task result")
45-
port = client.cloud.reserved_fixed_ips.get(task.created_resources.ports[0])
4642
print(f"Created reserved fixed IP: ID={port.port_id}, name={port.name}, IP={port.fixed_ip_address}")
4743
print("========================")
4844
return port
@@ -93,8 +89,7 @@ def list_connected_ports(*, client: Gcore, port_id: str) -> None:
9389

9490
def delete_reserved_fixed_ip(*, client: Gcore, port_id: str) -> None:
9591
print("\n=== DELETE RESERVED FIXED IP ===")
96-
task_list = client.cloud.reserved_fixed_ips.delete(port_id)
97-
client.cloud.tasks.poll(task_list.tasks[0])
92+
client.cloud.reserved_fixed_ips.delete_and_poll(port_id)
9893
print(f"Deleted reserved fixed IP: ID={port_id}")
9994
print("========================")
10095

examples/cloud/reserved_fixed_ips_async.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,11 @@ async def main() -> None:
3636

3737
async def create_reserved_fixed_ip(*, client: AsyncGcore) -> ReservedFixedIP:
3838
print("\n=== CREATE RESERVED FIXED IP ===")
39-
task_list = await client.cloud.reserved_fixed_ips.create(
39+
port = await client.cloud.reserved_fixed_ips.create_and_poll(
4040
type="external",
4141
ip_family="ipv4",
4242
is_vip=False,
4343
)
44-
task = await client.cloud.tasks.poll(task_list.tasks[0])
45-
if not task.created_resources or not task.created_resources.ports or len(task.created_resources.ports) != 1:
46-
raise RuntimeError("Expected exactly one port created in the task result")
47-
port = await client.cloud.reserved_fixed_ips.get(task.created_resources.ports[0])
4844
print(f"Created reserved fixed IP: ID={port.port_id}, name={port.name}, IP={port.fixed_ip_address}")
4945
print("========================")
5046
return port
@@ -97,8 +93,7 @@ async def list_connected_ports(*, client: AsyncGcore, port_id: str) -> None:
9793

9894
async def delete_reserved_fixed_ip(*, client: AsyncGcore, port_id: str) -> None:
9995
print("\n=== DELETE RESERVED FIXED IP ===")
100-
task_list = await client.cloud.reserved_fixed_ips.delete(port_id)
101-
await client.cloud.tasks.poll(task_list.tasks[0])
96+
await client.cloud.reserved_fixed_ips.delete_and_poll(port_id)
10297
print(f"Deleted reserved fixed IP: ID={port_id}")
10398
print("========================")
10499

0 commit comments

Comments
 (0)