diff --git a/octavia/api/v2/types/load_balancer.py b/octavia/api/v2/types/load_balancer.py index 012d7d24e7..7aaef74628 100644 --- a/octavia/api/v2/types/load_balancer.py +++ b/octavia/api/v2/types/load_balancer.py @@ -42,6 +42,7 @@ class AdditionalVipsType(types.BaseType): """Type for additional vips""" subnet_id = wtypes.wsattr(wtypes.UuidType(), mandatory=True) ip_address = wtypes.wsattr(types.IPAddressType()) + port_id = wtypes.wsattr(wtypes.UuidType()) class LoadBalancerResponse(BaseLoadBalancerType): diff --git a/octavia/tests/functional/api/v2/test_load_balancer.py b/octavia/tests/functional/api/v2/test_load_balancer.py index 77696e2553..f41d043a4e 100644 --- a/octavia/tests/functional/api/v2/test_load_balancer.py +++ b/octavia/tests/functional/api/v2/test_load_balancer.py @@ -672,9 +672,14 @@ class TestLoadBalancer(base.BaseAPITest): self.assertEqual(subnet1.id, api_lb.get('vip_subnet_id')) self.assertEqual(network.id, api_lb.get('vip_network_id')) + expected_add_vips = [] + for add_vip in lb_json['additional_vips']: + add_vip.update(port_id=port.id) + expected_add_vips.append(add_vip) + self.assertEqual( # Sort by ip_address so the list order will be guaranteed - sorted(lb_json['additional_vips'], key=lambda x: x['ip_address']), + sorted(expected_add_vips, key=lambda x: x['ip_address']), sorted(api_lb['additional_vips'], key=lambda x: x['ip_address'])) def test_create_neutron_failure(self): @@ -2840,6 +2845,9 @@ class TestLoadBalancerGraph(base.BaseAPITest): if vip_sg_ids: create_lb['vip_sg_ids'] = vip_sg_ids if additional_vips: + for add_vip in additional_vips: + if 'port_id' not in add_vip: + add_vip['port_id'] = create_lb['vip_port_id'] create_lb.update({'additional_vips': additional_vips}) expected_lb = { 'description': '', diff --git a/releasenotes/notes/fix-missing-additional-vips-port_id-fd0708aa798744c9.yaml b/releasenotes/notes/fix-missing-additional-vips-port_id-fd0708aa798744c9.yaml new file mode 100644 index 0000000000..fae08b28bc --- /dev/null +++ b/releasenotes/notes/fix-missing-additional-vips-port_id-fd0708aa798744c9.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixed missing `port_id` element when getting the `additional_vips` + parameter of a load balancer.