diff --git a/gbpservice/nfp/orchestrator/config_drivers/heat_driver.py b/gbpservice/nfp/orchestrator/config_drivers/heat_driver.py index 2625e6b456..4c5ce577f6 100644 --- a/gbpservice/nfp/orchestrator/config_drivers/heat_driver.py +++ b/gbpservice/nfp/orchestrator/config_drivers/heat_driver.py @@ -882,15 +882,24 @@ def _create_node_config_data(self, auth_token, tenant_id, auth_token, stitching_ptg_id, {'policy_target_group': { 'network_service_policy_id': nsp['id']}}) + stitching_port_fip = "" + if not base_mode_support: - filters = {'port_id': consumer_port['id']} - stitching_port_fip = self.neutron_client.get_floating_ips( - auth_token, - filters)[0]['floating_ip_address'] - if not stitching_port_fip: + floatingips = ( + self.neutron_client.get_floating_ips(auth_token)) + if not floatingips: LOG.error(_LE("Floating IP for VPN Service has been " "disassociated Manually")) return None, None + + for fip in floatingips: + if consumer_port['id'] == fip['port_id']: + stitching_port_fip = fip['floating_ip_address'] + break + if not stitching_port_fip: + LOG.error(_LE("Floatingip retrival has failed.")) + return None, None + try: desc = ('fip=' + mgmt_ip + ";tunnel_local_cidr=" +