Skip to content

Commit 7a3a5ae

Browse files
authored
fix(free-tier): replace regionID with provider_region (#77)
1 parent fa5091c commit 7a3a5ae

File tree

4 files changed

+16
-22
lines changed

4 files changed

+16
-22
lines changed

singlestoredb/management/cluster.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ def create_cluster(
390390
:class:`Cluster`
391391
392392
"""
393-
if isinstance(region, Region):
393+
if isinstance(region, Region) and region.id:
394394
region = region.id
395395
res = self._post(
396396
'clusters', json=dict(

singlestoredb/management/region.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ class Region(object):
2121
2222
"""
2323

24-
def __init__(self, id: str, name: str, provider: str):
24+
def __init__(
25+
self, name: str, provider: str, id: Optional[str] = None,
26+
region_name: Optional[str] = None,
27+
) -> None:
2528
"""Use :attr:`WorkspaceManager.regions` instead."""
2629
#: Unique ID of the region
2730
self.id = id
@@ -32,6 +35,9 @@ def __init__(self, id: str, name: str, provider: str):
3235
#: Name of the cloud provider
3336
self.provider = provider
3437

38+
#: Name of the provider region
39+
self.region_name = region_name
40+
3541
self._manager: Optional[Manager] = None
3642

3743
def __str__(self) -> str:
@@ -59,10 +65,14 @@ def from_dict(cls, obj: Dict[str, str], manager: Manager) -> 'Region':
5965
:class:`Region`
6066
6167
"""
68+
id = obj.get('regionID', None)
69+
region_name = obj.get('regionName', None)
70+
6271
out = cls(
63-
id=obj['regionID'],
72+
id=id,
6473
name=obj['region'],
6574
provider=obj['provider'],
75+
region_name=region_name,
6676
)
6777
out._manager = manager
6878
return out

singlestoredb/management/workspace.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,7 +1074,7 @@ def from_dict(
10741074
try:
10751075
region = [x for x in manager.regions if x.id == obj['regionID']][0]
10761076
except IndexError:
1077-
region = Region(obj.get('regionID', '<unknown>'), '<unknown>', '<unknown>')
1077+
region = Region('<unknown>', '<unknown>', obj.get('regionID', '<unknown>'))
10781078
out = cls(
10791079
name=obj['name'],
10801080
id=obj['workspaceGroupID'],
@@ -1715,7 +1715,7 @@ def create_workspace_group(
17151715
:class:`WorkspaceGroup`
17161716
17171717
"""
1718-
if isinstance(region, Region):
1718+
if isinstance(region, Region) and region.id:
17191719
region = region.id
17201720
res = self._post(
17211721
'workspaceGroups', json=dict(

singlestoredb/tests/test_management.py

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1529,14 +1529,6 @@ def test_list_regions(self):
15291529
providers = {x.provider for x in regions}
15301530
assert 'Azure' in providers or 'GCP' in providers or 'AWS' in providers
15311531

1532-
# Verify region can be accessed by name or ID
1533-
region_by_name = regions[region.name]
1534-
region_by_id = regions[region.id]
1535-
assert region_by_name == region_by_id
1536-
assert region_by_name.id == region.id
1537-
assert region_by_name.name == region.name
1538-
assert region_by_name.provider == region.provider
1539-
15401532
def test_list_shared_tier_regions(self):
15411533
"""Test listing shared tier regions."""
15421534
regions = self.manager.list_shared_tier_regions()
@@ -1548,22 +1540,14 @@ def test_list_shared_tier_regions(self):
15481540
if regions:
15491541
region = regions[0]
15501542
assert isinstance(region, Region)
1551-
assert hasattr(region, 'id')
15521543
assert hasattr(region, 'name')
15531544
assert hasattr(region, 'provider')
1545+
assert hasattr(region, 'region_name')
15541546

15551547
# Verify provider values
15561548
providers = {x.provider for x in regions}
15571549
assert any(p in providers for p in ['Azure', 'GCP', 'AWS'])
15581550

1559-
# Verify region can be accessed by name or ID
1560-
region_by_name = regions[region.name]
1561-
region_by_id = regions[region.id]
1562-
assert region_by_name == region_by_id
1563-
assert region_by_name.id == region.id
1564-
assert region_by_name.name == region.name
1565-
assert region_by_name.provider == region.provider
1566-
15671551
def test_str_repr(self):
15681552
"""Test string representation of regions."""
15691553
regions = self.manager.list_regions()

0 commit comments

Comments
 (0)