053eae0c8b
Neutron-vpnaas is intending to bring back into the stadium. So, neutron-vpnaas must migrate it's API definition to neutron-lib. Co-Authored-By: Anh Tran <trananhkma@gmail.com> Co-Authored-By: Hunt Xu <mhuntxu@gmail.com> Change-Id: I06760fbbbc87570412a21364fba58efe880a907b
188 lines
6.2 KiB
Python
188 lines
6.2 KiB
Python
# 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
|
|
|
|
|
|
# VPNaaS Exceptions
|
|
class VPNServiceNotFound(exceptions.NotFound):
|
|
message = _("VPNService %(vpnservice_id)s could not be found")
|
|
|
|
|
|
class IPsecSiteConnectionNotFound(exceptions.NotFound):
|
|
message = _("ipsec_site_connection %(ipsec_site_conn_id)s not found")
|
|
|
|
|
|
class IPsecSiteConnectionDpdIntervalValueError(exceptions.InvalidInput):
|
|
message = _("ipsec_site_connection %(attr)s is "
|
|
"equal to or less than dpd_interval")
|
|
|
|
|
|
class IPsecSiteConnectionMtuError(exceptions.InvalidInput):
|
|
message = _("ipsec_site_connection MTU %(mtu)d is too small "
|
|
"for ipv%(version)s")
|
|
|
|
|
|
class IPsecSiteConnectionPeerCidrError(exceptions.InvalidInput):
|
|
message = _("ipsec_site_connection peer cidr %(peer_cidr)s is "
|
|
"invalid CIDR")
|
|
|
|
|
|
class IKEPolicyNotFound(exceptions.NotFound):
|
|
message = _("IKEPolicy %(ikepolicy_id)s could not be found")
|
|
|
|
|
|
class IPsecPolicyNotFound(exceptions.NotFound):
|
|
message = _("IPsecPolicy %(ipsecpolicy_id)s could not be found")
|
|
|
|
|
|
class IKEPolicyInUse(exceptions.InUse):
|
|
message = _("IKEPolicy %(ikepolicy_id)s is in use by existing "
|
|
"IPsecSiteConnection and can't be updated or deleted")
|
|
|
|
|
|
class VPNServiceInUse(exceptions.InUse):
|
|
message = _("VPNService %(vpnservice_id)s is still in use")
|
|
|
|
|
|
class SubnetInUseByVPNService(exceptions.InUse):
|
|
message = _("Subnet %(subnet_id)s is used by VPNService %(vpnservice_id)s")
|
|
|
|
|
|
class SubnetInUseByEndpointGroup(exceptions.InUse):
|
|
message = _("Subnet %(subnet_id)s is used by endpoint group %(group_id)s")
|
|
|
|
|
|
class VPNStateInvalidToUpdate(exceptions.BadRequest):
|
|
message = _("Invalid state %(state)s of vpnaas resource %(id)s "
|
|
"for updating")
|
|
|
|
|
|
class IPsecPolicyInUse(exceptions.InUse):
|
|
message = _("IPsecPolicy %(ipsecpolicy_id)s is in use by existing "
|
|
"IPsecSiteConnection and can't be updated or deleted")
|
|
|
|
|
|
class DeviceDriverImportError(exceptions.NeutronException):
|
|
message = _("Can not load driver :%(device_driver)s")
|
|
|
|
|
|
class SubnetIsNotConnectedToRouter(exceptions.BadRequest):
|
|
message = _("Subnet %(subnet_id)s is not "
|
|
"connected to Router %(router_id)s")
|
|
|
|
|
|
class RouterIsNotExternal(exceptions.BadRequest):
|
|
message = _("Router %(router_id)s has no external network gateway set")
|
|
|
|
|
|
class VPNPeerAddressNotResolved(exceptions.InvalidInput):
|
|
message = _("Peer address %(peer_address)s cannot be resolved")
|
|
|
|
|
|
class ExternalNetworkHasNoSubnet(exceptions.BadRequest):
|
|
message = _("Router's %(router_id)s external network has "
|
|
"no %(ip_version)s subnet")
|
|
|
|
|
|
# VPN Endpoint Group Exceptions
|
|
class VPNEndpointGroupNotFound(exceptions.NotFound):
|
|
message = _("Endpoint group %(endpoint_group_id)s could not be found")
|
|
|
|
|
|
class InvalidEndpointInEndpointGroup(exceptions.InvalidInput):
|
|
message = _("Endpoint '%(endpoint)s' is invalid for group "
|
|
"type '%(group_type)s': %(why)s")
|
|
|
|
|
|
class MissingEndpointForEndpointGroup(exceptions.BadRequest):
|
|
message = _("No endpoints specified for endpoint group '%(group)s'")
|
|
|
|
|
|
class NonExistingSubnetInEndpointGroup(exceptions.InvalidInput):
|
|
message = _("Subnet %(subnet)s in endpoint group does not exist")
|
|
|
|
|
|
class MixedIPVersionsForIPSecEndpoints(exceptions.BadRequest):
|
|
message = _("Endpoints in group %(group)s do not have the same IP "
|
|
"version, as required for IPSec site-to-site connection")
|
|
|
|
|
|
class MixedIPVersionsForPeerCidrs(exceptions.BadRequest):
|
|
message = _("Peer CIDRs do not have the same IP version, as required "
|
|
"for IPSec site-to-site connection")
|
|
|
|
|
|
class MixedIPVersionsForIPSecConnection(exceptions.BadRequest):
|
|
message = _("IP versions are not compatible between peer and local "
|
|
"endpoints")
|
|
|
|
|
|
class InvalidEndpointGroup(exceptions.BadRequest):
|
|
message = _("Endpoint group%(suffix)s %(which)s cannot be specified, "
|
|
"when VPN Service has subnet specified")
|
|
|
|
|
|
class WrongEndpointGroupType(exceptions.BadRequest):
|
|
message = _("Endpoint group %(which)s type is '%(group_type)s' and "
|
|
"should be '%(expected)s'")
|
|
|
|
|
|
class PeerCidrsInvalid(exceptions.BadRequest):
|
|
message = _("Peer CIDRs cannot be specified, when using endpoint "
|
|
"groups")
|
|
|
|
|
|
class MissingPeerCidrs(exceptions.BadRequest):
|
|
message = _("Missing peer CIDRs for IPsec site-to-site connection")
|
|
|
|
|
|
class MissingRequiredEndpointGroup(exceptions.BadRequest):
|
|
message = _("Missing endpoint group%(suffix)s %(which)s for IPSec "
|
|
"site-to-site connection")
|
|
|
|
|
|
class EndpointGroupInUse(exceptions.BadRequest):
|
|
message = _("Endpoint group %(group_id)s is in use and cannot be deleted")
|
|
|
|
|
|
# VPN Flavors Exceptions
|
|
class FlavorsPluginNotLoaded(exceptions.NotFound):
|
|
message = _("Flavors plugin not found")
|
|
|
|
|
|
class NoProviderFoundForFlavor(exceptions.NotFound):
|
|
message = _("No service provider found for flavor %(flavor_id)s")
|
|
|
|
|
|
# IPsec Service Driver Validator Exceptions
|
|
class IpsecValidationFailure(exceptions.BadRequest):
|
|
message = _("IPSec does not support %(resource)s attribute %(key)s "
|
|
"with value '%(value)s'")
|
|
|
|
|
|
class IkeValidationFailure(exceptions.BadRequest):
|
|
message = _("IKE does not support %(resource)s attribute %(key)s "
|
|
"with value '%(value)s'")
|
|
|
|
|
|
# Cisco Csr Driver Exceptions
|
|
class CsrInternalError(exceptions.NeutronException):
|
|
message = _("Fatal - %(reason)s")
|
|
|
|
|
|
# Cisco CSR Driver Validator Exceptions
|
|
class CsrValidationFailure(exceptions.BadRequest):
|
|
message = _("Cisco CSR does not support %(resource)s attribute %(key)s "
|
|
"with value '%(value)s'")
|