Use neutron-lib's context module

This also addresses issues with commit 1f5ee0e8942e4b77a89a00ee0249de5d5014e2bc

Change-Id: I47809344fd2c2f21acba05354c3649342560148b
This commit is contained in:
Gary Kotton 2017-03-01 04:22:22 -08:00
parent 319b125fa9
commit da7c01fb18
49 changed files with 71 additions and 57 deletions

View File

@ -17,6 +17,7 @@ import copy
import random
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions
from oslo_log import log
from oslo_serialization import jsonutils
@ -24,7 +25,6 @@ from oslo_service import loopingcall
from oslo_utils import timeutils
import six
from neutron import context
from neutron.db.models import external_net as external_net_db
from neutron.db.models import l3 as l3_db
from neutron.db import models_v2

View File

@ -15,12 +15,12 @@
import uuid
from neutron_lib import context as n_context
from oslo_log import log as logging
from oslo_utils import excutils
from neutron.api import extensions as neutron_extensions
from neutron.api.v2 import attributes as attr
from neutron import context as n_context
from neutron.db import _utils as db_utils
from neutron.db import agentschedulers_db
from neutron.db import allowedaddresspairs_db as addr_pair_db

View File

@ -17,6 +17,7 @@ import uuid
from neutron_lib.api import validators
from neutron_lib import constants
from neutron_lib import context as q_context
from neutron_lib import exceptions as n_exc
from oslo_concurrency import lockutils
from oslo_config import cfg
@ -31,7 +32,6 @@ import webob.exc
from neutron.api import extensions as neutron_extensions
from neutron.api.v2 import attributes as attr
from neutron.api.v2 import base
from neutron import context as q_context
from neutron.db import _utils as db_utils
from neutron.db import agentschedulers_db
from neutron.db import allowedaddresspairs_db as addr_pair_db

View File

@ -18,8 +18,8 @@ import hashlib
import hmac
import netaddr
from neutron import context as neutron_context
from neutron_lib import constants
from neutron_lib import context as neutron_context
from oslo_config import cfg
from oslo_log import log as logging

View File

