neutron-lib/neutron_lib/exceptions/l3.py

99 lines
3.5 KiB
Python

# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from neutron_lib._i18n import _
from neutron_lib import exceptions
# L3 Exceptions
class RouterNotFound(exceptions.NotFound):
message = _("Router %(router_id)s could not be found")
class RouterInUse(exceptions.InUse):
message = _("Router %(router_id)s %(reason)s")
def __init__(self, **kwargs):
if 'reason' not in kwargs:
kwargs['reason'] = "still has ports"
super(RouterInUse, self).__init__(**kwargs)
class RouterInterfaceNotFound(exceptions.NotFound):
message = _("Router %(router_id)s does not have "
"an interface with id %(port_id)s")
class RouterInterfaceNotFoundForSubnet(exceptions.NotFound):
message = _("Router %(router_id)s has no interface "
"on subnet %(subnet_id)s")
class RouterInterfaceInUseByFloatingIP(exceptions.InUse):
message = _("Router interface for subnet %(subnet_id)s on router "
"%(router_id)s cannot be deleted, as it is required "
"by one or more floating IPs.")
class FloatingIPNotFound(exceptions.NotFound):
message = _("Floating IP %(floatingip_id)s could not be found")
class ExternalGatewayForFloatingIPNotFound(exceptions.NotFound):
message = _("External network %(external_network_id)s is not reachable "
"from subnet %(subnet_id)s. Therefore, cannot associate "
"Port %(port_id)s with a Floating IP.")
class FloatingIPPortAlreadyAssociated(exceptions.InUse):
message = _("Cannot associate floating IP %(floating_ip_address)s "
"(%(fip_id)s) with port %(port_id)s "
"using fixed IP %(fixed_ip)s, as that fixed IP already "
"has a floating IP on external network %(net_id)s.")
class RouterExternalGatewayInUseByFloatingIp(exceptions.InUse):
message = _("Gateway cannot be updated for router %(router_id)s, since a "
"gateway to external network %(net_id)s is required by one or "
"more floating IPs.")
class RouterInterfaceAttachmentConflict(exceptions.Conflict):
message = _("Error %(reason)s while attempting the operation.")
class RouterNotCompatibleWithAgent(exceptions.NeutronException):
message = _("Router '%(router_id)s' is not compatible with this agent.")
class RouterNotFoundInRouterFactory(exceptions.NeutronException):
message = _("Router '%(router_id)s' with features '%(features)s' could "
"not be found in the router factory.")
class FloatingIpSetupException(exceptions.NeutronException):
def __init__(self, message=None):
self.message = message
super(FloatingIpSetupException, self).__init__()
class AbortSyncRouters(exceptions.NeutronException):
message = _("Aborting periodic_sync_routers_task due to an error.")
class IpTablesApplyException(exceptions.NeutronException):
def __init__(self, message=None):
self.message = message
super(IpTablesApplyException, self).__init__()