neutron/plugins/cisco-plugin/lib/quantum/plugins/cisco/common/cisco_exceptions.py

200 lines
6.9 KiB
Python

# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright 2011 Cisco Systems, Inc. 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.
#
# @author: Sumit Naiksatam, Cisco Systems, Inc.
# @author: Rohit Agarwalla, Cisco Systems, Inc.
"""
Exceptions used by the Cisco plugin
"""
from quantum.common import exceptions
class NoMoreNics(exceptions.QuantumException):
"""No more dynamic nics are available in the system"""
message = _("Unable to complete operation. No more dynamic nics are " \
"available in the system.")
class PortProfileLimit(exceptions.QuantumException):
"""Port profile limit has been hit"""
message = _("Unable to complete operation on port %(port_id)s " \
"for network %(net_id)s. The system has reached the maximum" \
"limit of allowed port profiles.")
class UCSMPortProfileLimit(exceptions.QuantumException):
"""UCSM Port profile limit has been hit"""
message = _("Unable to complete operation on port %(port_id)s " \
"for network %(net_id)s. The system has reached the maximum" \
"limit of allowed UCSM port profiles.")
class NetworksLimit(exceptions.QuantumException):
"""Total number of network objects limit has been hit"""
message = _("Unable to create new network. Number of networks" \
"for the system has exceeded the limit")
class PortProfileNotFound(exceptions.QuantumException):
"""Port profile cannot be found"""
message = _("Port profile %(portprofile_id)s could not be found " \
"for tenant %(tenant_id)s")
class MultiportNotFound(exceptions.QuantumException):
"""Multiport cannot be found"""
message = _("Multiports %(port_id)s could not be found " \
"for tenant %(tenant_id)s")
class PortProfileInvalidDelete(exceptions.QuantumException):
"""Port profile cannot be deleted since its being used"""
message = _("Port profile %(profile_id)s could not be deleted " \
"for tenant %(tenant_id)s since port associations exist")
class NetworkVlanBindingAlreadyExists(exceptions.QuantumException):
"""Binding cannot be created, since it already exists"""
message = _("NetworkVlanBinding for %(vlan_id)s and network " \
"%(network_id)s already exists")
class PortProfileAlreadyExists(exceptions.QuantumException):
"""Port profile cannot be created since it already exisits"""
message = _("PortProfile %(pp_name) for %(tenant_id)s " \
"already exists")
class PortProfileBindingAlreadyExists(exceptions.QuantumException):
"""Binding cannot be created, since it already exists"""
message = _("PortProfileBinding for port profile %(pp_id)s to " \
"port %(port_id) already exists")
class VlanIDNotFound(exceptions.QuantumException):
"""VLAN ID cannot be found"""
message = _("Vlan ID %(vlan_id)s not found")
class VlanIDNotAvailable(exceptions.QuantumException):
"""No VLAN ID available"""
message = _("No Vlan ID available")
class QosNotFound(exceptions.QuantumException):
"""QoS level with this ID cannot be found"""
message = _("QoS level %(qos_id)s could not be found " \
"for tenant %(tenant_id)s")
class QoSLevelInvalidDelete(exceptions.QuantumException):
"""QoS is associated with a port profile, hence cannot be deleted"""
message = _("QoS level %(qos_id)s could not be deleted " \
"for tenant %(tenant_id)s since association exists")
class QosNameAlreadyExists(exceptions.QuantumException):
"""QoS Name already exists"""
message = _("QoS level with name %(qos_name)s already exists " \
"for tenant %(tenant_id)s")
class CredentialNotFound(exceptions.QuantumException):
"""Credential with this ID cannot be found"""
message = _("Credential %(credential_id)s could not be found " \
"for tenant %(tenant_id)s")
class CredentialNameNotFound(exceptions.QuantumException):
"""Credential Name could not be found"""
message = _("Credential %(credential_name)s could not be found " \
"for tenant %(tenant_id)s")
class CredentialAlreadyExists(exceptions.QuantumException):
"""Credential ID already exists"""
message = _("Credential %(credential_id)s already exists " \
"for tenant %(tenant_id)s")
class NexusPortBindingNotFound(exceptions.QuantumException):
"""NexusPort Binding is not present"""
message = _("Nexus Port Binding %(port_id) is not present")
class UcsmBindingNotFound(exceptions.QuantumException):
"""Ucsm Binding is not present"""
message = _("Ucsm Binding with ip %(ucsm_ip) is not present")
class UcsmBindingAlreadyExists(exceptions.QuantumException):
"""Ucsm Binding already exists"""
message = _("Ucsm Binding with ip %(ucsm_ip) already exists")
class DynamicVnicNotFound(exceptions.QuantumException):
"""Ucsm Binding is not present"""
message = _("Dyanmic Vnic %(vnic_id) is not present")
class DynamicVnicAlreadyExists(exceptions.QuantumException):
"""Ucsm Binding already exists"""
message = _("Dynamic Vnic with name %(device_name) already exists")
class BladeNotFound(exceptions.QuantumException):
"""Blade is not present"""
message = _("Blade %(blade_id) is not present")
class BladeAlreadyExists(exceptions.QuantumException):
"""Blade already exists"""
message = _("Blade with mgmt_ip %(mgmt_ip) already exists")
class PortVnicBindingAlreadyExists(exceptions.QuantumException):
"""PortVnic Binding already exists"""
message = _("PortVnic Binding %(port_id) already exists")
class PortVnicNotFound(exceptions.QuantumException):
"""PortVnic Binding is not present"""
message = _("PortVnic Binding %(port_id) is not present")
class InvalidAttach(exceptions.QuantumException):
message = _("Unable to plug the attachment %(att_id)s into port " \
"%(port_id)s for network %(net_id)s. Association of " \
"attachment ID with port ID happens implicitly when " \
"VM is instantiated; attach operation can be " \
"performed subsequently.")
try:
_("test")
except NameError:
def _(a_string):
"""
Default implementation of the gettext string
translation function: no translation
"""
return a_string
except TypeError:
# during doctesting, _ might mean something else
pass