@ -20,6 +20,7 @@ import uuid
import netaddr
from neutron_lib.api import validators
from neutron_lib import constants
from neutron_lib import context as n_context
from neutron_lib.db import constants as db_const
from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory
@ -42,7 +43,6 @@ from neutron.common import ipv6_utils
from neutron.common import rpc as n_rpc
from neutron.common import topics
from neutron.common import utils as n_utils
from neutron import context as n_context
from neutron.db import _utils as db_utils
from neutron.db import agents_db
from neutron.db import allowedaddresspairs_db as addr_pair_db
@ -1348,8 +1348,8 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
# if there is only no other existing port besides DHCP port
filters = {'network_id': [id]}
ports = self.get_ports(context, filters=filters)
auto_del = all(p['device_owner'] in [constants.DEVICE_OWNER_DHCP]
for p in ports)
auto_del = [p['id'] for p in ports
if p['device_owner'] in [constants.DEVICE_OWNER_DHCP]]
is_dhcp_backend_deleted = False
if auto_del:
filters = {'network_id': [id], 'enable_dhcp': [True]}
@ -1362,6 +1362,14 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
except Exception:
with excutils.save_and_reraise_exception():
LOG.exception(_LE('Failed to delete network'))
for port_id in auto_del:
try:
self.delete_port(context.elevated(), port_id,
force_delete_dhcp=True)
except Exception as e:
LOG.warning(_LW('Unable to delete port %(port_id)s. '
'Reason: %(e)s'),
{'port_id': port_id, 'e': e})
with context.session.begin(subtransactions=True):
self._process_l3_delete(context, id)
@ -2090,7 +2098,7 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
return ret_port
def delete_port(self, context, id, l3_port_check=True,
nw_gw_port_check=True):
nw_gw_port_check=True, force_delete_dhcp=False):
neutron_db_port = self.get_port(context, id)
device_id = neutron_db_port['device_id']
is_compute_port = self._is_compute_port(neutron_db_port)
@ -2100,13 +2108,16 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
with locking.LockManager.get_lock(
'port-device-%s' % device_id):
return self._delete_port(context, id, l3_port_check,
nw_gw_port_check, neutron_db_port)
nw_gw_port_check, neutron_db_port,
force_delete_dhcp)
else:
return self._delete_port(context, id, l3_port_check,
nw_gw_port_check, neutron_db_port)
nw_gw_port_check, neutron_db_port,
force_delete_dhcp)
def _delete_port(self, context, id, l3_port_check,
nw_gw_port_check, neutron_db_port):
nw_gw_port_check, neutron_db_port,
force_delete_dhcp=False):
"""Deletes a port on a specified Virtual Network.
If the port contains a remote interface attachment, the remote
@ -2121,7 +2132,8 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
# a l3 router. If so, we should prevent deletion here
if l3_port_check:
self.prevent_l3_port_deletion(context, id)
if neutron_db_port['device_owner'] in [constants.DEVICE_OWNER_DHCP]:
if (not force_delete_dhcp and
neutron_db_port['device_owner'] in [constants.DEVICE_OWNER_DHCP]):
msg = (_('Can not delete DHCP port %s') % neutron_db_port['id'])
raise n_exc.BadRequest(resource='port', msg=msg)
# If this port is attached to a device, remove the corresponding vnic

View File

@ -22,6 +22,7 @@ import six
from sqlalchemy import exc as db_base_exc
import time
from neutron_lib import context as q_context
from oslo_config import cfg
from oslo_db import exception as db_exc
from oslo_log import log as logging
@ -31,7 +32,6 @@ from oslo_utils import timeutils
from oslo_utils import uuidutils
from six import moves
from neutron import context as q_context
from neutron.extensions import l3
from neutron.plugins.common import constants as plugin_const

View File

@ -29,7 +29,6 @@ from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron.common import rpc as n_rpc
from neutron.common import topics
from neutron import context as q_context
from neutron.db import _utils as db_utils
from neutron.db import agents_db
from neutron.db import agentschedulers_db
@ -65,6 +64,7 @@ from neutron_lib.api.definitions import portbindings as pbin
from neutron_lib.api.definitions import provider_net as pnet
from neutron_lib.api import validators
from neutron_lib import constants as const
from neutron_lib import context as q_context
from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory
from neutron_lib.utils import helpers

View File

@ -15,8 +15,8 @@
from oslo_config import cfg
from oslo_log import log as logging
from neutron import context as q_context
from neutron import version as n_version
from neutron_lib import context as q_context
from vmware_nsx.common import exceptions as nsx_exc
from vmware_nsx.plugins.nsx_v3 import cert_utils

View File

@ -22,7 +22,7 @@ from networking_sfc.services.flowclassifier.drivers import base as fc_driver
from neutron.callbacks import events
from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron import context as n_context
from neutron_lib import context as n_context
from neutron_lib.plugins import directory
from oslo_config import cfg
from oslo_log import helpers as log_helpers

View File

@ -26,10 +26,10 @@ from oslo_utils import uuidutils
from neutron.callbacks import events
from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron import context
from neutron.plugins.common import utils as n_utils
from neutron_lib.api.definitions import provider_net as providernet
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory

View File

@ -15,10 +15,10 @@
# under the License.
from neutron.api.rpc.callbacks import events as callbacks_events
from neutron import context as n_context
from neutron.objects.qos import policy as qos_policy
from neutron.plugins.common import constants
from neutron.services.qos import qos_consts
from neutron_lib import context as n_context
from neutron_lib.plugins import directory
from oslo_config import cfg

View File

@ -15,6 +15,7 @@
import pprint
from neutron_lib import context as n_context
from oslo_config import cfg
from oslo_log import log as logging
@ -24,7 +25,6 @@ import vmware_nsx.shell.admin.plugins.nsxv.resources.utils as utils
import vmware_nsx.shell.resources as shell
from neutron.callbacks import registry
from neutron import context as n_context
from neutron.db import l3_db
from vmware_nsx._i18n import _LE, _LI, _LW

View File

@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from neutron_lib import context
from oslo_log import log as logging
from oslo_serialization import jsonutils
import re
@ -28,7 +28,6 @@ from vmware_nsx.shell.admin.plugins.nsxv.resources import utils as utils
from vmware_nsx.shell import resources as shell
from neutron.callbacks import registry
from neutron import context
LOG = logging.getLogger(__name__)
nsxv = utils.get_nsxv_client()

View File

@ -19,7 +19,7 @@ import vmware_nsx.shell.admin.plugins.nsxv.resources.utils as utils
import vmware_nsx.shell.resources as shell
from neutron.callbacks import registry
from neutron import context as n_context
from neutron_lib import context as n_context
from oslo_config import cfg
from oslo_log import log as logging

View File

@ -16,11 +16,11 @@
import xml.etree.ElementTree as et
from neutron.callbacks import registry
from neutron import context
from neutron.db.models import securitygroup as sg_models
from neutron.db import models_v2
from neutron.db import securitygroups_db
from neutron.extensions import securitygroup as ext_sg
from neutron_lib import context
from oslo_log import log as logging
from vmware_nsx._i18n import _LE, _LI, _LW

View File

@ -17,8 +17,8 @@ import time
from oslo_config import cfg
from oslo_log import log as logging
from neutron import context as neutron_context
from neutron.db import common_db_mixin as common_db
from neutron_lib import context as neutron_context
from neutron_lib.plugins import directory
from vmware_nsx._i18n import _LW

View File

@ -26,7 +26,7 @@ from vmware_nsxlib.v3 import exceptions as nsxlib_exc
from vmware_nsxlib.v3 import trust_management
from neutron.callbacks import registry
from neutron import context
from neutron_lib import context
from neutron_lib import exceptions
from oslo_config import cfg

View File

@ -13,7 +13,7 @@
# under the License.
from neutron.callbacks import registry
from neutron import context
from neutron_lib import context
from oslo_config import cfg
from oslo_log import log as logging

View File

@ -23,8 +23,8 @@ from vmware_nsx.shell import resources as shell
from vmware_nsxlib.v3 import exceptions as nsx_exc
from neutron.callbacks import registry
from neutron import context as neutron_context
from neutron.db import db_base_plugin_v2
from neutron_lib import context as neutron_context
from oslo_log import log as logging
LOG = logging.getLogger(__name__)

View File

@ -32,12 +32,12 @@ from vmware_nsxlib.v3 import exceptions as nsx_exc
from vmware_nsxlib.v3 import resources
from neutron.callbacks import registry
from neutron import context as neutron_context
from neutron.db import allowedaddresspairs_db as addr_pair_db
from neutron.db import db_base_plugin_v2
from neutron.db import portsecurity_db
from neutron.extensions import allowedaddresspairs
from neutron_lib import constants as const
from neutron_lib import context as neutron_context
from neutron_lib.plugins import directory
LOG = logging.getLogger(__name__)

View File

@ -24,9 +24,9 @@ from vmware_nsxlib.v3 import exceptions as nsx_exc
from vmware_nsxlib.v3 import resources as nsx_resources
from neutron.callbacks import registry
from neutron import context as neutron_context
from neutron.db import db_base_plugin_v2
from neutron.db import l3_db
from neutron_lib import context as neutron_context
from oslo_log import log as logging
LOG = logging.getLogger(__name__)

View File

@ -13,10 +13,10 @@
# under the License.
from neutron.callbacks import registry
from neutron import context as neutron_context
from neutron.db import common_db_mixin as common_db
from neutron.db.models import securitygroup
from neutron.db import securitygroups_db
from neutron_lib import context as neutron_context
from oslo_log import log as logging
from vmware_nsx.common import utils

View File

@ -13,8 +13,8 @@
# under the License.
from neutron import context
from neutron.db import db_base_plugin_v2
from neutron_lib import context
from vmware_nsx.db import db as nsx_db
from vmware_nsx.plugins.nsx_v3 import plugin

View File

@ -14,10 +14,10 @@
# limitations under the License.
import mock
from neutron_lib import context
from oslo_config import cfg
from oslo_utils import uuidutils
from neutron import context
from neutron.tests import base
import neutron.tests.unit.db.test_db_base_plugin_v2 as test_plugin
from neutron_lib.api.definitions import portbindings

View File

@ -13,10 +13,10 @@
# License for the specific language governing permissions and limitations
# under the License.
from neutron_lib import context
from neutron_lib.plugins import directory
from oslo_config import cfg
from neutron import context
from neutron.extensions import dns
from vmware_nsx.extension_drivers import dns_integration

View File

@ -15,9 +15,9 @@
import mock
from neutron.api.v2 import attributes
from neutron import context
from neutron.extensions import agent
from neutron.tests.unit.db import test_db_base_plugin_v2 as test_db_plugin
from neutron_lib import context
from oslo_config import cfg
import six

View File

@ -21,7 +21,6 @@ import webtest
from neutron.api import extensions
from neutron.api.v2 import attributes
from neutron import context
from neutron.db import api as db_api
from neutron.db import db_base_plugin_v2
from neutron import quota
@ -30,6 +29,7 @@ from neutron.tests.unit.api import test_extensions
from neutron.tests.unit.api.v2 import test_base
from neutron.tests.unit.db import test_db_base_plugin_v2 as test_db_plugin
from neutron_lib import constants
from neutron_lib import context
from neutron_lib.plugins import directory
from vmware_nsx.api_client import exception as api_exc

View File

@ -16,10 +16,10 @@ import mock
import webob.exc
from neutron.api.v2 import attributes as attr
from neutron import context
from neutron.db import db_base_plugin_v2
from neutron.db import securitygroups_db
from neutron.tests.unit.extensions import test_securitygroup
from neutron_lib import context
from vmware_nsx.db import extended_security_group
from vmware_nsx.extensions import providersecuritygroup as provider_sg

View File

@ -16,10 +16,10 @@
import contextlib
import mock
from neutron_lib import context
from oslo_config import cfg
import webob.exc
from neutron import context
from neutron.tests.unit.api import test_extensions
from vmware_nsx.db import qos_db
from vmware_nsx.extensions import qos_queue as ext_qos

View File

@ -17,10 +17,10 @@ from oslo_config import cfg
import webob.exc
from neutron.api.v2 import attributes as attr
from neutron import context
from neutron.tests.unit.api import test_extensions
from neutron.tests.unit.extensions import test_securitygroup
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from vmware_nsx.extensions import nsxpolicy

View File

@ -17,10 +17,10 @@ from oslo_config import cfg
from oslo_db import exception as d_exc
from oslo_utils import uuidutils
from neutron import context as neutron_context
from neutron.db import db_base_plugin_v2
from neutron.tests.unit.db import test_db_base_plugin_v2 as test_db_plugin
from neutron_lib.api import validators
from neutron_lib import context as neutron_context
from neutron_lib.plugins import directory
from vmware_nsx.db import vnic_index_db

View File

@ -13,8 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from neutron import context
from neutron.tests.unit import testlib_api
from neutron_lib import context
from sqlalchemy import orm
from vmware_nsx.common import exceptions as p_exc

View File

@ -13,9 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from neutron import context
from neutron.db import models_v2
from neutron.tests.unit import testlib_api
from neutron_lib import context
from oslo_db import exception as d_exc
from vmware_nsx.db import db as nsx_db

View File

@ -15,10 +15,10 @@
import mock
from neutron_lib import constants as n_consts
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from oslo_config import cfg
from neutron import context
from neutron.tests import base
from neutron.tests.unit import testlib_api

View File

@ -17,7 +17,6 @@ import uuid
import mock
from neutron.api.v2 import attributes
from neutron import context
from neutron.extensions import dvr
from neutron.extensions import external_net
from neutron.extensions import l3
@ -33,6 +32,7 @@ from neutron.tests.unit import testlib_api
from neutron_lib.api.definitions import portbindings
from neutron_lib.api.definitions import provider_net as pnet
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as ntn_exc
from neutron_lib.plugins import directory
from oslo_config import cfg

View File

@ -20,12 +20,12 @@ import time
import mock
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from oslo_config import cfg
from oslo_log import log
from oslo_serialization import jsonutils
from neutron import context
from neutron.extensions import l3
from neutron.tests import base
from neutron.tests.unit.api.v2 import test_base

View File

@ -13,11 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
from neutron import context
import mock
from neutron.tests import base
from neutron_lbaas.services.loadbalancer import data_models as lb_models
from neutron_lib import context
from vmware_nsx.db import nsxv_db
from vmware_nsx.plugins.nsx_v.vshield import vcns_driver

View File

@ -20,7 +20,6 @@ import netaddr
from neutron.api.rpc.callbacks import events as callbacks_events
from neutron.api.rpc.callbacks import resources as callbacks_resources
from neutron.api.v2 import attributes
from neutron import context
from neutron.extensions import allowedaddresspairs as addr_pair
from neutron.extensions import dvr as dist_router
from neutron.extensions import external_net
@ -45,6 +44,7 @@ from neutron_lib.api.definitions import portbindings
from neutron_lib.api.definitions import provider_net as pnet
from neutron_lib.api import validators
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory
from neutron_lib.utils import helpers
@ -820,6 +820,9 @@ class TestPortsV2(NsxVPluginV2TestCase,
for p in ports_to_delete:
self._delete('ports', p['port']['id'])
def test_delete_network_port_exists_owned_by_network_race(self):
self.skipTest('Skip need to address in future')
def test_create_port_with_too_many_fixed_ips(self):
self.skipTest('DHCP only supports one binding')

View File

@ -14,11 +14,11 @@
#
import mock
from neutron_lib import context
from oslo_config import cfg
from oslo_utils import uuidutils
from six import moves
from neutron import context
from neutron.plugins.common import constants as plugin_const
from neutron.tests.unit import testlib_api
from neutron_lib import exceptions as n_exc

View File

@ -16,8 +16,8 @@
from eventlet import greenthread
import mock
from neutron import context as neutron_context
from neutron.tests import base
from neutron_lib import context as neutron_context
from oslo_config import cfg
import six

View File

@ -16,11 +16,11 @@
import mock
import netaddr
from neutron import context
from neutron.extensions import securitygroup as secgrp
from neutron_lib.api.definitions import provider_net as pnet
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from oslo_config import cfg
from oslo_utils import uuidutils

View File

@ -18,7 +18,6 @@ import six
from webob import exc
from neutron.api.v2 import attributes
from neutron import context
from neutron.db import models_v2
from neutron.extensions import external_net
from neutron.extensions import extraroute
@ -38,6 +37,7 @@ from neutron.tests.unit.scheduler \
from neutron_lib.api.definitions import portbindings
from neutron_lib.api.definitions import provider_net as pnet
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from neutron_lib.plugins import directory
from oslo_config import cfg

View File

@ -22,8 +22,8 @@ from vmware_nsx.tests.unit.nsx_v.vshield import fake_vcns
from neutron.api import extensions as api_ext
from neutron.common import config
from neutron import context
from neutron_lib.api.definitions import portbindings
from neutron_lib import context
from neutron_lib.plugins import directory
from networking_sfc.db import flowclassifier_db as fdb

View File

@ -20,6 +20,7 @@ from networking_l2gw.services.l2gateway.common import constants
from networking_l2gw.services.l2gateway import exceptions as l2gw_exc
from networking_l2gw.services.l2gateway import plugin as core_l2gw_plugin
from networking_l2gw.tests.unit.db import test_l2gw_db
from neutron_lib import context
from oslo_config import cfg
from oslo_utils import importutils
from oslo_utils import uuidutils
@ -27,7 +28,6 @@ from oslo_utils import uuidutils
from neutron.callbacks import events
from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron import context
from neutron.tests import base
from neutron_lib import exceptions as n_exc

View File

@ -14,10 +14,10 @@
# under the License.
import mock
from neutron import context
from neutron.tests import base
from networking_l2gw.db.l2gateway import l2gateway_db
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from vmware_nsx.common import exceptions as nsx_exc
from vmware_nsx.db import nsxv_db

View File

@ -14,13 +14,13 @@
# limitations under the License.
import mock
from neutron import context
from neutron.tests.unit.db import test_db_base_plugin_v2 as test_plugin
from neutron_taas.extensions import taas
from neutron_taas.services.taas import taas_plugin
from neutron_taas.tests.unit.db import test_taas_db
from neutron_lib import context
from oslo_utils import importutils
from oslo_utils import uuidutils

View File

@ -14,10 +14,10 @@
# under the License.
import mock
from neutron_lib import context
from oslo_config import cfg
from oslo_utils import uuidutils
from neutron import context
from neutron.objects import base as base_object
from neutron.objects.qos import policy as policy_object
from neutron.objects.qos import rule as rule_object

View File

@ -14,10 +14,10 @@
# under the License.
import mock
from neutron_lib import context
from oslo_config import cfg
from oslo_utils import uuidutils
from neutron import context
from neutron.objects.qos import policy as policy_object
from neutron.objects.qos import rule as rule_object
from neutron.services.qos import qos_consts

View File

@ -15,9 +15,9 @@
import mock
from neutron import context
from neutron.tests import base
from neutron_lib import context
from oslo_config import cfg
from oslo_utils import importutils