remove unused common exceptions
This patch removes a handful of unused exceptions from neutron.common.exceptions as follows: The following exceptions already live in neutron-lib and are thus duplicates in neutron: PlacementEndpointNotFound PlacementResourceProviderNotFound PlacementInventoryNotFound PlacementAggregateNotFound PlacementInventoryUpdateConflict NetworkVlanRangeError PhysicalNetworkNameError MacAddressGenerationFailure The following exception is not used anywhere today: TenantNetworksDisabled NeutronLibImpact Change-Id: Ie8227954681292ead1da0dedc950c54028ce84f1
This commit is contained in:
parent
582c1415cb
commit
2b3fdc871c
@ -65,24 +65,6 @@ class NetworkQosBindingError(e.NeutronException):
|
|||||||
"could not be created: %(db_error)s.")
|
"could not be created: %(db_error)s.")
|
||||||
|
|
||||||
|
|
||||||
class PlacementEndpointNotFound(e.NotFound):
|
|
||||||
message = _("Placement API endpoint not found")
|
|
||||||
|
|
||||||
|
|
||||||
class PlacementResourceProviderNotFound(e.NotFound):
|
|
||||||
message = _("Placement resource provider not found %(resource_provider)s.")
|
|
||||||
|
|
||||||
|
|
||||||
class PlacementInventoryNotFound(e.NotFound):
|
|
||||||
message = _("Placement inventory not found for resource provider "
|
|
||||||
"%(resource_provider)s, resource class %(resource_class)s.")
|
|
||||||
|
|
||||||
|
|
||||||
class PlacementAggregateNotFound(e.NotFound):
|
|
||||||
message = _("Aggregate not found for resource provider "
|
|
||||||
"%(resource_provider)s.")
|
|
||||||
|
|
||||||
|
|
||||||
class PolicyRemoveAuthorizationError(e.NotAuthorized):
|
class PolicyRemoveAuthorizationError(e.NotAuthorized):
|
||||||
message = _("Failed to remove provided policy %(policy_id)s "
|
message = _("Failed to remove provided policy %(policy_id)s "
|
||||||
"because you are not authorized.")
|
"because you are not authorized.")
|
||||||
@ -118,12 +100,6 @@ class FlatNetworkInUse(e.InUse):
|
|||||||
"Physical network %(physical_network)s is in use.")
|
"Physical network %(physical_network)s is in use.")
|
||||||
|
|
||||||
|
|
||||||
class TenantNetworksDisabled(e.ServiceUnavailable):
|
|
||||||
# NOTE(vvargaszte): May be removed in the future as it is not used in
|
|
||||||
# Neutron, only in the Neutron plugin of OpenContrail.
|
|
||||||
message = _("Tenant network creation is not enabled.")
|
|
||||||
|
|
||||||
|
|
||||||
class NoNetworkFoundInMaximumAllowedAttempts(e.ServiceUnavailable):
|
class NoNetworkFoundInMaximumAllowedAttempts(e.ServiceUnavailable):
|
||||||
message = _("Unable to create the network. "
|
message = _("Unable to create the network. "
|
||||||
"No available network found in maximum allowed attempts.")
|
"No available network found in maximum allowed attempts.")
|
||||||
@ -151,20 +127,11 @@ class OverlappingAllocationPools(e.Conflict):
|
|||||||
"%(pool_1)s %(pool_2)s for subnet %(subnet_cidr)s.")
|
"%(pool_1)s %(pool_2)s for subnet %(subnet_cidr)s.")
|
||||||
|
|
||||||
|
|
||||||
class PlacementInventoryUpdateConflict(e.Conflict):
|
|
||||||
message = _("Placement inventory update conflict for resource provider "
|
|
||||||
"%(resource_provider)s, resource class %(resource_class)s.")
|
|
||||||
|
|
||||||
|
|
||||||
class OutOfBoundsAllocationPool(e.BadRequest):
|
class OutOfBoundsAllocationPool(e.BadRequest):
|
||||||
message = _("The allocation pool %(pool)s spans "
|
message = _("The allocation pool %(pool)s spans "
|
||||||
"beyond the subnet cidr %(subnet_cidr)s.")
|
"beyond the subnet cidr %(subnet_cidr)s.")
|
||||||
|
|
||||||
|
|
||||||
class MacAddressGenerationFailure(e.ServiceUnavailable):
|
|
||||||
message = _("Unable to generate unique mac on network %(net_id)s.")
|
|
||||||
|
|
||||||
|
|
||||||
class BridgeDoesNotExist(e.NeutronException):
|
class BridgeDoesNotExist(e.NeutronException):
|
||||||
message = _("Bridge %(bridge)s does not exist.")
|
message = _("Bridge %(bridge)s does not exist.")
|
||||||
|
|
||||||
@ -214,20 +181,6 @@ class GatewayIpInUse(e.InUse):
|
|||||||
"by port %(port_id)s. Unable to update.")
|
"by port %(port_id)s. Unable to update.")
|
||||||
|
|
||||||
|
|
||||||
class NetworkVlanRangeError(e.NeutronException):
|
|
||||||
message = _("Invalid network VLAN range: '%(vlan_range)s' - '%(error)s'.")
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
|
||||||
# Convert vlan_range tuple to 'start:end' format for display
|
|
||||||
if isinstance(kwargs['vlan_range'], tuple):
|
|
||||||
kwargs['vlan_range'] = "%d:%d" % kwargs['vlan_range']
|
|
||||||
super(NetworkVlanRangeError, self).__init__(**kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class PhysicalNetworkNameError(e.NeutronException):
|
|
||||||
message = _("Empty physical network name.")
|
|
||||||
|
|
||||||
|
|
||||||
class NetworkVxlanPortRangeError(e.NeutronException):
|
class NetworkVxlanPortRangeError(e.NeutronException):
|
||||||
message = _("Invalid network VXLAN port range: '%(vxlan_range)s'.")
|
message = _("Invalid network VXLAN port range: '%(vxlan_range)s'.")
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@ from oslo_utils import excutils
|
|||||||
import webob.exc
|
import webob.exc
|
||||||
|
|
||||||
from neutron._i18n import _
|
from neutron._i18n import _
|
||||||
from neutron.common import exceptions as n_exc
|
|
||||||
|
|
||||||
|
|
||||||
INTERFACE_HASH_LEN = 6
|
INTERFACE_HASH_LEN = 6
|
||||||
@ -88,7 +87,7 @@ def verify_tunnel_range(tunnel_range, tunnel_type):
|
|||||||
|
|
||||||
def raise_invalid_tag(vlan_str, vlan_range):
|
def raise_invalid_tag(vlan_str, vlan_range):
|
||||||
"""Raise an exception for invalid tag."""
|
"""Raise an exception for invalid tag."""
|
||||||
raise n_exc.NetworkVlanRangeError(
|
raise exceptions.NetworkVlanRangeError(
|
||||||
vlan_range=vlan_range,
|
vlan_range=vlan_range,
|
||||||
error=_("%s is not a valid VLAN tag") % vlan_str)
|
error=_("%s is not a valid VLAN tag") % vlan_str)
|
||||||
|
|
||||||
@ -99,7 +98,7 @@ def verify_vlan_range(vlan_range):
|
|||||||
if not is_valid_vlan_tag(vlan_tag):
|
if not is_valid_vlan_tag(vlan_tag):
|
||||||
raise_invalid_tag(str(vlan_tag), vlan_range)
|
raise_invalid_tag(str(vlan_tag), vlan_range)
|
||||||
if vlan_range[1] < vlan_range[0]:
|
if vlan_range[1] < vlan_range[0]:
|
||||||
raise n_exc.NetworkVlanRangeError(
|
raise exceptions.NetworkVlanRangeError(
|
||||||
vlan_range=vlan_range,
|
vlan_range=vlan_range,
|
||||||
error=_("End of VLAN range is less than start of VLAN range"))
|
error=_("End of VLAN range is less than start of VLAN range"))
|
||||||
|
|
||||||
@ -109,12 +108,12 @@ def parse_network_vlan_range(network_vlan_range):
|
|||||||
entry = network_vlan_range.strip()
|
entry = network_vlan_range.strip()
|
||||||
if ':' in entry:
|
if ':' in entry:
|
||||||
if entry.count(':') != 2:
|
if entry.count(':') != 2:
|
||||||
raise n_exc.NetworkVlanRangeError(
|
raise exceptions.NetworkVlanRangeError(
|
||||||
vlan_range=entry,
|
vlan_range=entry,
|
||||||
error=_("Need exactly two values for VLAN range"))
|
error=_("Need exactly two values for VLAN range"))
|
||||||
network, vlan_min, vlan_max = entry.split(':')
|
network, vlan_min, vlan_max = entry.split(':')
|
||||||
if not network:
|
if not network:
|
||||||
raise n_exc.PhysicalNetworkNameError()
|
raise exceptions.PhysicalNetworkNameError()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
vlan_min = int(vlan_min)
|
vlan_min = int(vlan_min)
|
||||||
|
@ -17,10 +17,10 @@ import functools
|
|||||||
|
|
||||||
from keystoneauth1 import exceptions as ks_exc
|
from keystoneauth1 import exceptions as ks_exc
|
||||||
from keystoneauth1 import loading as ks_loading
|
from keystoneauth1 import loading as ks_loading
|
||||||
|
from neutron_lib.exceptions import placement as placement_exc
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
|
|
||||||
from neutron._i18n import _
|
from neutron._i18n import _
|
||||||
from neutron.common import exceptions as n_exc
|
|
||||||
|
|
||||||
PLACEMENT_API_WITH_AGGREGATES = 'placement 1.1'
|
PLACEMENT_API_WITH_AGGREGATES = 'placement 1.1'
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ def check_placement_api_available(f):
|
|||||||
try:
|
try:
|
||||||
return f(self, *a, **k)
|
return f(self, *a, **k)
|
||||||
except ks_exc.EndpointNotFound:
|
except ks_exc.EndpointNotFound:
|
||||||
raise n_exc.PlacementEndpointNotFound()
|
raise placement_exc.PlacementEndpointNotFound()
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
@ -107,8 +107,8 @@ class PlacementAPIClient(object):
|
|||||||
:param resource_class: Resource class name of the inventory to be
|
:param resource_class: Resource class name of the inventory to be
|
||||||
returned
|
returned
|
||||||
:type resource_class: str
|
:type resource_class: str
|
||||||
:raises n_exc.PlacementInventoryNotFound: For failure to find inventory
|
:raises placement_exc.PlacementInventoryNotFound: For failure to
|
||||||
for a resource provider
|
find inventory for a resource provider
|
||||||
"""
|
"""
|
||||||
url = '/resource_providers/%s/inventories/%s' % (
|
url = '/resource_providers/%s/inventories/%s' % (
|
||||||
resource_provider_uuid, resource_class)
|
resource_provider_uuid, resource_class)
|
||||||
@ -116,10 +116,10 @@ class PlacementAPIClient(object):
|
|||||||
return self._get(url).json()
|
return self._get(url).json()
|
||||||
except ks_exc.NotFound as e:
|
except ks_exc.NotFound as e:
|
||||||
if "No resource provider with uuid" in e.details:
|
if "No resource provider with uuid" in e.details:
|
||||||
raise n_exc.PlacementResourceProviderNotFound(
|
raise placement_exc.PlacementResourceProviderNotFound(
|
||||||
resource_provider=resource_provider_uuid)
|
resource_provider=resource_provider_uuid)
|
||||||
elif _("No inventory of class") in e.details:
|
elif _("No inventory of class") in e.details:
|
||||||
raise n_exc.PlacementInventoryNotFound(
|
raise placement_exc.PlacementInventoryNotFound(
|
||||||
resource_provider=resource_provider_uuid,
|
resource_provider=resource_provider_uuid,
|
||||||
resource_class=resource_class)
|
resource_class=resource_class)
|
||||||
else:
|
else:
|
||||||
@ -136,15 +136,15 @@ class PlacementAPIClient(object):
|
|||||||
:type inventory: dict
|
:type inventory: dict
|
||||||
:param resource_class: The resource class of the inventory to update
|
:param resource_class: The resource class of the inventory to update
|
||||||
:type resource_class: str
|
:type resource_class: str
|
||||||
:raises n_exc.PlacementInventoryUpdateConflict: For failure to updste
|
:raises placement_exc.PlacementInventoryUpdateConflict: For failure to
|
||||||
inventory due to outdated resource_provider_generation
|
update inventory due to outdated resource_provider_generation
|
||||||
"""
|
"""
|
||||||
url = '/resource_providers/%s/inventories/%s' % (
|
url = '/resource_providers/%s/inventories/%s' % (
|
||||||
resource_provider_uuid, resource_class)
|
resource_provider_uuid, resource_class)
|
||||||
try:
|
try:
|
||||||
self._put(url, inventory)
|
self._put(url, inventory)
|
||||||
except ks_exc.Conflict:
|
except ks_exc.Conflict:
|
||||||
raise n_exc.PlacementInventoryUpdateConflict(
|
raise placement_exc.PlacementInventoryUpdateConflict(
|
||||||
resource_provider=resource_provider_uuid,
|
resource_provider=resource_provider_uuid,
|
||||||
resource_class=resource_class)
|
resource_class=resource_class)
|
||||||
|
|
||||||
@ -175,5 +175,5 @@ class PlacementAPIClient(object):
|
|||||||
url, headers={'openstack-api-version':
|
url, headers={'openstack-api-version':
|
||||||
PLACEMENT_API_WITH_AGGREGATES}).json()
|
PLACEMENT_API_WITH_AGGREGATES}).json()
|
||||||
except ks_exc.NotFound:
|
except ks_exc.NotFound:
|
||||||
raise n_exc.PlacementAggregateNotFound(
|
raise placement_exc.PlacementAggregateNotFound(
|
||||||
resource_provider=resource_provider_uuid)
|
resource_provider=resource_provider_uuid)
|
||||||
|
@ -25,6 +25,7 @@ from neutron_lib.callbacks import events
|
|||||||
from neutron_lib.callbacks import registry
|
from neutron_lib.callbacks import registry
|
||||||
from neutron_lib.callbacks import resources
|
from neutron_lib.callbacks import resources
|
||||||
from neutron_lib import constants
|
from neutron_lib import constants
|
||||||
|
from neutron_lib.exceptions import placement as placement_exc
|
||||||
from neutron_lib.plugins import directory
|
from neutron_lib.plugins import directory
|
||||||
from novaclient import client as nova_client
|
from novaclient import client as nova_client
|
||||||
from novaclient import exceptions as nova_exc
|
from novaclient import exceptions as nova_exc
|
||||||
@ -33,7 +34,6 @@ from oslo_log import log
|
|||||||
from oslo_utils import excutils
|
from oslo_utils import excutils
|
||||||
|
|
||||||
from neutron._i18n import _
|
from neutron._i18n import _
|
||||||
from neutron.common import exceptions as n_exc
|
|
||||||
from neutron.db import _resource_extend as resource_extend
|
from neutron.db import _resource_extend as resource_extend
|
||||||
from neutron.db import api as db_api
|
from neutron.db import api as db_api
|
||||||
from neutron.db.models import segment as segment_model
|
from neutron.db.models import segment as segment_model
|
||||||
@ -166,7 +166,7 @@ class NovaSegmentNotifier(object):
|
|||||||
for event in batched_events:
|
for event in batched_events:
|
||||||
try:
|
try:
|
||||||
event.method(event)
|
event.method(event)
|
||||||
except n_exc.PlacementEndpointNotFound:
|
except placement_exc.PlacementEndpointNotFound:
|
||||||
LOG.debug('Placement API was not found when trying to '
|
LOG.debug('Placement API was not found when trying to '
|
||||||
'update routed networks IPv4 inventories')
|
'update routed networks IPv4 inventories')
|
||||||
return
|
return
|
||||||
@ -190,7 +190,7 @@ class NovaSegmentNotifier(object):
|
|||||||
def _create_or_update_nova_inventory(self, event):
|
def _create_or_update_nova_inventory(self, event):
|
||||||
try:
|
try:
|
||||||
self._update_nova_inventory(event)
|
self._update_nova_inventory(event)
|
||||||
except n_exc.PlacementResourceProviderNotFound:
|
except placement_exc.PlacementResourceProviderNotFound:
|
||||||
self._create_nova_inventory(event.segment_id, event.total,
|
self._create_nova_inventory(event.segment_id, event.total,
|
||||||
event.reserved,
|
event.reserved,
|
||||||
event.segment_host_mappings)
|
event.segment_host_mappings)
|
||||||
@ -208,7 +208,7 @@ class NovaSegmentNotifier(object):
|
|||||||
ipv4_inventory,
|
ipv4_inventory,
|
||||||
IPV4_RESOURCE_CLASS)
|
IPV4_RESOURCE_CLASS)
|
||||||
return
|
return
|
||||||
except n_exc.PlacementInventoryUpdateConflict:
|
except placement_exc.PlacementInventoryUpdateConflict:
|
||||||
LOG.debug('Re-trying to update Nova IPv4 inventory for '
|
LOG.debug('Re-trying to update Nova IPv4 inventory for '
|
||||||
'routed network segment: %s', event.segment_id)
|
'routed network segment: %s', event.segment_id)
|
||||||
LOG.error('Failed to update Nova IPv4 inventory for routed '
|
LOG.error('Failed to update Nova IPv4 inventory for routed '
|
||||||
@ -340,7 +340,7 @@ class NovaSegmentNotifier(object):
|
|||||||
for segment_id in event.segment_ids:
|
for segment_id in event.segment_ids:
|
||||||
try:
|
try:
|
||||||
aggregate_id = self._get_aggregate_id(segment_id)
|
aggregate_id = self._get_aggregate_id(segment_id)
|
||||||
except n_exc.PlacementAggregateNotFound:
|
except placement_exc.PlacementAggregateNotFound:
|
||||||
LOG.info('When adding host %(host)s, aggregate not found '
|
LOG.info('When adding host %(host)s, aggregate not found '
|
||||||
'for routed network segment %(segment_id)s',
|
'for routed network segment %(segment_id)s',
|
||||||
{'host': event.host, 'segment_id': segment_id})
|
{'host': event.host, 'segment_id': segment_id})
|
||||||
|
@ -29,7 +29,6 @@ import testscenarios
|
|||||||
import testtools
|
import testtools
|
||||||
|
|
||||||
from neutron.common import constants as common_constants
|
from neutron.common import constants as common_constants
|
||||||
from neutron.common import exceptions as n_exc
|
|
||||||
from neutron.common import utils
|
from neutron.common import utils
|
||||||
from neutron.plugins.common import utils as plugin_utils
|
from neutron.plugins.common import utils as plugin_utils
|
||||||
from neutron.tests import base
|
from neutron.tests import base
|
||||||
@ -190,13 +189,13 @@ class TestVlanNetworkNameValid(base.BaseTestCase):
|
|||||||
return plugin_utils.parse_network_vlan_ranges(vlan_range)
|
return plugin_utils.parse_network_vlan_ranges(vlan_range)
|
||||||
|
|
||||||
def test_validate_provider_phynet_name_mixed(self):
|
def test_validate_provider_phynet_name_mixed(self):
|
||||||
self.assertRaises(n_exc.PhysicalNetworkNameError,
|
self.assertRaises(exc.PhysicalNetworkNameError,
|
||||||
self.parse_vlan_ranges,
|
self.parse_vlan_ranges,
|
||||||
['', ':23:30', 'physnet1',
|
['', ':23:30', 'physnet1',
|
||||||
'tenant_net:100:200'])
|
'tenant_net:100:200'])
|
||||||
|
|
||||||
def test_validate_provider_phynet_name_bad(self):
|
def test_validate_provider_phynet_name_bad(self):
|
||||||
self.assertRaises(n_exc.PhysicalNetworkNameError,
|
self.assertRaises(exc.PhysicalNetworkNameError,
|
||||||
self.parse_vlan_ranges,
|
self.parse_vlan_ranges,
|
||||||
[':1:34'])
|
[':1:34'])
|
||||||
|
|
||||||
@ -215,7 +214,7 @@ class TestVlanRangeVerifyValid(UtilTestParseVlanRanges):
|
|||||||
|
|
||||||
def check_one_vlan_invalid(self, bad_range, which):
|
def check_one_vlan_invalid(self, bad_range, which):
|
||||||
expected_msg = self._vrange_invalid_vlan(bad_range, which)
|
expected_msg = self._vrange_invalid_vlan(bad_range, which)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.verify_range, bad_range)
|
self.verify_range, bad_range)
|
||||||
self.assertEqual(str(err), expected_msg)
|
self.assertEqual(str(err), expected_msg)
|
||||||
|
|
||||||
@ -258,7 +257,7 @@ class TestVlanRangeVerifyValid(UtilTestParseVlanRanges):
|
|||||||
def test_range_reversed(self):
|
def test_range_reversed(self):
|
||||||
bad_range = (95, 10)
|
bad_range = (95, 10)
|
||||||
expected_msg = self._vrange_invalid(bad_range)
|
expected_msg = self._vrange_invalid(bad_range)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.verify_range, bad_range)
|
self.verify_range, bad_range)
|
||||||
self.assertEqual(str(err), expected_msg)
|
self.assertEqual(str(err), expected_msg)
|
||||||
|
|
||||||
@ -280,28 +279,28 @@ class TestParseOneVlanRange(UtilTestParseVlanRanges):
|
|||||||
def test_parse_one_net_incomplete_range(self):
|
def test_parse_one_net_incomplete_range(self):
|
||||||
config_str = "net1:100"
|
config_str = "net1:100"
|
||||||
expected_msg = self._range_err_bad_count(config_str)
|
expected_msg = self._range_err_bad_count(config_str)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_one, config_str)
|
self.parse_one, config_str)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
def test_parse_one_net_range_too_many(self):
|
def test_parse_one_net_range_too_many(self):
|
||||||
config_str = "net1:100:150:200"
|
config_str = "net1:100:150:200"
|
||||||
expected_msg = self._range_err_bad_count(config_str)
|
expected_msg = self._range_err_bad_count(config_str)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_one, config_str)
|
self.parse_one, config_str)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
def test_parse_one_net_vlan1_not_int(self):
|
def test_parse_one_net_vlan1_not_int(self):
|
||||||
config_str = "net1:foo:199"
|
config_str = "net1:foo:199"
|
||||||
expected_msg = self._range_invalid_vlan(config_str, 1)
|
expected_msg = self._range_invalid_vlan(config_str, 1)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_one, config_str)
|
self.parse_one, config_str)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
def test_parse_one_net_vlan2_not_int(self):
|
def test_parse_one_net_vlan2_not_int(self):
|
||||||
config_str = "net1:100:bar"
|
config_str = "net1:100:bar"
|
||||||
expected_msg = self._range_invalid_vlan(config_str, 2)
|
expected_msg = self._range_invalid_vlan(config_str, 2)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_one, config_str)
|
self.parse_one, config_str)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
@ -313,14 +312,14 @@ class TestParseOneVlanRange(UtilTestParseVlanRanges):
|
|||||||
def test_parse_one_net_range_bad_vlan1(self):
|
def test_parse_one_net_range_bad_vlan1(self):
|
||||||
config_str = "net1:9000:150"
|
config_str = "net1:9000:150"
|
||||||
expected_msg = self._nrange_invalid_vlan(config_str, 1)
|
expected_msg = self._nrange_invalid_vlan(config_str, 1)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_one, config_str)
|
self.parse_one, config_str)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
def test_parse_one_net_range_bad_vlan2(self):
|
def test_parse_one_net_range_bad_vlan2(self):
|
||||||
config_str = "net1:4000:4999"
|
config_str = "net1:4000:4999"
|
||||||
expected_msg = self._nrange_invalid_vlan(config_str, 2)
|
expected_msg = self._nrange_invalid_vlan(config_str, 2)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_one, config_str)
|
self.parse_one, config_str)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
@ -364,7 +363,7 @@ class TestParseVlanRangeList(UtilTestParseVlanRanges):
|
|||||||
config_list = ["net1:100",
|
config_list = ["net1:100",
|
||||||
"net2:200:299"]
|
"net2:200:299"]
|
||||||
expected_msg = self._range_err_bad_count(config_list[0])
|
expected_msg = self._range_err_bad_count(config_list[0])
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_list, config_list)
|
self.parse_list, config_list)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
@ -372,7 +371,7 @@ class TestParseVlanRangeList(UtilTestParseVlanRanges):
|
|||||||
config_list = ["net1:100:199",
|
config_list = ["net1:100:199",
|
||||||
"net2:200:0x200"]
|
"net2:200:0x200"]
|
||||||
expected_msg = self._range_invalid_vlan(config_list[1], 2)
|
expected_msg = self._range_invalid_vlan(config_list[1], 2)
|
||||||
err = self.assertRaises(n_exc.NetworkVlanRangeError,
|
err = self.assertRaises(exc.NetworkVlanRangeError,
|
||||||
self.parse_list, config_list)
|
self.parse_list, config_list)
|
||||||
self.assertEqual(expected_msg, str(err))
|
self.assertEqual(expected_msg, str(err))
|
||||||
|
|
||||||
|
@ -27,13 +27,13 @@ from neutron_lib.callbacks import resources
|
|||||||
from neutron_lib import constants
|
from neutron_lib import constants
|
||||||
from neutron_lib import context
|
from neutron_lib import context
|
||||||
from neutron_lib import exceptions as n_exc
|
from neutron_lib import exceptions as n_exc
|
||||||
|
from neutron_lib.exceptions import placement as placement_exc
|
||||||
from neutron_lib.plugins import directory
|
from neutron_lib.plugins import directory
|
||||||
from novaclient import exceptions as nova_exc
|
from novaclient import exceptions as nova_exc
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
import webob.exc
|
import webob.exc
|
||||||
|
|
||||||
from neutron.common import exceptions as neutron_exc
|
|
||||||
from neutron.conf.plugins.ml2 import config as ml2_config
|
from neutron.conf.plugins.ml2 import config as ml2_config
|
||||||
from neutron.conf.plugins.ml2.drivers import driver_type
|
from neutron.conf.plugins.ml2.drivers import driver_type
|
||||||
from neutron.db import agents_db
|
from neutron.db import agents_db
|
||||||
@ -1555,7 +1555,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
|
|||||||
segment_id = segment['segment']['id']
|
segment_id = segment['segment']['id']
|
||||||
self._setup_host_mappings([(segment_id, 'fakehost')])
|
self._setup_host_mappings([(segment_id, 'fakehost')])
|
||||||
self.mock_p_client.get_inventory.side_effect = (
|
self.mock_p_client.get_inventory.side_effect = (
|
||||||
neutron_exc.PlacementResourceProviderNotFound(
|
placement_exc.PlacementResourceProviderNotFound(
|
||||||
resource_provider=segment_id,
|
resource_provider=segment_id,
|
||||||
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
|
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
|
||||||
aggregate = mock.MagicMock()
|
aggregate = mock.MagicMock()
|
||||||
@ -1755,7 +1755,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
|
|||||||
self.batch_notifier._notify()
|
self.batch_notifier._notify()
|
||||||
self._assert_inventory_delete(segment_id, aggregate)
|
self._assert_inventory_delete(segment_id, aggregate)
|
||||||
self.mock_p_client.get_inventory.side_effect = (
|
self.mock_p_client.get_inventory.side_effect = (
|
||||||
neutron_exc.PlacementResourceProviderNotFound(
|
placement_exc.PlacementResourceProviderNotFound(
|
||||||
resource_provider=segment_id,
|
resource_provider=segment_id,
|
||||||
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
|
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
|
||||||
aggregate.hosts = []
|
aggregate.hosts = []
|
||||||
@ -1798,7 +1798,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
|
|||||||
aggregate.id = 1
|
aggregate.id = 1
|
||||||
aggregate.hosts = ['fakehost1']
|
aggregate.hosts = ['fakehost1']
|
||||||
self.mock_p_client.list_aggregates.side_effect = (
|
self.mock_p_client.list_aggregates.side_effect = (
|
||||||
neutron_exc.PlacementAggregateNotFound(
|
placement_exc.PlacementAggregateNotFound(
|
||||||
resource_provider=segment_id))
|
resource_provider=segment_id))
|
||||||
self.mock_n_client.aggregates.list.return_value = [aggregate]
|
self.mock_n_client.aggregates.list.return_value = [aggregate]
|
||||||
host = 'otherfakehost'
|
host = 'otherfakehost'
|
||||||
@ -2015,7 +2015,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
|
|||||||
inventory, original_inventory = self._get_inventory(100, 2)
|
inventory, original_inventory = self._get_inventory(100, 2)
|
||||||
self.mock_p_client.get_inventory.return_value = inventory
|
self.mock_p_client.get_inventory.return_value = inventory
|
||||||
self.mock_p_client.update_inventory.side_effect = (
|
self.mock_p_client.update_inventory.side_effect = (
|
||||||
neutron_exc.PlacementInventoryUpdateConflict(
|
placement_exc.PlacementInventoryUpdateConflict(
|
||||||
resource_provider=mock.ANY,
|
resource_provider=mock.ANY,
|
||||||
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
|
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
|
||||||
self.segments_plugin.nova_updater._update_nova_inventory(event)
|
self.segments_plugin.nova_updater._update_nova_inventory(event)
|
||||||
@ -2035,7 +2035,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
|
|||||||
self.segments_plugin.nova_updater._update_nova_inventory,
|
self.segments_plugin.nova_updater._update_nova_inventory,
|
||||||
mock.ANY, total=1, reserved=0)
|
mock.ANY, total=1, reserved=0)
|
||||||
self.mock_p_client.get_inventory.side_effect = (
|
self.mock_p_client.get_inventory.side_effect = (
|
||||||
neutron_exc.PlacementEndpointNotFound())
|
placement_exc.PlacementEndpointNotFound())
|
||||||
self.segments_plugin.nova_updater._send_notifications([event])
|
self.segments_plugin.nova_updater._send_notifications([event])
|
||||||
self.assertTrue(log.called)
|
self.assertTrue(log.called)
|
||||||
|
|
||||||
@ -2205,11 +2205,11 @@ class PlacementAPIClientTestCase(base.DietTestCase):
|
|||||||
def test_get_inventory_not_found_no_resource_provider(self):
|
def test_get_inventory_not_found_no_resource_provider(self):
|
||||||
self._test_get_inventory_not_found(
|
self._test_get_inventory_not_found(
|
||||||
"No resource provider with uuid",
|
"No resource provider with uuid",
|
||||||
neutron_exc.PlacementResourceProviderNotFound)
|
placement_exc.PlacementResourceProviderNotFound)
|
||||||
|
|
||||||
def test_get_inventory_not_found_no_inventory(self):
|
def test_get_inventory_not_found_no_inventory(self):
|
||||||
self._test_get_inventory_not_found(
|
self._test_get_inventory_not_found(
|
||||||
"No inventory of class", neutron_exc.PlacementInventoryNotFound)
|
"No inventory of class", placement_exc.PlacementInventoryNotFound)
|
||||||
|
|
||||||
def test_get_inventory_not_found_unknown_cause(self):
|
def test_get_inventory_not_found_unknown_cause(self):
|
||||||
self._test_get_inventory_not_found("Unknown cause", ks_exc.NotFound)
|
self._test_get_inventory_not_found("Unknown cause", ks_exc.NotFound)
|
||||||
@ -2232,7 +2232,7 @@ class PlacementAPIClientTestCase(base.DietTestCase):
|
|||||||
expected_payload = 'fake_inventory'
|
expected_payload = 'fake_inventory'
|
||||||
resource_class = 'fake_resource_class'
|
resource_class = 'fake_resource_class'
|
||||||
self.mock_request.side_effect = ks_exc.Conflict
|
self.mock_request.side_effect = ks_exc.Conflict
|
||||||
self.assertRaises(neutron_exc.PlacementInventoryUpdateConflict,
|
self.assertRaises(placement_exc.PlacementInventoryUpdateConflict,
|
||||||
self.client.update_inventory, rp_uuid,
|
self.client.update_inventory, rp_uuid,
|
||||||
expected_payload, resource_class)
|
expected_payload, resource_class)
|
||||||
|
|
||||||
@ -2261,11 +2261,11 @@ class PlacementAPIClientTestCase(base.DietTestCase):
|
|||||||
def test_list_aggregates_not_found(self):
|
def test_list_aggregates_not_found(self):
|
||||||
rp_uuid = uuidutils.generate_uuid()
|
rp_uuid = uuidutils.generate_uuid()
|
||||||
self.mock_request.side_effect = ks_exc.NotFound
|
self.mock_request.side_effect = ks_exc.NotFound
|
||||||
self.assertRaises(neutron_exc.PlacementAggregateNotFound,
|
self.assertRaises(placement_exc.PlacementAggregateNotFound,
|
||||||
self.client.list_aggregates, rp_uuid)
|
self.client.list_aggregates, rp_uuid)
|
||||||
|
|
||||||
def test_placement_api_not_found(self):
|
def test_placement_api_not_found(self):
|
||||||
rp_uuid = uuidutils.generate_uuid()
|
rp_uuid = uuidutils.generate_uuid()
|
||||||
self.mock_request.side_effect = ks_exc.EndpointNotFound
|
self.mock_request.side_effect = ks_exc.EndpointNotFound
|
||||||
self.assertRaises(neutron_exc.PlacementEndpointNotFound,
|
self.assertRaises(placement_exc.PlacementEndpointNotFound,
|
||||||
self.client.list_aggregates, rp_uuid)
|
self.client.list_aggregates, rp_uuid)
|
||||||
|
Loading…
Reference in New Issue
Block a user