Fix for service target creation in chain
Fixing issue in traffic stitching plumber where if plumbing info is not provided, it is not creating service targets for remaining nodes. Closes-Bug: 1598824 Change-Id: I3026790a380f24aa9e810f32eadb2eba8e3b9334 (cherry picked from commitab6862783a) (cherry picked from commitc982511bcd)
This commit is contained in:
committed by
Hemanth Ravi
parent
7e9beb4be0
commit
c13f3fb33b
@@ -73,7 +73,7 @@ class TrafficStitchingPlumber(plumber_base.NodePlumberBase):
|
||||
for part in deployment:
|
||||
info = part['plumbing_info']
|
||||
if not info:
|
||||
return
|
||||
continue
|
||||
part_context = part['context']
|
||||
# Management PT can be created immediately
|
||||
self._create_service_target(
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
import mock
|
||||
from neutron.common import config # noqa
|
||||
from neutron import context as n_context
|
||||
from neutron.plugins.common import constants as pconst
|
||||
from oslo_config import cfg
|
||||
|
||||
from gbpservice.neutron.services.servicechain.plugins.ncp import model
|
||||
@@ -87,6 +88,38 @@ class TrafficStitchingPlumberTestCase(base.NodeCompositionPluginTestCase):
|
||||
provider['id'])['policy_target_group']
|
||||
self.assertIsNone(provider['proxy_group_id'])
|
||||
|
||||
def get_plumbing_info_base(self, context):
|
||||
service_type = context.current_profile['service_type']
|
||||
plumbing_request = {'management': [], 'provider': [{}],
|
||||
'consumer': [{}]}
|
||||
|
||||
if service_type in [pconst.FIREWALL]:
|
||||
plumbing_request['plumbing_type'] = 'gateway'
|
||||
else:
|
||||
plumbing_request = {}
|
||||
return plumbing_request
|
||||
|
||||
def test_get_service_targets_in_chain(self):
|
||||
context = n_context.get_admin_context()
|
||||
self.driver.get_plumbing_info = self.get_plumbing_info_base
|
||||
lb_prof = self._create_service_profile(
|
||||
service_type='LOADBALANCER',
|
||||
vendor=self.SERVICE_PROFILE_VENDOR)['service_profile']
|
||||
lb_node = self.create_servicechain_node(
|
||||
service_profile_id=lb_prof['id'],
|
||||
config=self.DEFAULT_LB_CONFIG)['servicechain_node']
|
||||
fw_prof = self._create_service_profile(
|
||||
service_type='FIREWALL',
|
||||
vendor=self.SERVICE_PROFILE_VENDOR)['service_profile']
|
||||
fw_node = self.create_servicechain_node(
|
||||
service_profile_id=fw_prof['id'],
|
||||
config='{}')['servicechain_node']
|
||||
|
||||
self._create_chain_with_nodes([fw_node['id'], lb_node['id']])
|
||||
|
||||
targets = model.get_service_targets(context.session)
|
||||
self.assertEqual(2, len(targets))
|
||||
|
||||
def test_ptg_delete(self):
|
||||
self.driver.get_plumbing_info.return_value = {
|
||||
'provider': [{}], 'consumer': [{}],
|
||||
|
||||
Reference in New Issue
Block a user