Revert "Nested domain parameters support for openShift networks"

This reverts commit 537cc95359.

Change-Id: I484ea800416d9d6b11fd6824c42e1829ceb70b1a
This commit is contained in:
Kent Wu
2020-03-19 11:08:32 -07:00
parent 097ebcf787
commit 8417fecc86
4 changed files with 13 additions and 146 deletions

View File

@@ -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.")),
]

View File

@@ -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)

View File

@@ -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()

View File

@@ -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()