Skip to content

Commit 9dbab80

Browse files
committed
python-sdk: Support regions/vpc-availability endpoints
1 parent bf632a6 commit 9dbab80

3 files changed

Lines changed: 1 addition & 117 deletions

File tree

linode_api4/groups/region.py

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -47,26 +47,6 @@ def availability(self, *filters):
4747
RegionAvailabilityEntry, *filters, endpoint="/regions/availability"
4848
)
4949

50-
def availability_get(self, region_id):
51-
"""
52-
Returns availability data for a specific region.
53-
54-
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-region-availability
55-
56-
:param region_id: The ID of the region to retrieve availability for.
57-
:type region_id: str
58-
59-
:returns: A list of availability entries for the specified region.
60-
:rtype: list of RegionAvailabilityEntry
61-
"""
62-
63-
result = self.client.get(f"/regions/{region_id}/availability")
64-
65-
if result is None:
66-
return []
67-
68-
return [RegionAvailabilityEntry.from_json(v) for v in result]
69-
7050
def vpc_availability(self, *filters):
7151
"""
7252
Returns VPC availability data for all regions.
@@ -97,25 +77,3 @@ def vpc_availability(self, *filters):
9777
*filters,
9878
endpoint="/regions/vpc-availability",
9979
)
100-
101-
def vpc_availability_get(self, region_id):
102-
"""
103-
Returns VPC availability data for a specific region.
104-
105-
NOTE: IPv6 VPCs may not currently be available to all users.
106-
107-
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-region-vpc-availability
108-
109-
:param region_id: The ID of the region to retrieve VPC availability for.
110-
:type region_id: str
111-
112-
:returns: VPC availability data for the specified region.
113-
:rtype: RegionVPCAvailability
114-
"""
115-
116-
result = self.client.get(f"/regions/{region_id}/vpc-availability")
117-
118-
if result is None:
119-
return None
120-
121-
return RegionVPCAvailability.from_json(result)

test/integration/models/region/test_region.py

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,6 @@ def test_list_regions_vpc_availability(test_linode_client):
2424
assert isinstance(entry.available_ipv6_prefix_lengths, list)
2525

2626

27-
@pytest.mark.smoke
28-
def test_get_region_vpc_availability_via_group(test_linode_client):
29-
"""
30-
Test getting VPC availability for a specific region via RegionGroup.
31-
"""
32-
client = test_linode_client
33-
34-
# Get the first available region
35-
regions = client.regions()
36-
assert len(regions) > 0
37-
test_region_id = regions[0].id
38-
39-
vpc_avail = client.regions.vpc_availability_get(test_region_id)
40-
41-
assert vpc_avail is not None
42-
assert vpc_avail.region == test_region_id
43-
assert vpc_avail.available is not None
44-
assert isinstance(vpc_avail.available, bool)
45-
assert vpc_avail.available_ipv6_prefix_lengths is not None
46-
assert isinstance(vpc_avail.available_ipv6_prefix_lengths, list)
47-
48-
4927
@pytest.mark.smoke
5028
def test_get_region_vpc_availability_via_object(test_linode_client):
5129
"""
@@ -69,30 +47,6 @@ def test_get_region_vpc_availability_via_object(test_linode_client):
6947
assert isinstance(vpc_avail.available_ipv6_prefix_lengths, list)
7048

7149

72-
@pytest.mark.smoke
73-
def test_get_region_availability_via_group(test_linode_client):
74-
"""
75-
Test getting availability for a specific region via RegionGroup.
76-
"""
77-
client = test_linode_client
78-
79-
# Get the first available region
80-
regions = client.regions()
81-
assert len(regions) > 0
82-
test_region_id = regions[0].id
83-
84-
avail_entries = client.regions.availability_get(test_region_id)
85-
86-
assert len(avail_entries) > 0
87-
88-
for entry in avail_entries:
89-
assert entry.region == test_region_id
90-
assert entry.plan is not None
91-
assert len(entry.plan) > 0
92-
assert entry.available is not None
93-
assert isinstance(entry.available, bool)
94-
95-
9650
def test_vpc_availability_available_regions(test_linode_client):
9751
"""
9852
Test that some regions have VPC availability enabled.

test/unit/groups/region_test.py

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def test_list_availability(self):
2323
assert len(avail_entries) > 0
2424

2525
for entry in avail_entries:
26+
assert entry.region is not None
2627
assert len(entry.region) > 0
2728
assert len(entry.plan) > 0
2829
assert entry.available is not None
@@ -72,32 +73,3 @@ def test_list_vpc_availability(self):
7273
m.mock.call_args_list[1].args[0]
7374
== "//regions/vpc-availability?page=2&page_size=25"
7475
)
75-
76-
def test_get_vpc_availability(self):
77-
"""
78-
Tests that VPC availability for a specific region can be retrieved.
79-
"""
80-
81-
with self.mock_get("/regions/us-east/vpc-availability") as m:
82-
vpc_avail = self.client.regions.vpc_availability_get("us-east")
83-
84-
assert vpc_avail is not None
85-
assert vpc_avail.region == "us-east"
86-
assert vpc_avail.available is True
87-
assert vpc_avail.available_ipv6_prefix_lengths == [52, 48]
88-
89-
def test_get_availability(self):
90-
"""
91-
Tests that availability for a specific region can be retrieved.
92-
"""
93-
94-
with self.mock_get("/regions/us-east/availability") as m:
95-
avail_entries = self.client.regions.availability_get("us-east")
96-
97-
assert len(avail_entries) > 0
98-
99-
# Verify first entry to ensure deserialization works
100-
first_entry = avail_entries[0]
101-
assert first_entry.region == "us-east"
102-
assert len(first_entry.plan) > 0
103-
assert first_entry.available is not None

0 commit comments

Comments
 (0)