diff --git a/octavia/controller/worker/v1/flows/load_balancer_flows.py b/octavia/controller/worker/v1/flows/load_balancer_flows.py index d360a8b754..f254053eb6 100644 --- a/octavia/controller/worker/v1/flows/load_balancer_flows.py +++ b/octavia/controller/worker/v1/flows/load_balancer_flows.py @@ -205,9 +205,16 @@ class LoadBalancerFlows(object): requires=constants.DELTAS, provides=constants.UPDATED_PORTS ) ) + flows.append( + network_tasks.GetAmphoraeNetworkConfigs( + requires=constants.LOADBALANCER_ID, + provides=constants.AMPHORAE_NETWORK_CONFIG + ) + ) flows.append( amphora_driver_tasks.AmphoraePostNetworkPlug( - requires=(constants.LOADBALANCER, constants.UPDATED_PORTS) + requires=(constants.LOADBALANCER, constants.UPDATED_PORTS, + constants.AMPHORAE_NETWORK_CONFIG) ) ) flows.append( diff --git a/octavia/controller/worker/v2/flows/load_balancer_flows.py b/octavia/controller/worker/v2/flows/load_balancer_flows.py index 7ab8d28c6f..83edcb54ad 100644 --- a/octavia/controller/worker/v2/flows/load_balancer_flows.py +++ b/octavia/controller/worker/v2/flows/load_balancer_flows.py @@ -210,9 +210,16 @@ class LoadBalancerFlows(object): requires=constants.DELTAS, provides=constants.UPDATED_PORTS ) ) + flows.append( + network_tasks.GetAmphoraeNetworkConfigs( + requires=constants.LOADBALANCER_ID, + provides=constants.AMPHORAE_NETWORK_CONFIG + ) + ) flows.append( amphora_driver_tasks.AmphoraePostNetworkPlug( - requires=(constants.LOADBALANCER, constants.UPDATED_PORTS) + requires=(constants.LOADBALANCER, constants.UPDATED_PORTS, + constants.AMPHORAE_NETWORK_CONFIG) ) ) flows.append( diff --git a/octavia/tests/unit/controller/worker/v1/flows/test_load_balancer_flows.py b/octavia/tests/unit/controller/worker/v1/flows/test_load_balancer_flows.py index 46ffc522c8..f4e87b65bc 100644 --- a/octavia/tests/unit/controller/worker/v1/flows/test_load_balancer_flows.py +++ b/octavia/tests/unit/controller/worker/v1/flows/test_load_balancer_flows.py @@ -185,7 +185,6 @@ class TestLoadBalancerFlows(base.TestCase): self.assertIn(constants.UPDATE_DICT, create_flow.requires) self.assertIn(constants.BUILD_TYPE_PRIORITY, create_flow.requires) self.assertIn(constants.FLAVOR, create_flow.requires) - self.assertIn(constants.AMPHORAE_NETWORK_CONFIG, create_flow.requires) self.assertIn(constants.AVAILABILITY_ZONE, create_flow.requires) self.assertIn(constants.SERVER_GROUP_ID, create_flow.requires) @@ -202,9 +201,10 @@ class TestLoadBalancerFlows(base.TestCase): self.assertIn(constants.AMP_DATA, create_flow.provides) self.assertIn(constants.SERVER_PEM, create_flow.provides) self.assertIn(constants.AMPHORA_NETWORK_CONFIG, create_flow.provides) + self.assertIn(constants.AMPHORAE_NETWORK_CONFIG, create_flow.provides) - self.assertEqual(7, len(create_flow.requires)) - self.assertEqual(13, len(create_flow.provides)) + self.assertEqual(6, len(create_flow.requires)) + self.assertEqual(14, len(create_flow.provides)) def test_get_create_load_balancer_flows_active_standby_listeners( self, mock_get_net_driver): diff --git a/octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py b/octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py index 58075b5ec3..e35e11aadb 100644 --- a/octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py +++ b/octavia/tests/unit/controller/worker/v2/flows/test_load_balancer_flows.py @@ -239,7 +239,6 @@ class TestLoadBalancerFlows(base.TestCase): self.assertIn(constants.UPDATE_DICT, create_flow.requires) self.assertIn(constants.BUILD_TYPE_PRIORITY, create_flow.requires) self.assertIn(constants.FLAVOR, create_flow.requires) - self.assertIn(constants.AMPHORAE_NETWORK_CONFIG, create_flow.requires) self.assertIn(constants.AVAILABILITY_ZONE, create_flow.requires) self.assertIn(constants.SERVER_GROUP_ID, create_flow.requires) @@ -257,9 +256,10 @@ class TestLoadBalancerFlows(base.TestCase): self.assertIn(constants.SERVER_PEM, create_flow.provides) self.assertIn(constants.VIP, create_flow.provides) self.assertIn(constants.ADDITIONAL_VIPS, create_flow.provides) + self.assertIn(constants.AMPHORAE_NETWORK_CONFIG, create_flow.provides) - self.assertEqual(7, len(create_flow.requires)) - self.assertEqual(14, len(create_flow.provides)) + self.assertEqual(6, len(create_flow.requires)) + self.assertEqual(15, len(create_flow.provides)) @mock.patch('octavia.common.rpc.NOTIFIER', new_callable=MockNOTIFIER) diff --git a/releasenotes/notes/fix-fully-populated-lb-with-listener-92a369ea8d57e8f5.yaml b/releasenotes/notes/fix-fully-populated-lb-with-listener-92a369ea8d57e8f5.yaml new file mode 100644 index 0000000000..7692505130 --- /dev/null +++ b/releasenotes/notes/fix-fully-populated-lb-with-listener-92a369ea8d57e8f5.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixed a bug that prevented Octavia from creating listeners with the + fully-populated load balancer API in SINGLE topology mode.