Merge pull request #464 from Cerberus98/master
Remove unused network_strategy code
This commit is contained in:
@@ -118,7 +118,7 @@ def rfc3041_ip(port_id, cidr):
|
||||
|
||||
|
||||
def ip_address_failure(network_id):
|
||||
if STRATEGY.is_parent_network(network_id):
|
||||
if STRATEGY.is_provider_network(network_id):
|
||||
return q_exc.ProviderNetworkOutOfIps(net_id=network_id)
|
||||
else:
|
||||
return exceptions.IpAddressGenerationFailure(net_id=network_id)
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
|
||||
import json
|
||||
|
||||
from neutron.common import exceptions
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
|
||||
@@ -39,18 +38,13 @@ class JSONStrategy(object):
|
||||
self._compile_strategy(strategy)
|
||||
|
||||
def _compile_strategy(self, strategy):
|
||||
strategy = json.loads(strategy)
|
||||
for network, definition in strategy.iteritems():
|
||||
if "children" in definition:
|
||||
for _, child_net in definition["children"].iteritems():
|
||||
self.reverse_strategy[child_net] = network
|
||||
self.strategy = strategy
|
||||
self.strategy = json.loads(strategy)
|
||||
|
||||
def split_network_ids(self, context, net_ids):
|
||||
assignable = []
|
||||
tenant = []
|
||||
for net_id in net_ids:
|
||||
if self.is_parent_network(net_id):
|
||||
if self.is_provider_network(net_id):
|
||||
assignable.append(net_id)
|
||||
else:
|
||||
tenant.append(net_id)
|
||||
@@ -62,25 +56,8 @@ class JSONStrategy(object):
|
||||
def get_assignable_networks(self, context):
|
||||
return self.strategy.keys()
|
||||
|
||||
def is_parent_network(self, net_id):
|
||||
def is_provider_network(self, net_id):
|
||||
return self.strategy.get(net_id) is not None
|
||||
|
||||
def get_parent_network(self, net_id):
|
||||
net = self.reverse_strategy.get(net_id)
|
||||
if net:
|
||||
return net
|
||||
|
||||
# No matches, this is the highest network
|
||||
return net_id
|
||||
|
||||
def best_match_network_id(self, context, net_id, key):
|
||||
net = self.strategy.get(net_id)
|
||||
if net:
|
||||
child_net = net["children"].get(key)
|
||||
if not child_net:
|
||||
raise exceptions.NetworkNotFound(net_id=net_id)
|
||||
return child_net
|
||||
return net_id
|
||||
|
||||
|
||||
STRATEGY = JSONStrategy()
|
||||
|
||||
@@ -38,7 +38,7 @@ STRATEGY = network_strategy.STRATEGY
|
||||
# HACK(amir): RM9305: do not allow a tenant to associate a network to a port
|
||||
# that does not belong to them unless it is publicnet or servicenet
|
||||
def _raise_if_unauthorized(tenant_id, net):
|
||||
if (not STRATEGY.is_parent_network(net["id"]) and
|
||||
if (not STRATEGY.is_provider_network(net["id"]) and
|
||||
net["tenant_id"] != tenant_id):
|
||||
raise exceptions.NotAuthorized()
|
||||
|
||||
@@ -130,7 +130,7 @@ def create_port(context, port):
|
||||
quota.QUOTAS.limit_check(context, context.tenant_id,
|
||||
fixed_ips_per_port=len(fixed_ips))
|
||||
|
||||
if not STRATEGY.is_parent_network(net_id):
|
||||
if not STRATEGY.is_provider_network(net_id):
|
||||
# We don't honor segmented networks when they aren't "shared"
|
||||
segment_id = None
|
||||
port_count = db_api.port_count_all(context, network_id=[net_id],
|
||||
@@ -164,7 +164,8 @@ def create_port(context, port):
|
||||
def _allocate_ips(fixed_ips, net, port_id, segment_id, mac):
|
||||
fixed_ip_kwargs = {}
|
||||
if fixed_ips:
|
||||
if STRATEGY.is_parent_network(net_id) and not context.is_admin:
|
||||
if (STRATEGY.is_provider_network(net_id) and
|
||||
not context.is_admin):
|
||||
raise exceptions.NotAuthorized()
|
||||
|
||||
ips, subnets = split_and_validate_requested_subnets(context,
|
||||
@@ -298,7 +299,7 @@ def update_port(context, id, port):
|
||||
new_security_groups = utils.pop_param(port_dict, "security_groups")
|
||||
if Capabilities.SECURITY_GROUPS not in CONF.QUARK.environment_capabilities:
|
||||
if new_security_groups is not None:
|
||||
if not STRATEGY.is_parent_network(port_db["network_id"]):
|
||||
if not STRATEGY.is_provider_network(port_db["network_id"]):
|
||||
raise q_exc.TenantNetworkSecurityGroupsNotImplemented()
|
||||
|
||||
if new_security_groups is not None and not port_db["device_id"]:
|
||||
|
||||
@@ -340,11 +340,6 @@ def get_subnet(context, id, fields=None):
|
||||
if not subnet:
|
||||
raise exceptions.SubnetNotFound(subnet_id=id)
|
||||
|
||||
# Check the network_id against the strategies
|
||||
net_id = subnet["network_id"]
|
||||
net_id = STRATEGY.get_parent_network(net_id)
|
||||
subnet["network_id"] = net_id
|
||||
|
||||
cache = subnet.get("_allocation_pool_cache")
|
||||
if not cache:
|
||||
new_cache = subnet.allocation_pools
|
||||
|
||||
@@ -53,7 +53,7 @@ def _is_default_route(route):
|
||||
|
||||
|
||||
def _make_network_dict(network, fields=None):
|
||||
shared_net = STRATEGY.is_parent_network(network["id"])
|
||||
shared_net = STRATEGY.is_provider_network(network["id"])
|
||||
res = {"id": network["id"],
|
||||
"name": network.get("name"),
|
||||
"tenant_id": network.get("tenant_id"),
|
||||
@@ -77,7 +77,7 @@ def _make_network_dict(network, fields=None):
|
||||
def _make_subnet_dict(subnet, fields=None):
|
||||
dns_nameservers = [str(netaddr.IPAddress(dns["ip"]))
|
||||
for dns in subnet.get("dns_nameservers")]
|
||||
net_id = STRATEGY.get_parent_network(subnet["network_id"])
|
||||
net_id = subnet["network_id"]
|
||||
|
||||
res = {"id": subnet.get("id"),
|
||||
"name": subnet.get("name"),
|
||||
@@ -86,7 +86,7 @@ def _make_subnet_dict(subnet, fields=None):
|
||||
"ip_version": subnet.get("ip_version"),
|
||||
"dns_nameservers": dns_nameservers or [],
|
||||
"cidr": subnet.get("cidr"),
|
||||
"shared": STRATEGY.is_parent_network(net_id),
|
||||
"shared": STRATEGY.is_provider_network(net_id),
|
||||
"enable_dhcp": None}
|
||||
|
||||
if CONF.QUARK.show_subnet_ip_policy_id:
|
||||
@@ -163,7 +163,7 @@ def _ip_port_dict(ip, port, fields=None):
|
||||
def _port_dict(port, fields=None):
|
||||
res = {"id": port.get("id"),
|
||||
"name": port.get("name"),
|
||||
"network_id": STRATEGY.get_parent_network(port["network_id"]),
|
||||
"network_id": port["network_id"],
|
||||
"tenant_id": port.get("tenant_id"),
|
||||
"mac_address": port.get("mac_address"),
|
||||
"admin_state_up": port.get("admin_state_up"),
|
||||
@@ -263,9 +263,8 @@ def _make_route_dict(route):
|
||||
|
||||
|
||||
def _make_ip_dict(address):
|
||||
net_id = STRATEGY.get_parent_network(address["network_id"])
|
||||
return {"id": address["id"],
|
||||
"network_id": net_id,
|
||||
"network_id": address["network_id"],
|
||||
"address": address.formatted(),
|
||||
"port_ids": [assoc.port_id
|
||||
for assoc in address["associations"]],
|
||||
|
||||
@@ -452,7 +452,7 @@ class TestQuarkCreatePortsSameDevBadRequest(test_quark_plugin.TestQuarkPlugin):
|
||||
for key in expected.keys():
|
||||
self.assertEqual(result[key], expected[key])
|
||||
|
||||
@mock.patch("quark.network_strategy.JSONStrategy.is_parent_network")
|
||||
@mock.patch("quark.network_strategy.JSONStrategy.is_provider_network")
|
||||
def test_create_providernet_port_fixed_ip_not_authorized(self, is_parent):
|
||||
is_parent.return_value = True
|
||||
network = dict(id='1', tenant_id=self.context.tenant_id)
|
||||
@@ -474,7 +474,7 @@ class TestQuarkCreatePortsSameDevBadRequest(test_quark_plugin.TestQuarkPlugin):
|
||||
with self.assertRaises(exceptions.NotAuthorized):
|
||||
self.plugin.create_port(self.context, port)
|
||||
|
||||
@mock.patch("quark.network_strategy.JSONStrategy.is_parent_network")
|
||||
@mock.patch("quark.network_strategy.JSONStrategy.is_provider_network")
|
||||
def test_create_providernet_port_fixed_ip_wrong_segment(self, is_parent):
|
||||
is_parent.return_value = True
|
||||
network = dict(id='1', tenant_id=self.context.tenant_id)
|
||||
@@ -773,7 +773,7 @@ class TestQuarkUpdatePortSecurityGroups(test_quark_plugin.TestQuarkPlugin):
|
||||
mock.patch("quark.ipam.QuarkIpam.deallocate_ips_by_port"),
|
||||
mock.patch("neutron.quota.QuotaEngine.limit_check"),
|
||||
mock.patch("quark.plugin_modules.ports.STRATEGY"
|
||||
".is_parent_network"),
|
||||
".is_provider_network"),
|
||||
mock.patch("quark.db.api.security_group_find"),
|
||||
mock.patch("quark.drivers.base.BaseDriver.update_port")
|
||||
) as (port_find, port_update, alloc_ip, dealloc_ip, limit_check,
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
|
||||
import json
|
||||
|
||||
from neutron.common import exceptions
|
||||
from oslo_config import cfg
|
||||
|
||||
from quark import network_strategy
|
||||
@@ -27,8 +26,7 @@ class TestJSONStrategy(test_base.TestBase):
|
||||
self.context = None
|
||||
self.strategy = {"public_network":
|
||||
{"required": True,
|
||||
"bridge": "xenbr0",
|
||||
"children": {"nova": "child_net"}}}
|
||||
"bridge": "xenbr0"}}
|
||||
strategy_json = json.dumps(self.strategy)
|
||||
cfg.CONF.set_override("default_net_strategy", strategy_json, "QUARK")
|
||||
|
||||
@@ -57,31 +55,3 @@ class TestJSONStrategy(test_base.TestBase):
|
||||
self.assertTrue("foo_net" not in assignable)
|
||||
self.assertTrue("public_network" not in tenant)
|
||||
self.assertTrue("public_network" in assignable)
|
||||
|
||||
def test_get_parent_network(self):
|
||||
json_strategy = network_strategy.JSONStrategy(None)
|
||||
parent_net = json_strategy.get_parent_network("child_net")
|
||||
self.assertEqual(parent_net, "public_network")
|
||||
|
||||
def test_get_parent_network_no_parent(self):
|
||||
json_strategy = network_strategy.JSONStrategy(None)
|
||||
parent_net = json_strategy.get_parent_network("bar_network")
|
||||
self.assertEqual(parent_net, "bar_network")
|
||||
|
||||
def test_best_match_network_id(self):
|
||||
json_strategy = network_strategy.JSONStrategy(None)
|
||||
net = json_strategy.best_match_network_id(self.context,
|
||||
"public_network", "nova")
|
||||
self.assertEqual(net, "child_net")
|
||||
|
||||
def test_best_match_network_net_not_in_strategy(self):
|
||||
json_strategy = network_strategy.JSONStrategy(None)
|
||||
net = json_strategy.best_match_network_id(self.context,
|
||||
"foo_net", "nova")
|
||||
self.assertEqual(net, "foo_net")
|
||||
|
||||
def test_best_match_network_no_valid_child(self):
|
||||
json_strategy = network_strategy.JSONStrategy(None)
|
||||
with self.assertRaises(exceptions.NetworkNotFound):
|
||||
json_strategy.best_match_network_id(self.context,
|
||||
"public_network", "derpa")
|
||||
|
||||
Reference in New Issue
Block a user