diff --git a/linode_api4/objects/nodebalancer.py b/linode_api4/objects/nodebalancer.py index 6fa2ee797..371eeed9b 100644 --- a/linode_api4/objects/nodebalancer.py +++ b/linode_api4/objects/nodebalancer.py @@ -269,6 +269,7 @@ class NodeBalancer(Base): "locks": Property(unordered=True), "type": Property(), "backend_connectivity": Property(), + "backend_ipv6_prefix": Property(), } # create derived objects diff --git a/test/fixtures/linode_instances_123_nodebalancers.json b/test/fixtures/linode_instances_123_nodebalancers.json index a291e4fc2..fc92c79fb 100644 --- a/test/fixtures/linode_instances_123_nodebalancers.json +++ b/test/fixtures/linode_instances_123_nodebalancers.json @@ -10,6 +10,7 @@ "label": "balancer12345", "type": "premium", "backend_connectivity": "ipv6", + "backend_ipv6_prefix": "2600:3c22:1:20:0:3039::/96", "region": "us-east", "tags": [ "example tag", diff --git a/test/fixtures/nodebalancers.json b/test/fixtures/nodebalancers.json index 2175096b6..487943e74 100644 --- a/test/fixtures/nodebalancers.json +++ b/test/fixtures/nodebalancers.json @@ -13,7 +13,8 @@ "tags": ["something"], "locks": ["cannot_delete_with_subresources"], "type": "premium", - "backend_connectivity": "ipv6" + "backend_connectivity": "ipv6", + "backend_ipv6_prefix": "2600:3c22:1:20:0:3039::/96" }, { "created": "2018-01-01T00:01:01", @@ -28,7 +29,8 @@ "tags": [], "locks": [], "type": "premium", - "backend_connectivity": "ipv6" + "backend_connectivity": "ipv6", + "backend_ipv6_prefix": null } ], "results": 2, diff --git a/test/fixtures/nodebalancers_123456.json b/test/fixtures/nodebalancers_123456.json index 3261ea46b..fbec0bec7 100644 --- a/test/fixtures/nodebalancers_123456.json +++ b/test/fixtures/nodebalancers_123456.json @@ -15,5 +15,6 @@ "cannot_delete_with_subresources" ], "type": "premium", - "backend_connectivity": "ipv6" + "backend_connectivity": "ipv6", + "backend_ipv6_prefix": "2600:3c22:1:20:0:3039::/96" } diff --git a/test/integration/models/nodebalancer/test_nodebalancer.py b/test/integration/models/nodebalancer/test_nodebalancer.py index 102e19cbf..97e76e88f 100644 --- a/test/integration/models/nodebalancer/test_nodebalancer.py +++ b/test/integration/models/nodebalancer/test_nodebalancer.py @@ -115,6 +115,9 @@ def test_create_nb(test_linode_client, e2e_test_firewall): assert 5 == nb.client_udp_sess_throttle assert nb.type == "premium" assert nb.backend_connectivity == "ipv6" + assert nb.backend_ipv6_prefix is None or isinstance( + nb.backend_ipv6_prefix, str + ) nb.delete() diff --git a/test/unit/linode_client_test.py b/test/unit/linode_client_test.py index 1d154de29..78a542210 100644 --- a/test/unit/linode_client_test.py +++ b/test/unit/linode_client_test.py @@ -1601,6 +1601,7 @@ def test_create_with_type_and_backend_connectivity(self): "label": "my-premium-nb", "type": "premium", "backend_connectivity": "ipv6", + "backend_ipv6_prefix": "2600:3c22:1:20:0:3039::/96", "region": "us-east", } ) as m: @@ -1634,6 +1635,10 @@ def test_create_with_type_and_backend_connectivity(self): self.assertEqual(nb.id, 1234) self.assertEqual(nb.type, "premium") self.assertEqual(nb.backend_connectivity, "ipv6") + self.assertEqual( + nb.backend_ipv6_prefix, "2600:3c22:1:20:0:3039::/96" + ) + self.assertNotIn("backend_ipv6_prefix", m.call_data) def test_create_with_vpc_backend_connectivity(self): """ diff --git a/test/unit/objects/nodebalancers_test.py b/test/unit/objects/nodebalancers_test.py index a3e6ef166..ebc65607d 100644 --- a/test/unit/objects/nodebalancers_test.py +++ b/test/unit/objects/nodebalancers_test.py @@ -188,6 +188,7 @@ def test_get(self): self.assertEqual(nb._populated, True) self.assertEqual(nb.type, "premium") self.assertEqual(nb.backend_connectivity, "ipv6") + self.assertEqual(nb.backend_ipv6_prefix, "2600:3c22:1:20:0:3039::/96") def test_update(self): """ @@ -244,6 +245,7 @@ def test_type_and_backend_connectivity_not_in_put(self): self.assertEqual(m.call_url, "/nodebalancers/123456") self.assertNotIn("type", m.call_data) self.assertNotIn("backend_connectivity", m.call_data) + self.assertNotIn("backend_ipv6_prefix", m.call_data) self.assertEqual(m.call_data["label"], "new-label") def test_firewalls(self): @@ -258,6 +260,13 @@ def test_firewalls(self): self.assertEqual(m.call_url, firewalls_url) self.assertEqual(len(result), 1) + def test_backend_ipv6_prefix_null(self): + """ + Test that a NodeBalancer can have a null backend IPv6 prefix. + """ + nb = NodeBalancer(self.client, 123457) + self.assertIsNone(nb.backend_ipv6_prefix) + def test_config_rebuild(self): """ Test that you can rebuild the cofig of a node balancer.