Merge pull request #224 from rackerlabs/revert-219-rm9305
Revert "RM9305"
This commit is contained in:
commit
bc335ced59
@ -143,21 +143,22 @@ def _model_query(context, model, filters, fields=None):
|
||||
if filters.get("cidr"):
|
||||
model_filters.append(model.cidr == filters["cidr"])
|
||||
|
||||
# Inject the tenant id if none is set. We don't need unqualified queries.
|
||||
# This works even when a non-shared, other-tenant owned network is passed
|
||||
# in because the authZ checks that happen in Neutron above us yank it back
|
||||
# out of the result set.
|
||||
if not filters and not context.is_admin:
|
||||
filters["tenant_id"] = [context.tenant_id]
|
||||
# Begin:Added for RM6299
|
||||
if filters.get("used_by_tenant_id"):
|
||||
model_filters.append(model.used_by_tenant_id.in_(
|
||||
filters["used_by_tenant_id"]))
|
||||
|
||||
if not filters.get("shared"):
|
||||
filters["tenant_id"] = [context.tenant_id]
|
||||
|
||||
if filters.get("tenant_id"):
|
||||
if model == models.IPAddress:
|
||||
model_filters.append(model.used_by_tenant_id.in_(
|
||||
filters["tenant_id"]))
|
||||
else:
|
||||
model_filters.append(model.tenant_id.in_(filters["tenant_id"]))
|
||||
|
||||
# End: Added for RM6299
|
||||
if filters.get("device_owner"):
|
||||
model_filters.append(model.device_owner.in_(filters["device_owner"]))
|
||||
@ -194,8 +195,6 @@ def scoped(f):
|
||||
|
||||
@scoped
|
||||
def port_find(context, fields=None, **filters):
|
||||
filters.pop("shared", None)
|
||||
|
||||
query = context.session.query(models.Port).options(
|
||||
orm.joinedload(models.Port.ip_addresses))
|
||||
model_filters = _model_query(context, models.Port, filters)
|
||||
@ -311,7 +310,6 @@ def ip_address_find(context, lock_mode=False, **filters):
|
||||
|
||||
@scoped
|
||||
def mac_address_find(context, lock_mode=False, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(models.MacAddress)
|
||||
if lock_mode:
|
||||
query = query.with_lockmode("update")
|
||||
@ -336,7 +334,6 @@ def mac_address_range_find_allocation_counts(context, address=None):
|
||||
|
||||
@scoped
|
||||
def mac_address_range_find(context, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(models.MacAddressRange)
|
||||
model_filters = _model_query(context, models.MacAddressRange, filters)
|
||||
return query.filter(*model_filters)
|
||||
@ -399,6 +396,7 @@ def network_find(context, fields=None, **filters):
|
||||
return []
|
||||
else:
|
||||
defaults.insert(0, INVERT_DEFAULTS)
|
||||
filters.pop("shared")
|
||||
return _network_find(context, fields, defaults=defaults, **filters)
|
||||
|
||||
|
||||
@ -457,7 +455,6 @@ def network_delete(context, network):
|
||||
|
||||
|
||||
def subnet_find_allocation_counts(context, net_id, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(models.Subnet,
|
||||
sql_func.count(models.IPAddress.address).
|
||||
label("count")).with_lockmode('update')
|
||||
@ -494,7 +491,6 @@ def subnet_find(context, **filters):
|
||||
|
||||
|
||||
def subnet_count_all(context, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(sql_func.count(models.Subnet.id))
|
||||
if filters.get("network_id"):
|
||||
query = query.filter(
|
||||
@ -523,7 +519,6 @@ def subnet_update(context, subnet, **kwargs):
|
||||
|
||||
@scoped
|
||||
def route_find(context, fields=None, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(models.Route)
|
||||
model_filters = _model_query(context, models.Route, filters)
|
||||
return query.filter(*model_filters)
|
||||
@ -563,7 +558,6 @@ def dns_delete(context, dns):
|
||||
|
||||
@scoped
|
||||
def security_group_find(context, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(models.SecurityGroup).options(
|
||||
orm.joinedload(models.SecurityGroup.rules))
|
||||
model_filters = _model_query(context, models.SecurityGroup, filters)
|
||||
@ -590,7 +584,6 @@ def security_group_delete(context, group):
|
||||
|
||||
@scoped
|
||||
def security_group_rule_find(context, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(models.SecurityGroupRule)
|
||||
model_filters = _model_query(context, models.SecurityGroupRule, filters)
|
||||
return query.filter(*model_filters)
|
||||
@ -629,7 +622,6 @@ def ip_policy_create(context, **ip_policy_dict):
|
||||
|
||||
@scoped
|
||||
def ip_policy_find(context, **filters):
|
||||
filters.pop("shared", None)
|
||||
query = context.session.query(models.IPPolicy)
|
||||
model_filters = _model_query(context, models.IPPolicy, filters)
|
||||
return query.filter(*model_filters)
|
||||
|
@ -95,10 +95,9 @@ class QuarkTestIPFiltering(QuarkIpamBaseFunctionalTest):
|
||||
id = int(res[0].get("id"))
|
||||
self.assertEqual(self.ip_address1["id"], id)
|
||||
res = self.plugin.get_ip_addresses(self.context, tenant_id="456")
|
||||
self.assertEqual(2, len(res))
|
||||
self.assertEqual(self.ip_address1["id"], int(res[0].get("id")))
|
||||
self.assertEqual(int(self.context.tenant_id),
|
||||
int(res[0]["used_by_tenant_id"]))
|
||||
self.assertEqual(1, len(res))
|
||||
id = int(res[0].get("id"))
|
||||
self.assertEqual(self.ip_address2["id"], id)
|
||||
|
||||
def test_basic_ip_filtering_with_same_tenant_id_with_different_ip(self):
|
||||
with self._stubs(self.network, self.subnet,
|
||||
@ -115,18 +114,15 @@ class QuarkTestIPFiltering(QuarkIpamBaseFunctionalTest):
|
||||
with self._stubs(self.network, self.subnet, self.ip_address1,
|
||||
self.ip_address2, self.ip_address3):
|
||||
res = self.plugin.get_ip_addresses(self.context)
|
||||
self.assertEqual(2, len(res))
|
||||
self.assertEqual(3, len(res))
|
||||
|
||||
def test_basic_ip_filtering_with_tenant_id_without_ip(self):
|
||||
with self._stubs(self.network, self.subnet,
|
||||
self.ip_address1,
|
||||
self.ip_address2,
|
||||
self.ip_address3):
|
||||
res = self.plugin.get_ip_addresses(self.context)
|
||||
self.assertEqual(2, len(res))
|
||||
self.assertEqual(self.ip_address1["id"], int(res[0].get("id")))
|
||||
self.assertEqual(int(self.context.tenant_id),
|
||||
int(res[0]["used_by_tenant_id"]))
|
||||
res = self.plugin.get_ip_addresses(self.context, tenant_id="1234")
|
||||
self.assertEqual(0, len(res))
|
||||
|
||||
def test_basic_ip_filtering_with_used_by_tenant_id(self):
|
||||
with self._stubs(self.network, self.subnet, self.ip_address1,
|
||||
@ -138,7 +134,9 @@ class QuarkTestIPFiltering(QuarkIpamBaseFunctionalTest):
|
||||
self.assertEqual(self.ip_address1["id"], id)
|
||||
res = self.plugin.get_ip_addresses(self.context,
|
||||
used_by_tenant_id="456")
|
||||
self.assertEqual(0, len(res))
|
||||
self.assertEqual(1, len(res))
|
||||
id = int(res[0].get("id"))
|
||||
self.assertEqual(self.ip_address2["id"], id)
|
||||
|
||||
def test_filtering_with_same_used_by_tenant_id_with_different_ip(self):
|
||||
with self._stubs(self.network, self.subnet,
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright 2014 Openstack Foundation
|
||||
# Copyright 2013 Openstack Foundation
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
@ -154,7 +154,6 @@ class TestQuarkGetNetworksShared(test_quark_plugin.TestQuarkPlugin):
|
||||
self.assertEqual(1, len(net['subnets']))
|
||||
net_find.assert_called_with(self.context, None,
|
||||
join_subnets=True,
|
||||
shared=[True],
|
||||
defaults=["public_network"])
|
||||
|
||||
def test_get_networks_shared_false(self):
|
||||
@ -166,7 +165,6 @@ class TestQuarkGetNetworksShared(test_quark_plugin.TestQuarkPlugin):
|
||||
invert = db_api.INVERT_DEFAULTS
|
||||
self.plugin.get_networks(self.context, {"shared": [False]})
|
||||
net_find.assert_called_with(self.context, None, join_subnets=True,
|
||||
shared=[False],
|
||||
defaults=[invert, "public_network"])
|
||||
|
||||
def test_get_networks_no_shared(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user