# $SnapHashLicense:
#
# SnapLogic - Open source data services
#
# Copyright (C) 2008, SnapLogic, Inc. All rights reserved.
#
# See http://www.snaplogic.org for more information about
# the SnapLogic project.
#
# This program is free software, distributed under the terms of
# the GNU General Public License Version 2. See the LEGAL file
# at the top of the source tree.
#
# "SnapLogic" is a trademark of SnapLogic, Inc.
#
#
# $
# $Id: exceptions.py 4030 2008-08-22 22:45:29Z grisha $
ERROR_GUID_CONFLICT = 0x01
ERROR_GEN_ID_CONFLICT = 0x02
class SnapiException(Exception):
"""
Defines generic SnAPI exception.
"""
def __init__(self, msg):
"""
Initialize a new exception object.
@param msg: Exception message
@type msg: string
"""
Exception.__init__(self, msg)
class SnapiHttpException(SnapiException):
"""
Defines SnAPI exception that results from a 4xx or 5xx
HTTP status code.
"""
def __init__(self, status, reason, snap_status=None, body=None):
"""
Initialize a new exception object.
@param status: HTTP status code that caused this exception
@type status: string (str or unicode)
@param reason: HTTP reason
@type reason: string (str or unicode)
@param snap_status: SnapLogic-specific status, from "X-Snapi-Status" header field
@type snap_status: string (str or unicode)
@param body: Body of the response
@type body: string (str or unicode)
"""
self.status = status
self.reason = reason
self.body = body
self.snap_status = snap_status
msg = "SnAPI Error: %s %s" % (self.status, self.reason)
if self.body:
msg = "%s (%s)" % (msg, self.body)
Exception.__init__(self, msg)
|