From 19ad4bcee4c1ff3bf2d2093e14727866412a694a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89douard=20Thuleau?= Date: Tue, 20 Dec 2016 15:09:06 +0100 Subject: [PATCH] Support the neutron lib decomposition (step 2) From recent neutron release (since newton), a reusable library code for neutron names 'neutron-lib' was introduced to stabalize some of the common interfaces. That patch permits to support that new library. Change-Id: I246bd902136d99a8e2ec97637690cae38310a2ef Closes-Bug: #1650339 --- .../extensions/contrail.py | 6 +-- neutron_plugin_contrail/extensions/ipam.py | 26 ++++++------ .../loadbalancercustomattributes.py | 24 +++++------ neutron_plugin_contrail/extensions/policy.py | 26 ++++++------ .../extensions/serviceinterface.py | 15 ++++--- .../extensions/vfbinding.py | 21 +++++----- .../extensions/vpcroutetable.py | 18 ++++---- .../plugins/opencontrail/contrail_plugin.py | 23 +++++++---- .../opencontrail/contrail_plugin_base.py | 41 +++++++++++++------ .../opencontrail/contrail_plugin_v3.py | 18 +++++--- .../loadbalancer/loadbalancer_db.py | 19 ++++++--- .../loadbalancer/loadbalancer_member.py | 12 ++++-- .../loadbalancer/loadbalancer_pool.py | 8 ++-- .../opencontrail/loadbalancer/plugin.py | 5 ++- .../loadbalancer/resource_manager.py | 33 +++++++++++---- .../opencontrail/loadbalancer/utils.py | 9 ++-- .../opencontrail/loadbalancer/v2/listener.py | 20 ++++++--- .../loadbalancer/v2/loadbalancer.py | 34 ++++++++++----- .../loadbalancer/v2/loadbalancer_db.py | 15 ++++--- .../loadbalancer/v2/loadbalancer_member.py | 7 +++- .../loadbalancer/v2/loadbalancer_pool.py | 9 ++-- .../opencontrail/loadbalancer/virtual_ip.py | 40 +++++++++++++----- .../vnc_client/fip_res_handler.py | 7 +++- .../vnc_client/router_res_handler.py | 11 +++-- .../vnc_client/sgrule_res_handler.py | 5 ++- .../vnc_client/vmi_res_handler.py | 15 ++++--- .../opencontrail/vnc_client/vn_res_handler.py | 9 ++-- 27 files changed, 305 insertions(+), 171 deletions(-) diff --git a/neutron_plugin_contrail/extensions/contrail.py b/neutron_plugin_contrail/extensions/contrail.py index fb74936..e8d9685 100644 --- a/neutron_plugin_contrail/extensions/contrail.py +++ b/neutron_plugin_contrail/extensions/contrail.py @@ -1,7 +1,7 @@ try: - from neutron_lib.api import extensions + from neutron.api.extensions import ExtensionDescriptor except ImportError: - from neutron.api import extensions + from neutron_lib.api.extensions import ExtensionDescriptor EXTENDED_ATTRIBUTES_2_0 = { @@ -46,7 +46,7 @@ } -class Contrail(extensions.ExtensionDescriptor): +class Contrail(ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron_plugin_contrail/extensions/ipam.py b/neutron_plugin_contrail/extensions/ipam.py index d324ba7..a3799b8 100644 --- a/neutron_plugin_contrail/extensions/ipam.py +++ b/neutron_plugin_contrail/extensions/ipam.py @@ -1,18 +1,19 @@ from abc import abstractmethod try: - from neutron_lib import constants -except ImportError: - from neutron.api.v2 import attributes as constants + from neutron.api.v2.attributes import UUID_PATTERN +except: + from neutron_lib.constants import UUID_PATTERN from neutron.api.v2 import base try: - from neutron_lib import exceptions as exc + from neutron.common.exceptions import NotFound except ImportError: - from neutron.common import exceptions as exc + from neutron_lib.exceptions import NotFound try: - from neutron_lib.api import extensions + from neutron.api.extensions import ExtensionDescriptor except ImportError: - from neutron.api import extensions + from neutron_lib.api.extensions import ExtensionDescriptor +from neutron.api.extensions import ResourceExtension from neutron import manager try: @@ -22,14 +23,14 @@ # Ipam Exceptions -class IpamNotFound(exc.NotFound): +class IpamNotFound(NotFound): message = _("IPAM %(id)s could not be found") # Attribute Map RESOURCE_ATTRIBUTE_MAP = { 'ipams': { 'id': {'allow_post': False, 'allow_put': False, - 'validate': {'type:regex': constants.UUID_PATTERN}, + 'validate': {'type:regex': UUID_PATTERN}, 'is_visible': True}, 'name': {'allow_post': True, 'allow_put': False, 'is_visible': True, 'default': ''}, @@ -46,7 +47,7 @@ class IpamNotFound(exc.NotFound): } -class Ipam(extensions.ExtensionDescriptor): +class Ipam(ExtensionDescriptor): @classmethod def get_name(cls): @@ -85,9 +86,8 @@ def get_resources(cls): plugin, params, member_actions=member_actions) - ex = extensions.ResourceExtension(collection_name, - controller, - member_actions=member_actions) + ex = ResourceExtension(collection_name, controller, + member_actions=member_actions) exts.append(ex) return exts diff --git a/neutron_plugin_contrail/extensions/loadbalancercustomattributes.py b/neutron_plugin_contrail/extensions/loadbalancercustomattributes.py index aca36fe..bc768a1 100644 --- a/neutron_plugin_contrail/extensions/loadbalancercustomattributes.py +++ b/neutron_plugin_contrail/extensions/loadbalancercustomattributes.py @@ -1,7 +1,7 @@ try: - from neutron_lib.api import extensions + from neutron.api.extensions import ExtensionDescriptor except ImportError: - from neutron.api import extensions + from neutron_lib.api.extensions import ExtensionDescriptor def _validate_custom_attributes(data, valid_values=None): if not isinstance(data, list): @@ -12,20 +12,18 @@ def convert_none_to_empty_list(value): return [] if value is None else value try: - from neutron_lib import constants - ATTR_NOT_SPECIFIED = constants.ATTR_NOT_SPECIFIED -except ImportError: - from neutron.api.v2 import attributes - ATTR_NOT_SPECIFIED = attributes.ATTR_NOT_SPECIFIED + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED -try: +from neutron.api.v2 import attributes as attrs +if hasattr(attrs, 'validators'): + attrs.validators['type:customattributes'] = _validate_custom_attributes +else: from neutron_lib.api import validators - from neutron.api.v2 import attributes as attr validators.add_validator('type:customattributes', _validate_custom_attributes) -except ImportError: - from neutron.api.v2 import attributes as attr - attr.validators['type:customattributes'] = _validate_custom_attributes + # Extended_Attribute MAP EXTENDED_ATTRIBUTES_2_0 = { @@ -39,7 +37,7 @@ def convert_none_to_empty_list(value): } -class Loadbalancercustomattributes(extensions.ExtensionDescriptor): +class Loadbalancercustomattributes(ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron_plugin_contrail/extensions/policy.py b/neutron_plugin_contrail/extensions/policy.py index f4b489f..29fff5e 100644 --- a/neutron_plugin_contrail/extensions/policy.py +++ b/neutron_plugin_contrail/extensions/policy.py @@ -1,18 +1,19 @@ from abc import abstractmethod try: - from neutron_lib import constants -except ImportError: - from neutron.api.v2 import attributes as constants + from neutron.api.v2.attributes import UUID_PATTERN +except: + from neutron_lib.constants import UUID_PATTERN from neutron.api.v2 import base try: - from neutron_lib import exceptions as exc + from neutron.common.exceptions import NotFound except ImportError: - from neutron.common import exceptions as exc + from neutron_lib.exceptions import NotFound try: - from neutron_lib.api import extensions + from neutron.api.extensions import ExtensionDescriptor except ImportError: - from neutron.api import extensions + from neutron_lib.api.extensions import ExtensionDescriptor +from neutron.api.extensions import ResourceExtension from neutron import manager try: @@ -22,14 +23,14 @@ # Policy Exceptions -class PolicyNotFound(exc.NotFound): +class PolicyNotFound(NotFound): message = _("Policy %(id)s could not be found") # Attribute Map RESOURCE_ATTRIBUTE_MAP = { 'policys': { 'id': {'allow_post': False, 'allow_put': False, - 'validate': {'type:regex': constants.UUID_PATTERN}, + 'validate': {'type:regex': UUID_PATTERN}, 'is_visible': True}, 'name': {'allow_post': True, 'allow_put': False, 'is_visible': True, 'default': ''}, @@ -46,7 +47,7 @@ class PolicyNotFound(exc.NotFound): } -class Policy(extensions.ExtensionDescriptor): +class Policy(ExtensionDescriptor): @classmethod def get_name(cls): @@ -84,9 +85,8 @@ def get_resources(cls): plugin, params, member_actions=member_actions) - ex = extensions.ResourceExtension(collection_name, - controller, - member_actions=member_actions) + ex = ResourceExtension(collection_name, controller, + member_actions=member_actions) exts.append(ex) return exts diff --git a/neutron_plugin_contrail/extensions/serviceinterface.py b/neutron_plugin_contrail/extensions/serviceinterface.py index b5474aa..4351529 100644 --- a/neutron_plugin_contrail/extensions/serviceinterface.py +++ b/neutron_plugin_contrail/extensions/serviceinterface.py @@ -1,24 +1,23 @@ -#from neutron.api.v2 import attributes as attr try: - from neutron_lib import constants -except ImportError: - from neutron.api.v2 import attributes as constants + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED try: - from neutron_lib.api import extensions + from neutron.api.extensions import ExtensionDescriptor except ImportError: - from neutron.api import extensions + from neutron_lib.api.extensions import ExtensionDescriptor EXTENDED_ATTRIBUTES_2_0 = { 'ports': { 'binding:service_interface_type': {'allow_post': True, 'allow_put': False, - 'default': constants.ATTR_NOT_SPECIFIED, + 'default': ATTR_NOT_SPECIFIED, 'is_visible': True}, }, } -class Serviceinterface(extensions.ExtensionDescriptor): +class Serviceinterface(ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron_plugin_contrail/extensions/vfbinding.py b/neutron_plugin_contrail/extensions/vfbinding.py index 2cb2a15..532cdf5 100644 --- a/neutron_plugin_contrail/extensions/vfbinding.py +++ b/neutron_plugin_contrail/extensions/vfbinding.py @@ -14,29 +14,30 @@ # try: - from neutron_lib.api import converters - from neutron_lib import constants - ATTR_NOT_SPECIFIED = constants.ATTR_NOT_SPECIFIED -except ImportError: - from neutron.api.v2 import attributes as converters - ATTR_NOT_SPECIFIED = converters.ATTR_NOT_SPECIFIED + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED +try: + from neutron.api.v2.attributes import convert_kvp_list_to_dict +except: + from neutron_lib.api.converters import convert_kvp_list_to_dict try: - from neutron_lib.api import extensions + from neutron.api.extensions import ExtensionDescriptor except ImportError: - from neutron.api import extensions + from neutron_lib.api.extensions import ExtensionDescriptor EXTENDED_ATTRIBUTES_2_0 = { 'ports': { 'binding:vf': {'allow_post': True, 'allow_put': True, - 'convert_list_to': converters.convert_kvp_list_to_dict, + 'convert_list_to': convert_kvp_list_to_dict, 'default': ATTR_NOT_SPECIFIED, 'is_visible': True}, }, } -class Vfbinding(extensions.ExtensionDescriptor): +class Vfbinding(ExtensionDescriptor): @classmethod def get_name(cls): diff --git a/neutron_plugin_contrail/extensions/vpcroutetable.py b/neutron_plugin_contrail/extensions/vpcroutetable.py index c54c959..fabefbc 100644 --- a/neutron_plugin_contrail/extensions/vpcroutetable.py +++ b/neutron_plugin_contrail/extensions/vpcroutetable.py @@ -24,15 +24,16 @@ from oslo_config import cfg try: - from neutron_lib.api import extensions + from neutron.api.extensions import ExtensionDescriptor except ImportError: - from neutron.api import extensions + from neutron_lib.api.extensions import ExtensionDescriptor +from neutron.api.extensions import ResourceExtension from neutron.api.v2 import attributes as attr from neutron.api.v2 import base try: - from neutron_lib import exceptions as exc + from neutron.common.exceptions import NotFound except ImportError: - from neutron.common import exceptions as exc + from neutron_lib.exceptions import NotFound from neutron import manager try: from neutron.quota import resource_registry as quota @@ -45,7 +46,7 @@ from oslo_utils import uuidutils # Route table Exceptions -class RouteTableNotFound(exc.NotFound): +class RouteTableNotFound(NotFound): message = _("Route table %(id)s does not exist") # Attribute Map @@ -102,7 +103,7 @@ class RouteTableNotFound(exc.NotFound): } -class Vpcroutetable(extensions.ExtensionDescriptor): +class Vpcroutetable(ExtensionDescriptor): """ Route table extension""" @classmethod @@ -143,9 +144,8 @@ def get_resources(cls): allow_pagination=True, allow_sorting=True) - ex = extensions.ResourceExtension(collection_name, - controller, - attr_map=params) + ex = ResourceExtension(collection_name, controller, + attr_map=params) exts.append(ex) return exts diff --git a/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin.py b/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin.py index 826c0c5..33ce2cf 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin.py +++ b/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin.py @@ -15,11 +15,18 @@ # @author: Hampapur Ajay, Praneet Bachheti, Rudra Rugge, Atul Moghe import requests -from neutron.api.v2 import attributes as attr try: - from neutron_lib import exceptions as exc + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED +try: + from neutron.common.exceptions import ServiceUnavailable +except ImportError: + from neutron_lib.exceptions import ServiceUnavailable +try: + from neutron.common.exceptions import BadRequest except ImportError: - from neutron.common import exceptions as exc + from neutron_lib.exceptions import BadRequest from neutron.common.config import cfg from neutron.db import portbindings_base from neutron.db import quota_db # noqa @@ -74,7 +81,7 @@ help='Port to connect to VNC collector'), ] -class InvalidContrailExtensionError(exc.ServiceUnavailable): +class InvalidContrailExtensionError(ServiceUnavailable): message = _("Invalid Contrail Extension: %(ext_name) %(ext_class)") class NeutronPluginContrailCoreV2(plugin_base.NeutronPluginContrailCoreBase): @@ -262,7 +269,7 @@ def _create_resource(self, res_type, context, res_data): """ for key, value in res_data[res_type].items(): - if value == attr.ATTR_NOT_SPECIFIED: + if value == ATTR_NOT_SPECIFIED: del res_data[res_type][key] res_dict = self._encode_resource(resource=res_data[res_type]) @@ -350,12 +357,12 @@ def add_router_interface(self, context, router_id, interface_info): if not interface_info: msg = _("Either subnet_id or port_id must be specified") - raise exc.BadRequest(resource='router', msg=msg) + raise BadRequest(resource='router', msg=msg) if 'port_id' in interface_info: if 'subnet_id' in interface_info: msg = _("Cannot specify both subnet-id and port-id") - raise exc.BadRequest(resource='router', msg=msg) + raise BadRequest(resource='router', msg=msg) res_dict = self._encode_resource(resource_id=router_id, resource=interface_info) @@ -371,7 +378,7 @@ def remove_router_interface(self, context, router_id, interface_info): if not interface_info: msg = _("Either subnet_id or port_id must be specified") - raise exc.BadRequest(resource='router', msg=msg) + raise BadRequest(resource='router', msg=msg) res_dict = self._encode_resource(resource_id=router_id, resource=interface_info) diff --git a/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_base.py b/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_base.py index 7dfe625..f18eefb 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_base.py +++ b/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_base.py @@ -17,11 +17,27 @@ import os.path as path -from neutron.api.v2 import attributes as attr try: - from neutron_lib import exceptions as exc + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED +try: + from neutron.common.exceptions import ServiceUnavailable +except ImportError: + from neutron_lib.exceptions import ServiceUnavailable +try: + from neutron.common.exceptions import InvalidInput +except ImportError: + from neutron_lib.exceptions import InvalidInput +try: + from neutron.common.exceptions import NeutronException +except ImportError: + from neutron_lib.exceptions import NeutronException +from neutron.common import exceptions as neutron_exc +try: + from neutron_lib import exceptions as neutron_lib_exc except ImportError: - from neutron.common import exceptions as exc + neutron_lib_exc = None from neutron.common.config import cfg from neutron.db import portbindings_base from neutron.db import quota_db # noqa @@ -97,18 +113,20 @@ def _raise_contrail_error(info, obj_name): info['resource'] = obj_name if exc_name == 'VirtualRouterNotFound': raise HttpResponseError(info) - if hasattr(exc, exc_name): - raise getattr(exc, exc_name)(**info) + if hasattr(neutron_exc, exc_name): + raise getattr(neutron_exc, exc_name)(**info) if hasattr(l3, exc_name): raise getattr(l3, exc_name)(**info) if hasattr(securitygroup, exc_name): raise getattr(securitygroup, exc_name)(**info) if hasattr(allowedaddresspairs, exc_name): raise getattr(allowedaddresspairs, exc_name)(**info) - raise exc.NeutronException(**info) + if neutron_lib_exc and hasattr(neutron_lib_exc, exc_name): + raise getattr(neutron_lib_exc, exc_name)(**info) + raise NeutronException(**info) -class InvalidContrailExtensionError(exc.ServiceUnavailable): +class InvalidContrailExtensionError(ServiceUnavailable): message = _("Invalid Contrail Extension: %(ext_name) %(ext_class)") @@ -219,7 +237,6 @@ def _get_network(self, context, id, fields=None): def create_network(self, context, network): """Creates a new Virtual Network.""" - return self._create_resource('network', context, network) def get_network(self, context, network_id, fields=None): @@ -263,10 +280,10 @@ def create_subnet(self, context, subnet): gateway = '::' subnet['subnet']['gateway_ip'] = gateway - if subnet['subnet']['host_routes'] != attr.ATTR_NOT_SPECIFIED: + if subnet['subnet']['host_routes'] != ATTR_NOT_SPECIFIED: if (len(subnet['subnet']['host_routes']) > cfg.CONF.max_subnet_host_routes): - raise exc.HostRoutesExhausted(subnet_id=subnet[ + raise neutron_exc.HostRoutesExhausted(subnet_id=subnet[ 'subnet'].get('id', _('new subnet')), quota=cfg.CONF.max_subnet_host_routes) @@ -355,7 +372,7 @@ def _update_ips_for_port(self, context, network_id, port_id, original_ips, # the new_ips contain all of the fixed_ips that are to be updated if len(new_ips) > cfg.CONF.max_fixed_ips_per_port: msg = _('Exceeded maximim amount of fixed ips per port') - raise exc.InvalidInput(error_message=msg) + raise InvalidInput(error_message=msg) # Remove all of the intersecting elements for original_ip in original_ips[:]: @@ -439,7 +456,7 @@ def _is_dpdk_enabled(self, context, port): # For example when port is created by hand using neutron port-create # command, which does not bind the port to any given host. if 'binding:host_id' in port and port['binding:host_id'] and \ - port['binding:host_id'] is not attr.ATTR_NOT_SPECIFIED: + port['binding:host_id'] is not ATTR_NOT_SPECIFIED: try: vrouter = self._get_vrouter_config(context, ['default-global-system-config', diff --git a/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_v3.py b/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_v3.py index 0121b70..76d6422 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_v3.py +++ b/neutron_plugin_contrail/plugins/opencontrail/contrail_plugin_v3.py @@ -14,8 +14,14 @@ import time -from neutron.api.v2 import attributes as attr -from neutron.common import exceptions as exc +try: + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED +try: + from neutron.common.exceptions import BadRequest +except ImportError: + from neutron_lib.exceptions import BadRequest from neutron.common.config import cfg import requests @@ -170,7 +176,7 @@ def _get_context_dict(self, context): def _create_resource(self, res_type, context, res_data): for key, value in res_data[res_type].items(): - if value == attr.ATTR_NOT_SPECIFIED: + if value == ATTR_NOT_SPECIFIED: del res_data[res_type][key] self._set_user_auth_token() @@ -208,12 +214,12 @@ def add_router_interface(self, context, router_id, interface_info): if not interface_info: msg = "Either subnet_id or port_id must be specified" - raise exc.BadRequest(resource='router', msg=msg) + raise BadRequest(resource='router', msg=msg) if 'port_id' in interface_info: if 'subnet_id' in interface_info: msg = "Cannot specify both subnet-id and port-id" - raise exc.BadRequest(resource='router', msg=msg) + raise BadRequest(resource='router', msg=msg) self._set_user_auth_token() port_id = interface_info.get('port_id') @@ -230,7 +236,7 @@ def remove_router_interface(self, context, router_id, interface_info): if not interface_info: msg = "Either subnet_id or port_id must be specified" - raise exc.BadRequest(resource='router', msg=msg) + raise BadRequest(resource='router', msg=msg) port_id = interface_info.get('port_id') subnet_id = interface_info.get('subnet_id') diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_db.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_db.py index 8e74482..11573a2 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_db.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_db.py @@ -16,7 +16,14 @@ from cfgm_common import analytics_client from cfgm_common import exceptions as vnc_exc -from neutron.common import exceptions as n_exc +try: + from neutron.common.exceptions import BadRequest +except ImportError: + from neutron_lib.exceptions import BadRequest +try: + from neutron.common.exceptions import NotAuthorized +except ImportError: + from neutron_lib.exceptions import NotAuthorized try: from neutron.extensions import loadbalancer @@ -156,7 +163,7 @@ def create_vip(self, context, vip): try: return self.vip_manager.create(context, vip) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='vip', msg=str(ex)) + raise BadRequest(resource='vip', msg=str(ex)) def update_vip(self, context, id, vip): return self.vip_manager.update(context, id, vip) @@ -174,7 +181,7 @@ def create_pool(self, context, pool): try: return self.pool_manager.create(context, pool) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='pool', msg=str(ex)) + raise BadRequest(resource='pool', msg=str(ex)) def update_pool(self, context, id, pool): return self.pool_manager.update(context, id, pool) @@ -226,7 +233,7 @@ def create_pool_health_monitor(self, context, health_monitor, pool_id): tenant_id = str(uuid.UUID(context.tenant_id)) if tenant_id != pool.parent_uuid or \ tenant_id != monitor.parent_uuid: - raise n_exc.NotAuthorized() + raise NotAuthorized() pool_refs = monitor.get_loadbalancer_pool_back_refs() if pool_refs is not None: @@ -310,7 +317,7 @@ def create_member(self, context, member): try: return self.member_manager.create(context, member) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='member', msg=str(ex)) + raise BadRequest(resource='member', msg=str(ex)) def update_member(self, context, id, member): return self.member_manager.update(context, id, member) @@ -328,7 +335,7 @@ def create_health_monitor(self, context, health_monitor): try: return self.monitor_manager.create(context, health_monitor) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='health_monitor', msg=str(ex)) + raise BadRequest(resource='health_monitor', msg=str(ex)) def update_health_monitor(self, context, id, health_monitor): return self.monitor_manager.update(context, id, health_monitor) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_member.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_member.py index 4ac1d79..7aa3d2c 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_member.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_member.py @@ -22,8 +22,14 @@ except ImportError: from oslo_config import cfg -from neutron.common import exceptions as n_exc -from neutron.plugins.common import constants +try: + from neutron.common.exceptions import NotAuthorized +except ImportError: + from neutron_lib.exceptions import NotAuthorized +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants from cfgm_common import analytics_client @@ -178,7 +184,7 @@ def create(self, context, member): tenant_id = self._get_tenant_id_for_create(context, m) if str(uuid.UUID(tenant_id)) != pool.parent_uuid: - raise n_exc.NotAuthorized() + raise NotAuthorized() obj_uuid = uuidutils.generate_uuid() props = self.make_properties(m) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_pool.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_pool.py index fd29be8..70ef696 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_pool.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/loadbalancer_pool.py @@ -9,8 +9,10 @@ except ImportError: from neutron_lbaas.extensions import loadbalancer -from neutron.api.v2 import attributes as attr -from neutron.plugins.common import constants +try: + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED from neutron.services import provider_configuration as pconf try: @@ -172,7 +174,7 @@ def create(self, context, pool): pool.set_service_appliance_set(sas_obj) # Custom attributes - if p['custom_attributes'] != attr.ATTR_NOT_SPECIFIED: + if p['custom_attributes'] != ATTR_NOT_SPECIFIED: custom_attributes = KeyValuePairs() self.create_update_custom_attributes(p['custom_attributes'], custom_attributes) pool.set_loadbalancer_pool_custom_attributes(custom_attributes) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/plugin.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/plugin.py index 21b38b7..fa2136a 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/plugin.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/plugin.py @@ -8,7 +8,10 @@ except ImportError: from neutron_lbaas.extensions import loadbalancer from neutron.db import servicetype_db as sdb -from neutron.plugins.common import constants +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants from neutron.services import provider_configuration as pconf diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/resource_manager.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/resource_manager.py index 832261f..98f1eb3 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/resource_manager.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/resource_manager.py @@ -7,21 +7,40 @@ from abc import ABCMeta, abstractmethod, abstractproperty from eventlet import greenthread -from neutron.common import exceptions as n_exc +try: + from neutron.common.exceptions import BadRequest +except ImportError: + from neutron_lib.exceptions import BadRequest +try: + from neutron.common.exceptions import InUse +except ImportError: + from neutron_lib.exceptions import InUse +try: + from neutron.common.exceptions import AdminRequired +except ImportError: + from neutron_lib.exceptions import AdminRequired +try: + from neutron.common.exceptions import NotAuthorized +except ImportError: + from neutron_lib.exceptions import NotAuthorized +from neutron.common.exceptions import TenantNetworksDisabled try: from neutron.extensions import loadbalancer except ImportError: from neutron_lbaas.extensions import loadbalancer -from neutron.plugins.common import constants +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants from neutron.services import provider_configuration as pconf from vnc_api.vnc_api import NoIdError, RefsExistError -class LoadbalancerMethodInvalid(n_exc.BadRequest): +class LoadbalancerMethodInvalid(BadRequest): message = "Method %(lb_method)s not supported for pool %(pool_id)s" -class EntityInUse(n_exc.InUse): +class EntityInUse(InUse): message = "%(name)s %(id)s is in use" @six.add_metaclass(ABCMeta) @@ -134,7 +153,7 @@ def _get_tenant_id_for_create(self, context, resource): elif ('tenant_id' in resource and resource['tenant_id'] != context.tenant_id): reason = 'Cannot create resource for another tenant' - raise n_exc.AdminRequired(reason=reason) + raise AdminRequired(reason=reason) else: tenant_id = context.tenant_id return tenant_id @@ -165,7 +184,7 @@ def _project_read(self, project_id): except NoIdError: pass greenthread.sleep(1) - raise n_exc.TenantNetworksDisabled() + raise TenantNetworksDisabled() def _fields(self, resource, fields): if fields: @@ -264,7 +283,7 @@ def delete(self, context, id): tenant_id = str(uuid.UUID(context.tenant_id)) project_id = self._get_object_tenant_id(obj) if tenant_id != project_id: - raise n_exc.NotAuthorized() + raise NotAuthorized() try: self.resource_delete(id=id) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/utils.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/utils.py index f955c9e..4a1cb4f 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/utils.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/utils.py @@ -1,4 +1,7 @@ -from neutron.common import exceptions as n_exc +try: + from neutron.common.exceptions import SubnetNotFound +except ImportError: + from neutron_lib.exceptions import SubnetNotFound from cfgm_common import exceptions as vnc_exc @@ -6,7 +9,7 @@ def get_subnet_network_id(client, subnet_id): try: kv_pair = client.kv_retrieve(subnet_id) except vnc_exc.NoIdError: - raise n_exc.SubnetNotFound(subnet_id=subnet_id) + raise SubnetNotFound(subnet_id=subnet_id) return kv_pair.split()[0] @@ -14,5 +17,5 @@ def get_subnet_cidr(client, subnet_id): try: kv_pair = client.kv_retrieve(subnet_id) except vnc_exc.NoIdError: - raise n_exc.SubnetNotFound(subnet_id=subnet_id) + raise SubnetNotFound(subnet_id=subnet_id) return kv_pair.split()[1] diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/listener.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/listener.py index 14ed7b9..9b8e136 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/listener.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/listener.py @@ -1,8 +1,18 @@ # # Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. # -from neutron.api.v2 import attributes -from neutron.common import exceptions as n_exc +try: + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED +try: + from neutron.common.exceptions import NotAuthorized +except ImportError: + from neutron_lib.exceptions import NotAuthorized +try: + from neutron.common.exceptions import BadRequest +except ImportError: + from neutron_lib.exceptions import BadRequest from neutron_lbaas.extensions import loadbalancerv2 try: @@ -42,7 +52,7 @@ def property_type_mapping(self): def make_properties(self, lb): props = LoadbalancerListenerType() for key, mapping in self._listener_type_mapping.iteritems(): - if mapping in lb and lb[mapping] != attributes.ATTR_NOT_SPECIFIED: + if mapping in lb and lb[mapping] != ATTR_NOT_SPECIFIED: setattr(props, key, lb[mapping]) return props @@ -114,7 +124,7 @@ def create(self, context, listener): id=v['loadbalancer_id']) project_id = lb.parent_uuid if str(uuid.UUID(tenant_id)) != project_id: - raise n_exc.NotAuthorized() + raise NotAuthorized() else: lb = None @@ -156,7 +166,7 @@ def _update_listener_properties(self, props, id, ll): continue if getattr(props, field) != ll[field]: msg = 'Attribute %s in listener %s is immutable' % (field, id) - raise n_exc.BadRequest(resource='listener', msg=msg) + raise BadRequest(resource='listener', msg=msg) # update change = self.update_properties_subr(props, ll) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer.py index eb4b624..5e2cd6f 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer.py @@ -1,9 +1,22 @@ # # Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. # -from neutron.api.v2 import attributes -from neutron.common import exceptions as n_exc -from neutron.common import constants as n_constants +try: + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED +try: + from neutron.api.v2.attributes import DEVICE_OWNER_LOADBALANCER +except: + from neutron_lib.constants import DEVICE_OWNER_LOADBALANCER +try: + from neutron.common.exceptions import NetworkNotFound +except ImportError: + from neutron_lib.exceptions import NetworkNotFound +try: + from neutron.common.exceptions import BadRequest +except ImportError: + from neutron_lib.exceptions import BadRequest from neutron_lbaas.extensions import loadbalancerv2 @@ -45,7 +58,7 @@ def property_type_mapping(self): def make_properties(self, lb): props = LoadbalancerType() for key, mapping in self._loadbalancer_type_mapping.iteritems(): - if mapping in lb and lb[mapping] != attributes.ATTR_NOT_SPECIFIED: + if mapping in lb and lb[mapping] != ATTR_NOT_SPECIFIED: setattr(props, key, lb[mapping]) return props @@ -63,7 +76,7 @@ def _get_interface_params(self, lb, props): return None port_id = vmi_list[0]['uuid'] - if not props.vip_address or props.vip_address == attributes.ATTR_NOT_SPECIFIED: + if not props.vip_address or props.vip_address == ATTR_NOT_SPECIFIED: try: vmi = self._api.virtual_machine_interface_read(id=port_id) except NoIdError as ex: @@ -134,11 +147,12 @@ def _create_virtual_interface(self, project, lb_id, subnet_id, try: vnet = self._api.virtual_network_read(id=network_id) except NoIdError: - raise n_exc.NetworkNotFound(net_id=network_id) + raise NetworkNotFound(net_id=network_id) vmi = VirtualMachineInterface(lb_id, project) vmi.set_virtual_network(vnet) - vmi.set_virtual_machine_interface_device_owner(n_constants.DEVICE_OWNER_LOADBALANCER) + vmi.set_virtual_machine_interface_device_owner( + DEVICE_OWNER_LOADBALANCER) sg_obj = SecurityGroup("default", project) vmi.add_security_group(sg_obj) @@ -147,7 +161,7 @@ def _create_virtual_interface(self, project, lb_id, subnet_id, iip_obj = InstanceIp(name=lb_id) iip_obj.set_virtual_network(vnet) iip_obj.set_virtual_machine_interface(vmi) - if ip_address and ip_address != attributes.ATTR_NOT_SPECIFIED: + if ip_address and ip_address != ATTR_NOT_SPECIFIED: iip_obj.set_instance_ip_address(ip_address) self._api.instance_ip_create(iip_obj) iip = self._api.instance_ip_read(id=iip_obj.uuid) @@ -189,7 +203,7 @@ def create(self, context, loadbalancer): Create a loadbalancer. """ l = loadbalancer['loadbalancer'] - if (l['provider'] == attributes.ATTR_NOT_SPECIFIED): + if (l['provider'] == ATTR_NOT_SPECIFIED): l['provider'] = "opencontrail" sas_obj = self.check_provider_exists(l['provider']) tenant_id = self._get_tenant_id_for_create(context, l) @@ -240,7 +254,7 @@ def _update_loadbalancer_properties(self, props, id, lb): continue if getattr(props, field) != lb[field]: msg = 'Attribute %s in loadbalancer %s is immutable' % (field, id) - raise n_exc.BadRequest(resource='loadbalancer', msg=msg) + raise exc.BadRequest(resource='loadbalancer', msg=msg) # update change = self.update_properties_subr(props, lb) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_db.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_db.py index 4809aef..8709ee9 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_db.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_db.py @@ -13,7 +13,10 @@ from cfgm_common import analytics_client from cfgm_common import exceptions as vnc_exc -from neutron.common import exceptions as n_exc +try: + from neutron.common.exceptions import BadRequest +except ImportError: + from neutron_lib.exceptions import BadRequest from neutron_lbaas.extensions import loadbalancerv2 from neutron_lbaas.extensions.loadbalancerv2 import LoadBalancerPluginBaseV2 @@ -154,7 +157,7 @@ def create_loadbalancer(self, context, loadbalancer): try: return self.loadbalancer_manager.create(context, loadbalancer) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='loadbalancer', msg=str(ex)) + raise BadRequest(resource='loadbalancer', msg=str(ex)) def update_loadbalancer(self, context, id, loadbalancer): return self.loadbalancer_manager.update(context, id, loadbalancer) @@ -166,7 +169,7 @@ def create_listener(self, context, listener): try: return self.listener_manager.create(context, listener) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='listener', msg=str(ex)) + raise BadRequest(resource='listener', msg=str(ex)) def get_listener(self, context, id, fields=None): return self.listener_manager.get_resource(context, id, fields) @@ -190,7 +193,7 @@ def create_pool(self, context, pool): try: return self.pool_manager.create(context, pool) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='pool', msg=str(ex)) + raise BadRequest(resource='pool', msg=str(ex)) def update_pool(self, context, id, pool): return self.pool_manager.update(context, id, pool) @@ -208,7 +211,7 @@ def create_pool_member(self, context, pool_id, member): try: return self.member_manager.create(context, pool_id, member) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='member', msg=str(ex)) + raise BadRequest(resource='member', msg=str(ex)) def update_pool_member(self, context, id, pool_id, member): return self.member_manager.update(context, id, member) @@ -232,7 +235,7 @@ def create_healthmonitor(self, context, healthmonitor): try: return self.monitor_manager.create(context, healthmonitor) except vnc_exc.PermissionDenied as ex: - raise n_exc.BadRequest(resource='healthmonitor', msg=str(ex)) + raise BadRequest(resource='healthmonitor', msg=str(ex)) def update_healthmonitor(self, context, id, healthmonitor): return self.monitor_manager.update(context, id, healthmonitor) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_member.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_member.py index 6da3fb8..3479663 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_member.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_member.py @@ -10,7 +10,10 @@ except ImportError: from oslo_utils import uuidutils -from neutron.common import exceptions as n_exc +try: + from neutron.common.exceptions import NotAuthorized +except ImportError: + from neutron_lib.exceptions import NotAuthorized from vnc_api.vnc_api import IdPermsType, NoIdError from vnc_api.vnc_api import LoadbalancerMember, LoadbalancerMemberType @@ -141,7 +144,7 @@ def create(self, context, pool_id, member): tenant_id = self._get_tenant_id_for_create(context, m) if str(uuid.UUID(tenant_id)) != pool.parent_uuid: - raise n_exc.NotAuthorized() + raise NotAuthorized() obj_uuid = uuidutils.generate_uuid() props = self.make_properties(m) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_pool.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_pool.py index 8ee000a..04844d4 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_pool.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/v2/loadbalancer_pool.py @@ -5,7 +5,10 @@ import uuid from neutron_lbaas.extensions import loadbalancerv2 -from neutron.api.v2 import attributes as attr +try: + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED try: from neutron.openstack.common import uuidutils @@ -162,7 +165,7 @@ def create(self, context, pool): id=p['listener_id']) project_id = ll.parent_uuid if str(uuid.UUID(tenant_id)) != project_id: - raise n_exc.NotAuthorized() + raise exc.NotAuthorized() else: ll = None @@ -185,7 +188,7 @@ def create(self, context, pool): pool.set_loadbalancer_listener(ll) # Custom attributes - if p['custom_attributes'] != attr.ATTR_NOT_SPECIFIED: + if p['custom_attributes'] != ATTR_NOT_SPECIFIED: custom_attributes = KeyValuePairs() self.create_update_custom_attributes(p['custom_attributes'], custom_attributes) diff --git a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py index 65d482e..1fd6cbf 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py +++ b/neutron_plugin_contrail/plugins/opencontrail/loadbalancer/virtual_ip.py @@ -1,9 +1,26 @@ # # Copyright (c) 2014 Juniper Networks, Inc. All rights reserved. # -from neutron.api.v2 import attributes -from neutron.common import exceptions as n_exc -from neutron.common import constants as n_constants +try: + from neutron.api.v2.attributes import ATTR_NOT_SPECIFIED +except: + from neutron_lib.constants import ATTR_NOT_SPECIFIED +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants +try: + from neutron.common.exceptions import NetworkNotFound +except ImportError: + from neutron_lib.exceptions import NetworkNotFound +try: + from neutron.common.exceptions import BadRequest +except ImportError: + from neutron_lib.exceptions import BadRequest +try: + from neutron.common.exceptions import NotAuthorized +except ImportError: + from neutron_lib.exceptions import NotAuthorized try: from neutron.extensions import loadbalancer @@ -49,7 +66,7 @@ def property_type_mapping(self): def make_properties(self, vip): props = VirtualIpType() for key, mapping in self._virtual_ip_type_mapping.iteritems(): - if mapping in vip and vip[mapping] != attributes.ATTR_NOT_SPECIFIED: + if mapping in vip and vip[mapping] != ATTR_NOT_SPECIFIED: setattr(props, key, vip[mapping]) sp = vip['session_persistence'] @@ -72,7 +89,7 @@ def _get_interface_params(self, vip, props): return None port_id = vmi_list[0]['uuid'] - if not props.address or props.address == attributes.ATTR_NOT_SPECIFIED: + if not props.address or props.address == ATTR_NOT_SPECIFIED: try: vmi = self._api.virtual_machine_interface_read(id=port_id) except NoIdError as ex: @@ -153,12 +170,13 @@ def _create_virtual_interface(self, project, vip_id, subnet_id, try: vnet = self._api.virtual_network_read(id=network_id) except NoIdError: - raise n_exc.NetworkNotFound(net_id=network_id) + raise NetworkNotFound(net_id=network_id) vmi = VirtualMachineInterface(vip_id, project) vmi.set_virtual_network(vnet) try: - vmi.set_virtual_machine_interface_device_owner(n_constants.DEVICE_OWNER_LOADBALANCER) + vmi.set_virtual_machine_interface_device_owner( + constants.DEVICE_OWNER_LOADBALANCER) except AttributeError: # DEVICE_OWNER_LOADBALANCER is only supported from JUNO onwards pass @@ -170,7 +188,7 @@ def _create_virtual_interface(self, project, vip_id, subnet_id, iip_obj = InstanceIp(name=vip_id) iip_obj.set_virtual_network(vnet) iip_obj.set_virtual_machine_interface(vmi) - if ip_address and ip_address != attributes.ATTR_NOT_SPECIFIED: + if ip_address and ip_address != ATTR_NOT_SPECIFIED: iip_obj.set_instance_ip_address(ip_address) self._api.instance_ip_create(iip_obj) iip = self._api.instance_ip_read(id=iip_obj.uuid) @@ -223,7 +241,7 @@ def create(self, context, vip): raise loadbalancer.PoolNotFound(pool_id=v['pool_id']) project_id = pool.parent_uuid if str(uuid.UUID(tenant_id)) != project_id: - raise n_exc.NotAuthorized() + raise NotAuthorized() protocol = pool.get_loadbalancer_pool_properties().get_protocol() if protocol != v['protocol']: raise loadbalancer.ProtocolMismatch( @@ -278,7 +296,7 @@ def _update_virtual_ip_properties(self, props, id, vip): continue if getattr(props, field) != vip[field]: msg = 'Attribute %s in vip %s is immutable' % (field, id) - raise n_exc.BadRequest(resource='vip', msg=msg) + raise BadRequest(resource='vip', msg=msg) # update change = self.update_properties_subr(props, vip) @@ -312,7 +330,7 @@ def update_object(self, vip_db, id, v): except NoIdError: raise loadbalancer.PoolNotFound(pool_id=v['pool_id']) if vip_db.parent_uuid != pool.parent_uuid: - raise n_exc.NotAuthorized() + raise NotAuthorized() # check that the pool has no vip configured if pool.get_virtual_ip_back_refs(): diff --git a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/fip_res_handler.py b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/fip_res_handler.py index f9d8630..a573f8d 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/fip_res_handler.py +++ b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/fip_res_handler.py @@ -15,7 +15,10 @@ import uuid from cfgm_common import exceptions as vnc_exc -from neutron.common import constants as n_constants +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants from vnc_api import vnc_api import contrail_res_handler as res_handler @@ -121,7 +124,7 @@ def _fip_obj_to_neutron_dict(self, fip_obj, fields=None): fip_q_dict['port_id'] = port_id fip_q_dict['fixed_ip_address'] = ( fip_obj.get_floating_ip_fixed_ip_address()) - fip_q_dict['status'] = n_constants.PORT_STATUS_ACTIVE + fip_q_dict['status'] = constants.PORT_STATUS_ACTIVE if fields: fip_q_dict = self._filter_res_dict(fip_q_dict, fields) diff --git a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/router_res_handler.py b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/router_res_handler.py index 70c857e..d168e3f 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/router_res_handler.py +++ b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/router_res_handler.py @@ -15,7 +15,10 @@ from cfgm_common import exceptions as vnc_exc import contrail_res_handler as res_handler import netaddr -from neutron.common import constants as n_constants +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants import subnet_res_handler as subnet_handler import vmi_res_handler as vmi_handler from vnc_api import vnc_api @@ -55,7 +58,7 @@ def _rtr_obj_to_neutron_dict(self, rtr_obj, rtr_obj.parent_uuid) rtr_q_dict['admin_state_up'] = rtr_obj.get_id_perms().enable rtr_q_dict['shared'] = False - rtr_q_dict['status'] = n_constants.NET_STATUS_ACTIVE + rtr_q_dict['status'] = constants.NET_STATUS_ACTIVE rtr_q_dict['gw_port_id'] = None ext_net_uuid = self._get_external_gateway_info(rtr_obj) @@ -405,7 +408,7 @@ def _get_router_iface_vnc_info(self, context, router_obj, port_id=None, 'fixed_ips': [fixed_ip], 'admin_state_up': True, 'device_id': router_obj.uuid, - 'device_owner': n_constants.DEVICE_OWNER_ROUTER_INTF, + 'device_owner': constants.DEVICE_OWNER_ROUTER_INTF, 'name': ''} port = self._vmi_handler.resource_create(context=context, port_q=port_q) @@ -450,7 +453,7 @@ def add_router_interface(self, context, router_id, port_id=None, context, router_obj, port_id=port_id, subnet_id=subnet_id) vmi_obj.set_virtual_machine_interface_device_owner( - n_constants.DEVICE_OWNER_ROUTER_INTF) + constants.DEVICE_OWNER_ROUTER_INTF) self._vnc_lib.virtual_machine_interface_update(vmi_obj) router_obj.add_virtual_machine_interface(vmi_obj) self._resource_update(router_obj) diff --git a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/sgrule_res_handler.py b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/sgrule_res_handler.py index ff8f7c8..7d06eb8 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/sgrule_res_handler.py +++ b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/sgrule_res_handler.py @@ -15,7 +15,10 @@ import uuid from cfgm_common import exceptions as vnc_exc -from neutron.common import constants +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants from vnc_api import vnc_api import contrail_res_handler as res_handler diff --git a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vmi_res_handler.py b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vmi_res_handler.py index 08a8adc..5b9a388 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vmi_res_handler.py +++ b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vmi_res_handler.py @@ -17,7 +17,10 @@ from cfgm_common import exceptions as vnc_exc import eventlet import netaddr -from neutron.common import constants as n_constants +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants from neutron.common.config import cfg from vnc_api import vnc_api @@ -216,7 +219,7 @@ def _get_vmi_device_id_owner(self, vmi_obj, port_req_memo): rtr_uuid = self.get_port_gw_id(vm_ref, port_req_memo) if rtr_uuid: device_id = rtr_uuid - device_owner = n_constants.DEVICE_OWNER_ROUTER_GW + device_owner = constants.DEVICE_OWNER_ROUTER_GW return device_id, device_owner @@ -337,9 +340,9 @@ def _vmi_to_neutron_port(self, vmi_obj, port_req_memo=None, vmi_obj.get_virtual_machine_interface_device_owner() or '') if port_q_dict['device_id']: - port_q_dict['status'] = n_constants.PORT_STATUS_ACTIVE + port_q_dict['status'] = constants.PORT_STATUS_ACTIVE else: - port_q_dict['status'] = n_constants.PORT_STATUS_DOWN + port_q_dict['status'] = constants.PORT_STATUS_DOWN if extensions_enabled: extra_dict = {'contrail:fq_name': vmi_obj.get_fq_name()} @@ -479,8 +482,8 @@ def _neutron_port_to_vmi(self, port_q, vmi_obj=None, update=False): device_owner = port_q.get('device_owner') - if (device_owner not in [n_constants.DEVICE_OWNER_ROUTER_INTF, - n_constants.DEVICE_OWNER_ROUTER_GW] + if (device_owner not in [constants.DEVICE_OWNER_ROUTER_INTF, + constants.DEVICE_OWNER_ROUTER_GW] and 'device_id' in port_q): self._set_vm_instance_for_vmi(vmi_obj, port_q.get('device_id')) diff --git a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vn_res_handler.py b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vn_res_handler.py index 5e4ad5f..b305846 100644 --- a/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vn_res_handler.py +++ b/neutron_plugin_contrail/plugins/opencontrail/vnc_client/vn_res_handler.py @@ -13,7 +13,10 @@ # under the License. from cfgm_common import exceptions as vnc_exc -from neutron.common import constants as n_constants +try: + from neutron_lib import constants +except ImportError: + from neutron.plugins.common import constants from vnc_api import vnc_api import contrail_res_handler as res_handler @@ -128,9 +131,9 @@ def vn_to_neutron_dict(self, vn_obj, contrail_extensions_enabled=False, vn_obj.parent_uuid) net_q_dict['admin_state_up'] = id_perms.enable net_q_dict['shared'] = True if vn_obj.is_shared else False - net_q_dict['status'] = (n_constants.NET_STATUS_ACTIVE + net_q_dict['status'] = (constants.NET_STATUS_ACTIVE if id_perms.enable - else n_constants.NET_STATUS_DOWN) + else constants.NET_STATUS_DOWN) net_q_dict['router:external'] = (True if vn_obj.router_external else False) if contrail_extensions_enabled: