Revert "Nested domain parameters support for openShift networks"
This reverts commit 537cc95359.
Change-Id: I484ea800416d9d6b11fd6824c42e1829ceb70b1a
This commit is contained in:
@@ -73,13 +73,6 @@ apic_opts = [
|
||||
"this should only be used temporarily to enable "
|
||||
"cleaning up overlapping routed subnets created before "
|
||||
"overlap checking was implemented.")),
|
||||
cfg.BoolOpt('use_nested_domain_params_for_openshift_network',
|
||||
default=False,
|
||||
help=("Set to True to allow extension driver to use nested "
|
||||
"domain parameters configured by the user in AIM for "
|
||||
"networks created by OpenShift installer. Note that "
|
||||
"this feature will be removed once a proper fix is in "
|
||||
"place for OpenShift installer.")),
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -13,11 +13,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import re
|
||||
|
||||
from aim.api import infra as aim_infra
|
||||
from aim.api import resource as aim_res
|
||||
from aim import context as aim_context
|
||||
from aim import exceptions as aim_exc
|
||||
from neutron.api import extensions
|
||||
from neutron.db import api as db_api
|
||||
@@ -34,7 +30,6 @@ from gbpservice.neutron.plugins.ml2plus.drivers.apic_aim import (
|
||||
from gbpservice.neutron.plugins.ml2plus.drivers.apic_aim import db
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
OPENSHIFT_NET_NAME_RE_STR = '^(.+)-([0-9a-z]+)-openshift$'
|
||||
|
||||
|
||||
class ApicExtensionDriver(api_plus.ExtensionDriver,
|
||||
@@ -44,7 +39,6 @@ class ApicExtensionDriver(api_plus.ExtensionDriver,
|
||||
def __init__(self):
|
||||
LOG.info("APIC AIM ED __init__")
|
||||
self._mechanism_driver = None
|
||||
self.openshift_net_name_re = re.compile(OPENSHIFT_NET_NAME_RE_STR)
|
||||
|
||||
def initialize(self):
|
||||
LOG.info("APIC AIM ED initializing")
|
||||
@@ -107,75 +101,30 @@ class ApicExtensionDriver(api_plus.ExtensionDriver,
|
||||
bgp_type = data.get(cisco_apic.BGP_TYPE, "default_export")
|
||||
asn = data.get(cisco_apic.BGP_ASN, "0")
|
||||
self.validate_bgp_params(data)
|
||||
|
||||
nested_domain_name = data.get(cisco_apic.NESTED_DOMAIN_NAME)
|
||||
nested_domain_type = data.get(cisco_apic.NESTED_DOMAIN_TYPE)
|
||||
nested_domain_infra_vlan = data.get(
|
||||
cisco_apic.NESTED_DOMAIN_INFRA_VLAN)
|
||||
nested_domain_svc_vlan = data.get(
|
||||
cisco_apic.NESTED_DOMAIN_SERVICE_VLAN)
|
||||
nested_domain_node_vlan = data.get(
|
||||
cisco_apic.NESTED_DOMAIN_NODE_NETWORK_VLAN)
|
||||
nested_domain_allowed_vlan_list = []
|
||||
if cisco_apic.VLANS_LIST in (data.get(
|
||||
cisco_apic.NESTED_DOMAIN_ALLOWED_VLANS) or {}):
|
||||
nested_domain_allowed_vlan_list = data[
|
||||
cisco_apic.NESTED_DOMAIN_ALLOWED_VLANS][cisco_apic.VLANS_LIST]
|
||||
|
||||
# REVISIT(kentwu): We will need to deprecate this feature once
|
||||
# there is a proper fix in the OpenShift installer.
|
||||
# If user has provided any of these nested domain parameters
|
||||
# then we don't need to use any of them from AIM.
|
||||
if (self._md.use_nested_domain_params_for_openshift_network and not
|
||||
(nested_domain_name or nested_domain_type or
|
||||
nested_domain_infra_vlan or nested_domain_svc_vlan or
|
||||
nested_domain_node_vlan or nested_domain_allowed_vlan_list)):
|
||||
match = self.openshift_net_name_re.match(result['name'])
|
||||
if match:
|
||||
cluster_name = match.group(1)
|
||||
nested_parameter = aim_infra.NestedParameter(
|
||||
project_id=result['project_id'],
|
||||
cluster_name=cluster_name)
|
||||
aim_ctx = aim_context.AimContext(plugin_context.session)
|
||||
nested_parameter = self._md.aim.get(aim_ctx, nested_parameter)
|
||||
if nested_parameter:
|
||||
nested_domain_name = nested_parameter.domain_name
|
||||
nested_domain_type = nested_parameter.domain_type
|
||||
nested_domain_infra_vlan = (
|
||||
nested_parameter.domain_infra_vlan)
|
||||
nested_domain_svc_vlan = (
|
||||
nested_parameter.domain_service_vlan)
|
||||
nested_domain_node_vlan = (
|
||||
nested_parameter.domain_node_vlan)
|
||||
for vlan_range in nested_parameter.vlan_range_list:
|
||||
start = int(vlan_range['start'])
|
||||
end = int(vlan_range['end'])
|
||||
nested_domain_allowed_vlan_list.extend(
|
||||
range(start, end + 1))
|
||||
nested_domain_allowed_vlan_list = list(
|
||||
set(nested_domain_allowed_vlan_list))
|
||||
|
||||
res_dict = {cisco_apic.SVI: is_svi,
|
||||
cisco_apic.BGP: is_bgp_enabled,
|
||||
cisco_apic.BGP_TYPE: bgp_type,
|
||||
cisco_apic.BGP_ASN: asn,
|
||||
cisco_apic.NESTED_DOMAIN_NAME: nested_domain_name,
|
||||
cisco_apic.NESTED_DOMAIN_TYPE: nested_domain_type,
|
||||
cisco_apic.NESTED_DOMAIN_NAME:
|
||||
data.get(cisco_apic.NESTED_DOMAIN_NAME),
|
||||
cisco_apic.NESTED_DOMAIN_TYPE:
|
||||
data.get(cisco_apic.NESTED_DOMAIN_TYPE),
|
||||
cisco_apic.NESTED_DOMAIN_INFRA_VLAN:
|
||||
nested_domain_infra_vlan,
|
||||
data.get(cisco_apic.NESTED_DOMAIN_INFRA_VLAN),
|
||||
cisco_apic.NESTED_DOMAIN_SERVICE_VLAN:
|
||||
nested_domain_svc_vlan,
|
||||
data.get(cisco_apic.NESTED_DOMAIN_SERVICE_VLAN),
|
||||
cisco_apic.NESTED_DOMAIN_NODE_NETWORK_VLAN:
|
||||
nested_domain_node_vlan,
|
||||
data.get(cisco_apic.NESTED_DOMAIN_NODE_NETWORK_VLAN),
|
||||
cisco_apic.EXTRA_PROVIDED_CONTRACTS:
|
||||
data.get(cisco_apic.EXTRA_PROVIDED_CONTRACTS),
|
||||
cisco_apic.EXTRA_CONSUMED_CONTRACTS:
|
||||
data.get(cisco_apic.EXTRA_CONSUMED_CONTRACTS),
|
||||
}
|
||||
if nested_domain_allowed_vlan_list:
|
||||
if cisco_apic.VLANS_LIST in (data.get(
|
||||
cisco_apic.NESTED_DOMAIN_ALLOWED_VLANS) or {}):
|
||||
res_dict.update({cisco_apic.NESTED_DOMAIN_ALLOWED_VLANS:
|
||||
nested_domain_allowed_vlan_list})
|
||||
|
||||
data.get(cisco_apic.NESTED_DOMAIN_ALLOWED_VLANS)[
|
||||
cisco_apic.VLANS_LIST]})
|
||||
self.set_network_extn_db(plugin_context.session, result['id'],
|
||||
res_dict)
|
||||
result.update(res_dict)
|
||||
|
||||
@@ -263,9 +263,6 @@ class ApicMechanismDriver(api_plus.MechanismDriver,
|
||||
"faults and loss of connectivity, so please eliminate "
|
||||
"any existing overlap and set this option to False "
|
||||
"(the default) as soon as possible.")
|
||||
self.use_nested_domain_params_for_openshift_network = (
|
||||
cfg.CONF.ml2_apic_aim.
|
||||
use_nested_domain_params_for_openshift_network)
|
||||
self._setup_nova_vm_update()
|
||||
local_api.QUEUE_OUT_OF_PROCESS_NOTIFICATIONS = True
|
||||
self._ensure_static_resources()
|
||||
|
||||
@@ -5271,26 +5271,11 @@ class TestExtensionAttributes(ApicAimTestCase):
|
||||
def test_network_with_nested_domain_lifecycle(self):
|
||||
session = db_api.get_reader_session()
|
||||
extn = extn_db.ExtensionDbMixin()
|
||||
|
||||
# This should prove to be a no-op.
|
||||
self.driver.use_nested_domain_params_for_openshift_network = True
|
||||
aim_ctx = aim_context.AimContext(self.db_session)
|
||||
nested_parameter = aim_infra.NestedParameter(
|
||||
project_id='tenant_1', cluster_name='cluster', domain_name='foo',
|
||||
domain_type='myk8s', domain_infra_vlan='4093',
|
||||
domain_service_vlan='1000', domain_node_vlan='1001',
|
||||
vlan_range_list=[{'start': '2', 'end': '2'},
|
||||
{'start': '3', 'end': '8'},
|
||||
{'start': '4', 'end': '9'},
|
||||
{'start': '11', 'end': '14'}])
|
||||
self.aim_mgr.create(aim_ctx, nested_parameter)
|
||||
|
||||
vlan_dict = {'vlans_list': ['2', '3', '4', '3'],
|
||||
'vlan_ranges': [{'start': '6', 'end': '9'},
|
||||
{'start': '11', 'end': '14'}]}
|
||||
expt_vlans = [2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14]
|
||||
kwargs = {'tenant_id': 'tenant_1',
|
||||
'apic:nested_domain_name': 'myk8s',
|
||||
kwargs = {'apic:nested_domain_name': 'myk8s',
|
||||
'apic:nested_domain_type': 'k8s',
|
||||
'apic:nested_domain_infra_vlan': '4093',
|
||||
'apic:nested_domain_service_vlan': '1000',
|
||||
@@ -5298,7 +5283,7 @@ class TestExtensionAttributes(ApicAimTestCase):
|
||||
'apic:nested_domain_allowed_vlans': vlan_dict,
|
||||
}
|
||||
|
||||
net1 = self._make_network(self.fmt, 'cluster-asdf-openshift', True,
|
||||
net1 = self._make_network(self.fmt, 'net1', True,
|
||||
arg_list=tuple(kwargs.keys()),
|
||||
**kwargs)['network']
|
||||
self.assertEqual('myk8s', net1['apic:nested_domain_name'])
|
||||
@@ -5338,63 +5323,6 @@ class TestExtensionAttributes(ApicAimTestCase):
|
||||
network_id=net1['id']).all())
|
||||
self.assertEqual([], db_vlans)
|
||||
|
||||
def test_openshift_network_lifecycle(self):
|
||||
session = db_api.get_writer_session()
|
||||
extn = extn_db.ExtensionDbMixin()
|
||||
|
||||
self.driver.use_nested_domain_params_for_openshift_network = True
|
||||
aim_ctx = aim_context.AimContext(self.db_session)
|
||||
nested_parameter = aim_infra.NestedParameter(
|
||||
project_id='tenant_1', cluster_name='cluster', domain_name='foo',
|
||||
domain_type='myk8s', domain_infra_vlan='4093',
|
||||
domain_service_vlan='1000', domain_node_vlan='1001',
|
||||
vlan_range_list=[{'start': '2', 'end': '2'},
|
||||
{'start': '3', 'end': '8'},
|
||||
{'start': '4', 'end': '9'},
|
||||
{'start': '11', 'end': '14'}])
|
||||
self.aim_mgr.create(aim_ctx, nested_parameter)
|
||||
|
||||
expt_vlans = [2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14]
|
||||
net = self._make_network(self.fmt, 'cluster-asdf-openshift',
|
||||
True, tenant_id='tenant_1')['network']
|
||||
self.assertEqual('foo', net['apic:nested_domain_name'])
|
||||
self.assertEqual('myk8s', net['apic:nested_domain_type'])
|
||||
self.assertEqual(4093, net['apic:nested_domain_infra_vlan'])
|
||||
self.assertEqual(1000, net['apic:nested_domain_service_vlan'])
|
||||
self.assertEqual(1001, net['apic:nested_domain_node_network_vlan'])
|
||||
self.assertItemsEqual(expt_vlans,
|
||||
net['apic:nested_domain_allowed_vlans'])
|
||||
|
||||
# Test the update.
|
||||
vlan_dict = {'vlans_list': ['2', '3', '4', '3']}
|
||||
expt_vlans = [2, 3, 4]
|
||||
data = {'network': {'apic:nested_domain_name': 'new-myk8s',
|
||||
'apic:nested_domain_type': 'new-k8s',
|
||||
'apic:nested_domain_infra_vlan': '1093',
|
||||
'apic:nested_domain_service_vlan': '2000',
|
||||
'apic:nested_domain_node_network_vlan': '2001',
|
||||
'apic:nested_domain_allowed_vlans': vlan_dict}}
|
||||
req = self.new_update_request('networks', data, net['id'],
|
||||
self.fmt)
|
||||
resp = req.get_response(self.api)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
net = self.deserialize(self.fmt, resp)['network']
|
||||
self.assertEqual('new-myk8s', net['apic:nested_domain_name'])
|
||||
self.assertEqual('new-k8s', net['apic:nested_domain_type'])
|
||||
self.assertEqual(1093, net['apic:nested_domain_infra_vlan'])
|
||||
self.assertEqual(2000, net['apic:nested_domain_service_vlan'])
|
||||
self.assertEqual(2001, net['apic:nested_domain_node_network_vlan'])
|
||||
self.assertItemsEqual(expt_vlans,
|
||||
net['apic:nested_domain_allowed_vlans'])
|
||||
|
||||
# Test the delete.
|
||||
self._delete('networks', net['id'])
|
||||
self.assertFalse(extn.get_network_extn_db(session, net['id']))
|
||||
db_vlans = (session.query(
|
||||
extn_db.NetworkExtNestedDomainAllowedVlansDb).filter_by(
|
||||
network_id=net['id']).all())
|
||||
self.assertEqual([], db_vlans)
|
||||
|
||||
def test_network_with_extra_contracts_lifecycle(self):
|
||||
session = db_api.get_reader_session()
|
||||
extn = extn_db.ExtensionDbMixin()
|
||||
|
||||
Reference in New Issue
Block a user