(self, response)
| 71 | |
| 72 | class S3Error(S3Exception): |
| 73 | def __init__(self, response): |
| 74 | self.status = response["status"] |
| 75 | self.reason = response["reason"] |
| 76 | self.info = { |
| 77 | "Code": "", |
| 78 | "Message": "", |
| 79 | "Resource": "" |
| 80 | } |
| 81 | debug("S3Error: %s (%s)" % (self.status, self.reason)) |
| 82 | if "headers" in response: |
| 83 | for header in response["headers"]: |
| 84 | debug("HttpHeader: %s: %s" % (header, response["headers"][header])) |
| 85 | if "data" in response and response["data"]: |
| 86 | try: |
| 87 | tree = S3.BaseUtils.getTreeFromXml(response["data"]) |
| 88 | except XmlParseError: |
| 89 | debug("Not an XML response") |
| 90 | else: |
| 91 | try: |
| 92 | self.info.update(self.parse_error_xml(tree)) |
| 93 | except Exception as e: |
| 94 | error("Error parsing xml: %s. ErrorXML: %s" % (e, response["data"])) |
| 95 | |
| 96 | self.code = self.info["Code"] |
| 97 | self.message = self.info["Message"] |
| 98 | self.resource = self.info["Resource"] |
| 99 | |
| 100 | def __unicode__(self): |
| 101 | retval = u"%d " % (self.status) |
nothing calls this directly
no test coverage detected