Support GBP Neutron mapping resources in List filters

Change-Id: Ica6c645a02cae848e5639dcbbeb60a8682d1083d
Closes-Bug: 1469540
This commit is contained in:
Magesh GV
2015-06-28 21:50:47 +05:30
parent 3d6a35322c
commit 86f9190d84
2 changed files with 70 additions and 0 deletions

View File

@@ -170,6 +170,19 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
context.session.add(pt_db)
return self._make_policy_target_dict(pt_db)
@log.log
def get_policy_targets(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None,
page_reverse=False):
marker_obj = self._get_marker_obj(context, 'policy_target', limit,
marker)
return self._get_collection(context, PolicyTargetMapping,
self._make_policy_target_dict,
filters=filters, fields=fields,
sorts=sorts, limit=limit,
marker_obj=marker_obj,
page_reverse=page_reverse)
@log.log
def create_policy_target_group(self, context, policy_target_group):
ptg = policy_target_group['policy_target_group']
@@ -240,6 +253,19 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
context.session.add(l2p_db)
return self._make_l2_policy_dict(l2p_db)
@log.log
def get_l2_policies(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None,
page_reverse=False):
marker_obj = self._get_marker_obj(context, 'l2_policy', limit,
marker)
return self._get_collection(context, L2PolicyMapping,
self._make_l2_policy_dict,
filters=filters, fields=fields,
sorts=sorts, limit=limit,
marker_obj=marker_obj,
page_reverse=page_reverse)
@log.log
def create_l3_policy(self, context, l3_policy):
l3p = l3_policy['l3_policy']
@@ -321,3 +347,16 @@ class GroupPolicyMappingDbPlugin(gpdb.GroupPolicyDbPlugin):
if 'external_routes' in es:
self._process_segment_ers(context, es_db, es)
return self._make_external_segment_dict(es_db)
@log.log
def get_external_segments(self, context, filters=None, fields=None,
sorts=None, limit=None, marker=None,
page_reverse=False):
marker_obj = self._get_marker_obj(context, 'external_segment', limit,
marker)
return self._get_collection(context, ExternalSegmentMapping,
self._make_external_segment_dict,
filters=filters, fields=fields,
sorts=sorts, limit=limit,
marker_obj=marker_obj,
page_reverse=page_reverse)

View File

@@ -203,3 +203,34 @@ class TestMappedGroupResourceAttrs(GroupPolicyMappingDbTestCase):
req = self.new_delete_request('external_segments', es_id)
res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, webob.exc.HTTPNoContent.code)
def test_list_policy_targets(self):
with self.port() as port1:
with self.port() as port2:
ports = [port1['port']['id'], port2['port']['id']]
pts = [self.create_policy_target(port_id=ports[0]),
self.create_policy_target(port_id=ports[1])]
self._test_list_resources('policy_target', [pts[0]],
query_params='port_id=' + ports[0])
def test_list_l2_policies(self):
with self.network() as network1:
with self.network() as network2:
networks = [network1['network']['id'],
network2['network']['id']]
l2_policies = [self.create_l2_policy(network_id=networks[0]),
self.create_l2_policy(network_id=networks[1])]
self._test_list_resources(
'l2_policy', [l2_policies[0]],
query_params='network_id=' + networks[0])
def test_list_es(self):
with self.subnet(cidr='10.10.1.0/24') as subnet1:
with self.subnet(cidr='10.10.2.0/24') as subnet2:
subnets = [subnet1['subnet']['id'], subnet2['subnet']['id']]
external_segments = [
self.create_external_segment(subnet_id=subnets[0]),
self.create_external_segment(subnet_id=subnets[1])]
self._test_list_resources(
'external_segment', [external_segments[0]],
query_params='subnet_id=' + subnets[0])