Merge "remove unused common exceptions"

This commit is contained in:
Zuul 2018-04-12 19:16:11 +00:00 committed by Gerrit Code Review
commit 56bd36e814
6 changed files with 42 additions and 91 deletions

View File

@ -65,24 +65,6 @@ class NetworkQosBindingError(e.NeutronException):
"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):
message = _("Failed to remove provided policy %(policy_id)s "
"because you are not authorized.")
@ -118,12 +100,6 @@ class FlatNetworkInUse(e.InUse):
"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):
message = _("Unable to create the network. "
"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.")
class PlacementInventoryUpdateConflict(e.Conflict):
message = _("Placement inventory update conflict for resource provider "
"%(resource_provider)s, resource class %(resource_class)s.")
class OutOfBoundsAllocationPool(e.BadRequest):
message = _("The allocation pool %(pool)s spans "
"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):
message = _("Bridge %(bridge)s does not exist.")
@ -214,20 +181,6 @@ class GatewayIpInUse(e.InUse):
"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):
message = _("Invalid network VXLAN port range: '%(vxlan_range)s'.")

View File

@ -33,7 +33,6 @@ from oslo_utils import excutils
import webob.exc
from neutron._i18n import _
from neutron.common import exceptions as n_exc
INTERFACE_HASH_LEN = 6
@ -88,7 +87,7 @@ def verify_tunnel_range(tunnel_range, tunnel_type):
def raise_invalid_tag(vlan_str, vlan_range):
"""Raise an exception for invalid tag."""
raise n_exc.NetworkVlanRangeError(
raise exceptions.NetworkVlanRangeError(
vlan_range=vlan_range,
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):
raise_invalid_tag(str(vlan_tag), vlan_range)
if vlan_range[1] < vlan_range[0]:
raise n_exc.NetworkVlanRangeError(
raise exceptions.NetworkVlanRangeError(
vlan_range=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()
if ':' in entry:
if entry.count(':') != 2:
raise n_exc.NetworkVlanRangeError(
raise exceptions.NetworkVlanRangeError(
vlan_range=entry,
error=_("Need exactly two values for VLAN range"))
network, vlan_min, vlan_max = entry.split(':')
if not network:
raise n_exc.PhysicalNetworkNameError()
raise exceptions.PhysicalNetworkNameError()
try:
vlan_min = int(vlan_min)

View File

@ -17,10 +17,10 @@ import functools
from keystoneauth1 import exceptions as ks_exc
from keystoneauth1 import loading as ks_loading
from neutron_lib.exceptions import placement as placement_exc
from oslo_config import cfg
from neutron._i18n import _
from neutron.common import exceptions as n_exc
PLACEMENT_API_WITH_AGGREGATES = 'placement 1.1'
@ -31,7 +31,7 @@ def check_placement_api_available(f):
try:
return f(self, *a, **k)
except ks_exc.EndpointNotFound:
raise n_exc.PlacementEndpointNotFound()
raise placement_exc.PlacementEndpointNotFound()
return wrapper
@ -107,8 +107,8 @@ class PlacementAPIClient(object):
:param resource_class: Resource class name of the inventory to be
returned
:type resource_class: str
:raises n_exc.PlacementInventoryNotFound: For failure to find inventory
for a resource provider
:raises placement_exc.PlacementInventoryNotFound: For failure to
find inventory for a resource provider
"""
url = '/resource_providers/%s/inventories/%s' % (
resource_provider_uuid, resource_class)
@ -116,10 +116,10 @@ class PlacementAPIClient(object):
return self._get(url).json()
except ks_exc.NotFound as e:
if "No resource provider with uuid" in e.details:
raise n_exc.PlacementResourceProviderNotFound(
raise placement_exc.PlacementResourceProviderNotFound(
resource_provider=resource_provider_uuid)
elif _("No inventory of class") in e.details:
raise n_exc.PlacementInventoryNotFound(
raise placement_exc.PlacementInventoryNotFound(
resource_provider=resource_provider_uuid,
resource_class=resource_class)
else:
@ -136,15 +136,15 @@ class PlacementAPIClient(object):
:type inventory: dict
:param resource_class: The resource class of the inventory to update
:type resource_class: str
:raises n_exc.PlacementInventoryUpdateConflict: For failure to updste
inventory due to outdated resource_provider_generation
:raises placement_exc.PlacementInventoryUpdateConflict: For failure to
update inventory due to outdated resource_provider_generation
"""
url = '/resource_providers/%s/inventories/%s' % (
resource_provider_uuid, resource_class)
try:
self._put(url, inventory)
except ks_exc.Conflict:
raise n_exc.PlacementInventoryUpdateConflict(
raise placement_exc.PlacementInventoryUpdateConflict(
resource_provider=resource_provider_uuid,
resource_class=resource_class)
@ -175,5 +175,5 @@ class PlacementAPIClient(object):
url, headers={'openstack-api-version':
PLACEMENT_API_WITH_AGGREGATES}).json()
except ks_exc.NotFound:
raise n_exc.PlacementAggregateNotFound(
raise placement_exc.PlacementAggregateNotFound(
resource_provider=resource_provider_uuid)

View File

@ -25,6 +25,7 @@ from neutron_lib.callbacks import events
from neutron_lib.callbacks import registry
from neutron_lib.callbacks import resources
from neutron_lib import constants
from neutron_lib.exceptions import placement as placement_exc
from neutron_lib.plugins import directory
from novaclient import client as nova_client
from novaclient import exceptions as nova_exc
@ -33,7 +34,6 @@ from oslo_log import log
from oslo_utils import excutils
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 api as db_api
from neutron.db.models import segment as segment_model
@ -166,7 +166,7 @@ class NovaSegmentNotifier(object):
for event in batched_events:
try:
event.method(event)
except n_exc.PlacementEndpointNotFound:
except placement_exc.PlacementEndpointNotFound:
LOG.debug('Placement API was not found when trying to '
'update routed networks IPv4 inventories')
return
@ -190,7 +190,7 @@ class NovaSegmentNotifier(object):
def _create_or_update_nova_inventory(self, event):
try:
self._update_nova_inventory(event)
except n_exc.PlacementResourceProviderNotFound:
except placement_exc.PlacementResourceProviderNotFound:
self._create_nova_inventory(event.segment_id, event.total,
event.reserved,
event.segment_host_mappings)
@ -208,7 +208,7 @@ class NovaSegmentNotifier(object):
ipv4_inventory,
IPV4_RESOURCE_CLASS)
return
except n_exc.PlacementInventoryUpdateConflict:
except placement_exc.PlacementInventoryUpdateConflict:
LOG.debug('Re-trying to update Nova IPv4 inventory for '
'routed network segment: %s', event.segment_id)
LOG.error('Failed to update Nova IPv4 inventory for routed '
@ -340,7 +340,7 @@ class NovaSegmentNotifier(object):
for segment_id in event.segment_ids:
try:
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 '
'for routed network segment %(segment_id)s',
{'host': event.host, 'segment_id': segment_id})

View File

@ -29,7 +29,6 @@ import testscenarios
import testtools
from neutron.common import constants as common_constants
from neutron.common import exceptions as n_exc
from neutron.common import utils
from neutron.plugins.common import utils as plugin_utils
from neutron.tests import base
@ -190,13 +189,13 @@ class TestVlanNetworkNameValid(base.BaseTestCase):
return plugin_utils.parse_network_vlan_ranges(vlan_range)
def test_validate_provider_phynet_name_mixed(self):
self.assertRaises(n_exc.PhysicalNetworkNameError,
self.assertRaises(exc.PhysicalNetworkNameError,
self.parse_vlan_ranges,
['', ':23:30', 'physnet1',
'tenant_net:100:200'])
def test_validate_provider_phynet_name_bad(self):
self.assertRaises(n_exc.PhysicalNetworkNameError,
self.assertRaises(exc.PhysicalNetworkNameError,
self.parse_vlan_ranges,
[':1:34'])
@ -215,7 +214,7 @@ class TestVlanRangeVerifyValid(UtilTestParseVlanRanges):
def check_one_vlan_invalid(self, 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.assertEqual(str(err), expected_msg)
@ -258,7 +257,7 @@ class TestVlanRangeVerifyValid(UtilTestParseVlanRanges):
def test_range_reversed(self):
bad_range = (95, 10)
expected_msg = self._vrange_invalid(bad_range)
err = self.assertRaises(n_exc.NetworkVlanRangeError,
err = self.assertRaises(exc.NetworkVlanRangeError,
self.verify_range, bad_range)
self.assertEqual(str(err), expected_msg)
@ -280,28 +279,28 @@ class TestParseOneVlanRange(UtilTestParseVlanRanges):
def test_parse_one_net_incomplete_range(self):
config_str = "net1:100"
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.assertEqual(expected_msg, str(err))
def test_parse_one_net_range_too_many(self):
config_str = "net1:100:150:200"
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.assertEqual(expected_msg, str(err))
def test_parse_one_net_vlan1_not_int(self):
config_str = "net1:foo:199"
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.assertEqual(expected_msg, str(err))
def test_parse_one_net_vlan2_not_int(self):
config_str = "net1:100:bar"
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.assertEqual(expected_msg, str(err))
@ -313,14 +312,14 @@ class TestParseOneVlanRange(UtilTestParseVlanRanges):
def test_parse_one_net_range_bad_vlan1(self):
config_str = "net1:9000:150"
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.assertEqual(expected_msg, str(err))
def test_parse_one_net_range_bad_vlan2(self):
config_str = "net1:4000:4999"
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.assertEqual(expected_msg, str(err))
@ -364,7 +363,7 @@ class TestParseVlanRangeList(UtilTestParseVlanRanges):
config_list = ["net1:100",
"net2:200:299"]
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.assertEqual(expected_msg, str(err))
@ -372,7 +371,7 @@ class TestParseVlanRangeList(UtilTestParseVlanRanges):
config_list = ["net1:100:199",
"net2:200:0x200"]
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.assertEqual(expected_msg, str(err))

View File

@ -27,13 +27,13 @@ from neutron_lib.callbacks import resources
from neutron_lib import constants
from neutron_lib import context
from neutron_lib import exceptions as n_exc
from neutron_lib.exceptions import placement as placement_exc
from neutron_lib.plugins import directory
from novaclient import exceptions as nova_exc
from oslo_config import cfg
from oslo_utils import uuidutils
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.drivers import driver_type
from neutron.db import agents_db
@ -1555,7 +1555,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
segment_id = segment['segment']['id']
self._setup_host_mappings([(segment_id, 'fakehost')])
self.mock_p_client.get_inventory.side_effect = (
neutron_exc.PlacementResourceProviderNotFound(
placement_exc.PlacementResourceProviderNotFound(
resource_provider=segment_id,
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
aggregate = mock.MagicMock()
@ -1755,7 +1755,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
self.batch_notifier._notify()
self._assert_inventory_delete(segment_id, aggregate)
self.mock_p_client.get_inventory.side_effect = (
neutron_exc.PlacementResourceProviderNotFound(
placement_exc.PlacementResourceProviderNotFound(
resource_provider=segment_id,
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
aggregate.hosts = []
@ -1798,7 +1798,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
aggregate.id = 1
aggregate.hosts = ['fakehost1']
self.mock_p_client.list_aggregates.side_effect = (
neutron_exc.PlacementAggregateNotFound(
placement_exc.PlacementAggregateNotFound(
resource_provider=segment_id))
self.mock_n_client.aggregates.list.return_value = [aggregate]
host = 'otherfakehost'
@ -2015,7 +2015,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
inventory, original_inventory = self._get_inventory(100, 2)
self.mock_p_client.get_inventory.return_value = inventory
self.mock_p_client.update_inventory.side_effect = (
neutron_exc.PlacementInventoryUpdateConflict(
placement_exc.PlacementInventoryUpdateConflict(
resource_provider=mock.ANY,
resource_class=seg_plugin.IPV4_RESOURCE_CLASS))
self.segments_plugin.nova_updater._update_nova_inventory(event)
@ -2035,7 +2035,7 @@ class TestNovaSegmentNotifier(SegmentAwareIpamTestCase):
self.segments_plugin.nova_updater._update_nova_inventory,
mock.ANY, total=1, reserved=0)
self.mock_p_client.get_inventory.side_effect = (
neutron_exc.PlacementEndpointNotFound())
placement_exc.PlacementEndpointNotFound())
self.segments_plugin.nova_updater._send_notifications([event])
self.assertTrue(log.called)
@ -2205,11 +2205,11 @@ class PlacementAPIClientTestCase(base.DietTestCase):
def test_get_inventory_not_found_no_resource_provider(self):
self._test_get_inventory_not_found(
"No resource provider with uuid",
neutron_exc.PlacementResourceProviderNotFound)
placement_exc.PlacementResourceProviderNotFound)
def test_get_inventory_not_found_no_inventory(self):
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):
self._test_get_inventory_not_found("Unknown cause", ks_exc.NotFound)
@ -2232,7 +2232,7 @@ class PlacementAPIClientTestCase(base.DietTestCase):
expected_payload = 'fake_inventory'
resource_class = 'fake_resource_class'
self.mock_request.side_effect = ks_exc.Conflict
self.assertRaises(neutron_exc.PlacementInventoryUpdateConflict,
self.assertRaises(placement_exc.PlacementInventoryUpdateConflict,
self.client.update_inventory, rp_uuid,
expected_payload, resource_class)
@ -2261,11 +2261,11 @@ class PlacementAPIClientTestCase(base.DietTestCase):
def test_list_aggregates_not_found(self):
rp_uuid = uuidutils.generate_uuid()
self.mock_request.side_effect = ks_exc.NotFound
self.assertRaises(neutron_exc.PlacementAggregateNotFound,
self.assertRaises(placement_exc.PlacementAggregateNotFound,
self.client.list_aggregates, rp_uuid)
def test_placement_api_not_found(self):
rp_uuid = uuidutils.generate_uuid()
self.mock_request.side_effect = ks_exc.EndpointNotFound
self.assertRaises(neutron_exc.PlacementEndpointNotFound,
self.assertRaises(placement_exc.PlacementEndpointNotFound,
self.client.list_aggregates, rp_uuid)