Skip to content

Commit 925d1a7

Browse files
committed
TPT-3501 Support NodeBalancer lke_cluster field
1 parent e34a81a commit 925d1a7

5 files changed

Lines changed: 37 additions & 2 deletions

File tree

linode_api4/common.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,15 @@ class RegionPrice(JSONObject):
8181
id: int = 0
8282
hourly: int = 0
8383
monthly: int = 0
84+
85+
86+
@dataclass
87+
class LKECluster(JSONObject):
88+
"""
89+
LKECluster contains the core fields of a lke_Cluster object returned by various node balancer endpoints.
90+
"""
91+
92+
id: int = 0
93+
label: str = ""
94+
type: str = ""
95+
url: str = ""

linode_api4/objects/nodebalancer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
from urllib import parse
33

4-
from linode_api4.common import Price, RegionPrice
4+
from linode_api4.common import Price, RegionPrice, LKECluster
55
from linode_api4.errors import UnexpectedResponseError
66
from linode_api4.objects.base import Base, MappedObject, Property
77
from linode_api4.objects.dbase import DerivedBase
@@ -276,6 +276,7 @@ class NodeBalancer(Base):
276276
"client_udp_sess_throttle": Property(mutable=True),
277277
"locks": Property(unordered=True),
278278
"type": Property(),
279+
"lke_cluster": Property(json_object=LKECluster),
279280
"frontend_address_type": Property(),
280281
"frontend_vpc_subnet_id": Property(),
281282
}

test/fixtures/nodebalancers.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
"tags": ["something"],
1414
"locks": ["cannot_delete_with_subresources"],
1515
"type": "common",
16+
"lke_cluster": {
17+
"id": 1234,
18+
"type": "lkecluster",
19+
"label": "test-cluster",
20+
"url": "/v4/lke/clusters/1234"
21+
},
1622
"frontend_address_type": "vpc",
1723
"frontend_vpc_subnet_id": 5555
1824
},
@@ -29,6 +35,7 @@
2935
"tags": [],
3036
"locks": [],
3137
"type": "premium_40gb",
38+
"lke_cluster": null,
3239
"frontend_address_type": "vpc",
3340
"frontend_vpc_subnet_id": 6666
3441
}

test/fixtures/nodebalancers_123456.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
"cannot_delete_with_subresources"
1616
],
1717
"type": "common",
18+
"lke_cluster": {
19+
"id": 1234,
20+
"type": "lkecluster",
21+
"label": "test-cluster",
22+
"url": "/v4/lke/clusters/1234"
23+
},
1824
"frontend_address_type": "vpc",
1925
"frontend_vpc_subnet_id": 5555
2026
}

test/unit/objects/nodebalancers_test.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ def test_firewalls(self):
208208

209209
def test_config_rebuild(self):
210210
"""
211-
Test that you can rebuild the cofig of a node balancer.
211+
Test that you can rebuild the config of a node balancer.
212212
"""
213213
config_rebuild_url = "/nodebalancers/12345/configs/4567/rebuild"
214214
with self.mock_post(config_rebuild_url) as m:
@@ -279,12 +279,17 @@ def test_list_nodebalancers(self):
279279
self.assertEqual(nbs[0].id, 123456)
280280
self.assertEqual(nbs[0].label, "balancer123456")
281281
self.assertEqual(nbs[0].type, "common")
282+
self.assertEqual(nbs[0].lke_cluster.id, 1234)
283+
self.assertEqual(nbs[0].lke_cluster.type, "lkecluster")
284+
self.assertEqual(nbs[0].lke_cluster.label, "test-cluster")
285+
self.assertEqual(nbs[0].lke_cluster.url, "/v4/lke/clusters/1234")
282286
self.assertEqual(nbs[0].frontend_address_type, "vpc")
283287
self.assertEqual(nbs[0].frontend_vpc_subnet_id, 5555)
284288

285289
self.assertEqual(nbs[1].id, 123457)
286290
self.assertEqual(nbs[1].label, "balancer123457")
287291
self.assertEqual(nbs[1].type, "premium_40gb")
292+
self.assertEqual(nbs[1].lke_cluster, None)
288293
self.assertEqual(nbs[1].frontend_address_type, "vpc")
289294
self.assertEqual(nbs[1].frontend_vpc_subnet_id, 6666)
290295

@@ -297,6 +302,10 @@ def test_get_nodebalancer(self):
297302
self.assertEqual(nb.id, 123456)
298303
self.assertEqual(nb.label, "balancer123456")
299304
self.assertEqual(nb.type, "common")
305+
self.assertEqual(nb.lke_cluster.id, 1234)
306+
self.assertEqual(nb.lke_cluster.type, "lkecluster")
307+
self.assertEqual(nb.lke_cluster.label, "test-cluster")
308+
self.assertEqual(nb.lke_cluster.url, "/v4/lke/clusters/1234")
300309
self.assertEqual(nb.frontend_address_type, "vpc")
301310
self.assertEqual(nb.frontend_vpc_subnet_id, 5555)
302311

0 commit comments

Comments
 (0)