# Copyright 2013 Nebula Inc. # # 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. # """Exception definitions""" class Base(Exception): """Base TripleO exception.""" class Timeout(Base): """An operation timed out""" class WorkflowServiceError(Base): """The service type is unknown""" class WebSocketTimeout(Base): """Timed out waiting for messages on the websocket""" class WebSocketConnectionClosed(Base): """Websocket connection is closed before wait for messages""" class NotFound(Base): """Resource not found""" class LookupError(Base): """Lookup Error""" class DeploymentError(Base): """Deployment failed""" class PlanEnvWorkflowError(Base): """Plan Environment workflow has failed""" class StackInProgress(Base): """Unable to deploy as the stack is busy""" class RootUserExecution(Base): """Command was executed by a root user""" class InvalidConfiguration(Base, ValueError): """Invalid parameters were specified for the deployment""" class IntrospectionError(Base): """Introspection failed""" class RegisterOrUpdateError(WorkflowServiceError): """Introspection failed""" class NodeProvideError(WorkflowServiceError): """Node Provide failed.""" class NodeConfigurationError(WorkflowServiceError): """Node Configuration failed.""" class StateTransitionFailed(Base): """Ironic node state transition failed""" class ProfileMatchingError(Base): """Failed to validate or assign node profiles""" class PlanCreationError(Base): """Plan creation failed""" class PlanExportError(Base): """Plan export failed""" class WorkflowActionError(Base): """Workflow action failed""" msg_format = "Action {} execution failed: {}" def __init__(self, action='', output=''): message = self.msg_format.format(action, output) super(WorkflowActionError, self).__init__(message) class DownloadError(Base): """Download attempt failed""" class LogFetchError(Base): """Fetching logs failed""" class ContainerDeleteFailed(Base): """Container deletion failed""" class UndercloudUpgradeNotConfirmed(Base): """Undercloud upgrade security question not confirmed.""" class CellExportError(Base): """Cell export failed"""