diff env/lib/python3.7/site-packages/boto/cloudfront/invalidation.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/cloudfront/invalidation.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-# Copyright (c) 2006-2010 Chris Moyer http://coredumped.org/
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import uuid
-
-from boto.compat import urllib
-from boto.resultset import ResultSet
-
-
-class InvalidationBatch(object):
-    """A simple invalidation request.
-        :see: http://docs.amazonwebservices.com/AmazonCloudFront/2010-08-01/APIReference/index.html?InvalidationBatchDatatype.html
-    """
-
-    def __init__(self, paths=None, connection=None, distribution=None, caller_reference=''):
-        """Create a new invalidation request:
-            :paths: An array of paths to invalidate
-        """
-        self.paths = paths or []
-        self.distribution = distribution
-        self.caller_reference = caller_reference
-        if not self.caller_reference:
-            self.caller_reference = str(uuid.uuid4())
-
-        # If we passed in a distribution,
-        # then we use that as the connection object
-        if distribution:
-            self.connection = distribution
-        else:
-            self.connection = connection
-
-    def __repr__(self):
-        return '<InvalidationBatch: %s>' % self.id
-
-    def add(self, path):
-        """Add another path to this invalidation request"""
-        return self.paths.append(path)
-
-    def remove(self, path):
-        """Remove a path from this invalidation request"""
-        return self.paths.remove(path)
-
-    def __iter__(self):
-        return iter(self.paths)
-
-    def __getitem__(self, i):
-        return self.paths[i]
-
-    def __setitem__(self, k, v):
-        self.paths[k] = v
-
-    def escape(self, p):
-        """Escape a path, make sure it begins with a slash and contains no invalid characters. Retain literal wildcard characters."""
-        if not p[0] == "/":
-            p = "/%s" % p
-        return urllib.parse.quote(p, safe = "/*")
-
-    def to_xml(self):
-        """Get this batch as XML"""
-        assert self.connection is not None
-        s = '<?xml version="1.0" encoding="UTF-8"?>\n'
-        s += '<InvalidationBatch xmlns="http://cloudfront.amazonaws.com/doc/%s/">\n' % self.connection.Version
-        for p in self.paths:
-            s += '    <Path>%s</Path>\n' % self.escape(p)
-        s += '    <CallerReference>%s</CallerReference>\n' % self.caller_reference
-        s += '</InvalidationBatch>\n'
-        return s
-
-    def startElement(self, name, attrs, connection):
-        if name == "InvalidationBatch":
-            self.paths = []
-        return None
-
-    def endElement(self, name, value, connection):
-        if name == 'Path':
-            self.paths.append(value)
-        elif name == "Status":
-            self.status = value
-        elif name == "Id":
-            self.id = value
-        elif name == "CreateTime":
-            self.create_time = value
-        elif name == "CallerReference":
-            self.caller_reference = value
-        return None
-
-
-class InvalidationListResultSet(object):
-    """
-    A resultset for listing invalidations on a given CloudFront distribution.
-    Implements the iterator interface and transparently handles paging results
-    from CF so even if you have many thousands of invalidations on the
-    distribution you can iterate over all invalidations in a reasonably
-    efficient manner.
-    """
-    def __init__(self, markers=None, connection=None, distribution_id=None,
-                 invalidations=None, marker='', next_marker=None,
-                 max_items=None, is_truncated=False):
-        self.markers = markers or []
-        self.connection = connection
-        self.distribution_id = distribution_id
-        self.marker = marker
-        self.next_marker = next_marker
-        self.max_items = max_items
-        self.auto_paginate = max_items is None
-        self.is_truncated = is_truncated
-        self._inval_cache = invalidations or []
-
-    def __iter__(self):
-        """
-        A generator function for listing invalidation requests for a given
-        CloudFront distribution.
-        """
-        conn = self.connection
-        distribution_id = self.distribution_id
-        result_set = self
-        for inval in result_set._inval_cache:
-            yield inval
-        if not self.auto_paginate:
-            return
-        while result_set.is_truncated:
-            result_set = conn.get_invalidation_requests(distribution_id,
-                                                        marker=result_set.next_marker,
-                                                        max_items=result_set.max_items)
-            for i in result_set._inval_cache:
-                yield i
-
-    def startElement(self, name, attrs, connection):
-        for root_elem, handler in self.markers:
-            if name == root_elem:
-                obj = handler(connection, distribution_id=self.distribution_id)
-                self._inval_cache.append(obj)
-                return obj
-
-    def endElement(self, name, value, connection):
-        if name == 'IsTruncated':
-            self.is_truncated = self.to_boolean(value)
-        elif name == 'Marker':
-            self.marker = value
-        elif name == 'NextMarker':
-            self.next_marker = value
-        elif name == 'MaxItems':
-            self.max_items = int(value)
-
-    def to_boolean(self, value, true_value='true'):
-        if value == true_value:
-            return True
-        else:
-            return False
-
-class InvalidationSummary(object):
-    """
-    Represents InvalidationSummary complex type in CloudFront API that lists
-    the id and status of a given invalidation request.
-    """
-    def __init__(self, connection=None, distribution_id=None, id='',
-                 status=''):
-        self.connection = connection
-        self.distribution_id = distribution_id
-        self.id = id
-        self.status = status
-
-    def __repr__(self):
-        return '<InvalidationSummary: %s>' % self.id
-
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'Id':
-            self.id = value
-        elif name == 'Status':
-            self.status = value
-
-    def get_distribution(self):
-        """
-        Returns a Distribution object representing the parent CloudFront
-        distribution of the invalidation request listed in the
-        InvalidationSummary.
-
-        :rtype: :class:`boto.cloudfront.distribution.Distribution`
-        :returns: A Distribution object representing the parent CloudFront
-                  distribution  of the invalidation request listed in the
-                  InvalidationSummary
-        """
-        return self.connection.get_distribution_info(self.distribution_id)
-
-    def get_invalidation_request(self):
-        """
-        Returns an InvalidationBatch object representing the invalidation
-        request referred to in the InvalidationSummary.
-
-        :rtype: :class:`boto.cloudfront.invalidation.InvalidationBatch`
-        :returns: An InvalidationBatch object representing the invalidation
-                  request referred to by the InvalidationSummary
-        """
-        return self.connection.invalidation_request_status(
-            self.distribution_id, self.id)