|
4 | 4 | NodeBalancer, |
5 | 5 | NodeBalancerConfig, |
6 | 6 | NodeBalancerNode, |
| 7 | + NodeBalancerVPCConfig, |
7 | 8 | ) |
8 | 9 |
|
9 | 10 |
|
@@ -266,3 +267,119 @@ def test_statistics(self): |
266 | 267 | "linode.com - balancer12345 (12345) - day (5 min avg)", |
267 | 268 | ) |
268 | 269 | self.assertEqual(m.call_url, statistics_url) |
| 270 | + |
| 271 | + def test_list_nodebalancers(self): |
| 272 | + """ |
| 273 | + Test that you can list all NodeBalancers. |
| 274 | + """ |
| 275 | + nbs = self.client.nodebalancers() |
| 276 | + |
| 277 | + self.assertEqual(len(nbs), 2) |
| 278 | + |
| 279 | + self.assertEqual(nbs[0].id, 123456) |
| 280 | + self.assertEqual(nbs[0].label, "balancer123456") |
| 281 | + self.assertEqual(nbs[0].type, "common") |
| 282 | + self.assertEqual(nbs[0].frontend_address_type, "vpc") |
| 283 | + self.assertEqual(nbs[0].frontend_vpc_subnet_id, 5555) |
| 284 | + |
| 285 | + self.assertEqual(nbs[1].id, 123457) |
| 286 | + self.assertEqual(nbs[1].label, "balancer123457") |
| 287 | + self.assertEqual(nbs[1].type, "premium_40gb") |
| 288 | + self.assertEqual(nbs[1].frontend_address_type, "vpc") |
| 289 | + self.assertEqual(nbs[1].frontend_vpc_subnet_id, 6666) |
| 290 | + |
| 291 | + def test_get_nodebalancer(self): |
| 292 | + """ |
| 293 | + Test that you can get a single NodeBalancer by ID. |
| 294 | + """ |
| 295 | + nb = NodeBalancer(self.client, 123456) |
| 296 | + |
| 297 | + self.assertEqual(nb.id, 123456) |
| 298 | + self.assertEqual(nb.label, "balancer123456") |
| 299 | + self.assertEqual(nb.type, "common") |
| 300 | + self.assertEqual(nb.frontend_address_type, "vpc") |
| 301 | + self.assertEqual(nb.frontend_vpc_subnet_id, 5555) |
| 302 | + |
| 303 | + def test_vpcs(self): |
| 304 | + """ |
| 305 | + Test that you can list VPC configurations for a NodeBalancer. |
| 306 | + """ |
| 307 | + vpcs_url = "/nodebalancers/12345/vpcs" |
| 308 | + with self.mock_get(vpcs_url) as m: |
| 309 | + nb = NodeBalancer(self.client, 12345) |
| 310 | + result = nb.vpcs() |
| 311 | + |
| 312 | + self.assertEqual(m.call_url, vpcs_url) |
| 313 | + self.assertEqual(len(result), 2) |
| 314 | + |
| 315 | + self.assertIsInstance(result[0], NodeBalancerVPCConfig) |
| 316 | + self.assertEqual(result[0].id, 99) |
| 317 | + self.assertEqual(result[0].subnet_id, 5555) |
| 318 | + self.assertEqual(result[0].vpc_id, 111) |
| 319 | + self.assertEqual(result[0].ipv4_range, "10.100.5.0/24") |
| 320 | + self.assertEqual(result[0].ipv6_range, "2001:db8::/64") |
| 321 | + self.assertEqual(result[0].purpose, "frontend") |
| 322 | + |
| 323 | + self.assertIsInstance(result[1], NodeBalancerVPCConfig) |
| 324 | + self.assertEqual(result[1].id, 100) |
| 325 | + self.assertEqual(result[1].subnet_id, 5556) |
| 326 | + self.assertEqual(result[1].vpc_id, 112) |
| 327 | + self.assertEqual(result[1].ipv4_range, "10.100.6.0/24") |
| 328 | + self.assertEqual(result[1].ipv6_range, "2001:db8:1::/64") |
| 329 | + self.assertEqual(result[1].purpose, "backend") |
| 330 | + |
| 331 | + def test_vpc(self): |
| 332 | + """ |
| 333 | + Test that you can get a single VPC configuration for a NodeBalancer. |
| 334 | + """ |
| 335 | + vpc_url = "/nodebalancers/12345/vpcs/99" |
| 336 | + with self.mock_get(vpc_url) as m: |
| 337 | + nb = NodeBalancer(self.client, 12345) |
| 338 | + result = nb.vpc(99) |
| 339 | + |
| 340 | + self.assertEqual(m.call_url, vpc_url) |
| 341 | + self.assertIsInstance(result, NodeBalancerVPCConfig) |
| 342 | + self.assertEqual(result.id, 99) |
| 343 | + self.assertEqual(result.subnet_id, 5555) |
| 344 | + self.assertEqual(result.vpc_id, 111) |
| 345 | + self.assertEqual(result.ipv4_range, "10.100.5.0/24") |
| 346 | + self.assertEqual(result.ipv6_range, "2001:db8::/64") |
| 347 | + self.assertEqual(result.purpose, "frontend") |
| 348 | + |
| 349 | + def test_backend_vpcs(self): |
| 350 | + """ |
| 351 | + Test that you can list backend VPC configurations for a NodeBalancer. |
| 352 | + """ |
| 353 | + backend_vpcs_url = "/nodebalancers/12345/backend_vpcs" |
| 354 | + with self.mock_get(backend_vpcs_url) as m: |
| 355 | + nb = NodeBalancer(self.client, 12345) |
| 356 | + result = nb.backend_vpcs() |
| 357 | + |
| 358 | + self.assertEqual(m.call_url, backend_vpcs_url) |
| 359 | + self.assertEqual(len(result), 1) |
| 360 | + self.assertIsInstance(result[0], NodeBalancerVPCConfig) |
| 361 | + self.assertEqual(result[0].id, 101) |
| 362 | + self.assertEqual(result[0].subnet_id, 6666) |
| 363 | + self.assertEqual(result[0].vpc_id, 222) |
| 364 | + self.assertEqual(result[0].ipv4_range, "10.200.1.0/24") |
| 365 | + self.assertEqual(result[0].ipv6_range, "2001:db8:2::/64") |
| 366 | + self.assertEqual(result[0].purpose, "backend") |
| 367 | + |
| 368 | + def test_frontend_vpcs(self): |
| 369 | + """ |
| 370 | + Test that you can list frontend VPC configurations for a NodeBalancer. |
| 371 | + """ |
| 372 | + frontend_vpcs_url = "/nodebalancers/12345/frontend_vpcs" |
| 373 | + with self.mock_get(frontend_vpcs_url) as m: |
| 374 | + nb = NodeBalancer(self.client, 12345) |
| 375 | + result = nb.frontend_vpcs() |
| 376 | + |
| 377 | + self.assertEqual(m.call_url, frontend_vpcs_url) |
| 378 | + self.assertEqual(len(result), 1) |
| 379 | + self.assertIsInstance(result[0], NodeBalancerVPCConfig) |
| 380 | + self.assertEqual(result[0].id, 99) |
| 381 | + self.assertEqual(result[0].subnet_id, 5555) |
| 382 | + self.assertEqual(result[0].vpc_id, 111) |
| 383 | + self.assertEqual(result[0].ipv4_range, "10.100.5.0/24") |
| 384 | + self.assertEqual(result[0].ipv6_range, "2001:db8::/64") |
| 385 | + self.assertEqual(result[0].purpose, "frontend") |
0 commit comments