def enableLogging(self, target_prefix_uri): el = self.tree.find(".//LoggingEnabled") if not el: el = getTreeFromXml(self.LOG_TEMPLATE) self.tree.append(el) el.find(".//TargetBucket").text = target_prefix_uri.bucket() el.find(".//TargetPrefix").text = target_prefix_uri.object()
def __init__(self, response): self.status = response["status"] self.reason = response["reason"] self.info = { "Code" : "", "Message" : "", "Resource" : "" } debug("S3Error: %s (%s)" % (self.status, self.reason)) if "headers" in response: for header in response["headers"]: debug("HttpHeader: %s: %s" % (header, response["headers"][header])) if "data" in response and response["data"]: try: tree = getTreeFromXml(response["data"]) except XmlParseError: debug("Not an XML response") else: try: self.info.update(self.parse_error_xml(tree)) except Exception as e: error("Error parsing xml: %s. ErrorXML: %s" % (e, response["data"])) self.code = self.info["Code"] self.message = self.info["Message"] self.resource = self.info["Resource"]
def __init__(self, response): self.status = response["status"] self.reason = response["reason"] self.info = { "Code" : "", "Message" : "", "Resource" : "" } debug("S3Error: %s (%s)" % (self.status, self.reason)) if response.has_key("headers"): for header in response["headers"]: debug("HttpHeader: %s: %s" % (header, response["headers"][header])) if response.has_key("data"): tree = getTreeFromXml(response["data"]) error_node = tree if not error_node.tag == "Error": error_node = tree.find(".//Error") if error_node: for child in error_node.getchildren(): if child.text != "": debug("ErrorXML: " + child.tag + ": " + repr(child.text)) self.info[child.tag] = child.text else: debug("S3Error response empty: %s (%s)" % (self.status, self.reason)) self.code = self.info["Code"] self.message = self.info["Message"] self.resource = self.info["Resource"]
def __str__(self): tree = getTreeFromXml(ACL.EMPTY_ACL) tree.attrib['xmlns'] = "http://s3.amazonaws.com/doc/2006-03-01/" owner = tree.find(".//Owner//ID") owner.text = self.owner_id acl = tree.find(".//AccessControlList") for grantee in self.grantees: acl.append(grantee.getElement()) return ET.tostring(tree)
def __init__(self, xml = None, tree = None): if not xml: xml = DistributionConfig.EMPTY_CONFIG if not tree: tree = getTreeFromXml(xml) if tree.tag != "DistributionConfig": raise ValueError("Expected <DistributionConfig /> xml, got: <%s />" % tree.tag) self.parse(tree)
def __init__(self, xml = None, tree = None): if xml is None: xml = DistributionConfig.EMPTY_CONFIG if tree is None: tree = getTreeFromXml(xml) if tree.tag != "DistributionConfig": raise ValueError("Expected <DistributionConfig /> xml, got: <%s />" % tree.tag) self.parse(tree)
def __init__(self, xml = None): if not xml: xml = ACL.EMPTY_ACL self.grantees = [] self.owner_id = "" self.owner_nick = "" tree = getTreeFromXml(xml) self.parseOwner(tree) self.parseGrants(tree)
def __init__(self, xml=None): if not xml: xml = ACL.EMPTY_ACL self.grantees = [] self.owner_id = "" self.owner_nick = "" tree = getTreeFromXml(xml) self.parseOwner(tree) self.parseGrants(tree)
def get_parts_information(self, uri, upload_id): multipart_response = self.s3.list_multipart(uri, upload_id) tree = getTreeFromXml(multipart_response['data']) parts = dict() for elem in parseNodes(tree): try: parts[int(elem['PartNumber'])] = {'checksum': elem['ETag'], 'size': elem['Size']} except KeyError: pass return parts
def get_parts_information(self, uri, upload_id): multipart_response = self.s3.list_multipart(uri, upload_id) tree = getTreeFromXml(multipart_response['data']) parts = defaultdict(lambda: None) for elem in parseNodes(tree): try: parts[int(elem['PartNumber'])] = { 'checksum': elem['ETag'], 'size': elem['Size'] } except KeyError: pass return parts
def __init__(self, response): self.status = response["status"] self.reason = response["reason"] self.info = {} debug("S3Error: %s (%s)" % (self.status, self.reason)) if response.has_key("headers"): for header in response["headers"]: debug("HttpHeader: %s: %s" % (header, response["headers"][header])) if response.has_key("data"): tree = getTreeFromXml(response["data"]) error_node = tree if not error_node.tag == "Error": error_node = tree.find(".//Error") for child in error_node.getchildren(): if child.text != "": debug("ErrorXML: " + child.tag + ": " + repr(child.text)) self.info[child.tag] = child.text
def get_unique_upload_id(self, uri): upload_id = None multipart_response = self.s3.get_multipart(uri) tree = getTreeFromXml(multipart_response['data']) for mpupload in parseNodes(tree): try: mp_upload_id = mpupload['UploadId'] mp_path = mpupload['Key'] info("mp_path: %s, object: %s" % (mp_path, uri.object())) if mp_path == uri.object(): if upload_id is not None: raise ValueError("More than one UploadId for URI %s. Disable multipart upload, or use\n %s multipart %s\nto list the Ids, then pass a unique --upload-id into the put command." % (uri, sys.argv[0], uri)) upload_id = mp_upload_id except KeyError: pass return upload_id
def get_unique_upload_id(self, uri): upload_id = None multipart_response = self.s3.get_multipart(uri) tree = getTreeFromXml(multipart_response['data']) for mpupload in parseNodes(tree): try: mp_upload_id = mpupload['UploadId'] mp_path = mpupload['Key'] info("mp_path: %s, object: %s" % (mp_path, uri.object())) if mp_path == uri.object(): if upload_id is not None: raise ValueError( "More than one UploadId for URI %s. Disable multipart upload, or use\n %s multipart %s\nto list the Ids, then pass a unique --upload-id into the put command." % (uri, sys.argv[0], uri)) upload_id = mp_upload_id except KeyError: pass return upload_id
def __init__(self, response): self.status = response["status"] self.reason = response["reason"] self.info = {"Code": "", "Message": "", "Resource": ""} debug("S3Error: %s (%s)" % (self.status, self.reason)) if response.has_key("headers"): for header in response["headers"]: debug("HttpHeader: %s: %s" % (header, response["headers"][header])) if response.has_key("data") and response["data"]: try: tree = getTreeFromXml(response["data"]) except ET.ParseError: debug("Not an XML response") else: self.info.update(self.parse_error_xml(tree)) self.code = self.info["Code"] self.message = self.info["Message"] self.resource = self.info["Resource"]
def __init__(self, response): self.status = response["status"] self.reason = response["reason"] self.info = { "Code" : "", "Message" : "", "Resource" : "" } debug("S3Error: %s (%s)" % (self.status, self.reason)) if response.has_key("headers"): for header in response["headers"]: debug("HttpHeader: %s: %s" % (header, response["headers"][header])) if response.has_key("data") and response["data"]: try: tree = getTreeFromXml(response["data"]) except ET.ParseError: debug("Not an XML response") else: self.info.update(self.parse_error_xml(tree)) self.code = self.info["Code"] self.message = self.info["Message"] self.resource = self.info["Resource"]
def __init__(self, xml): tree = getTreeFromXml(xml) if tree.tag != "DistributionList": raise ValueError("Expected <DistributionList /> xml, got: <%s />" % tree.tag) self.parse(tree)
def __init__(self, xml): tree = getTreeFromXml(xml) if tree.tag != "Invalidation": raise ValueError("Expected <Invalidation /> xml, got: <%s />" % tree.tag) self.parse(tree)
def __init__(self, xml=None): if not xml: xml = self.LOG_DISABLED self.tree = getTreeFromXml(xml) self.tree.attrib['xmlns'] = "http://doc.s3.amazonaws.com/2006-03-01"