Преглед изворни кода

HUE-4737 [core] Upgrade boto to 2.42.0

Jenny Kim пре 9 година
родитељ
комит
7c63c63
100 измењених фајлова са 123 додато и 95 уклоњено
  1. 0 8
      desktop/core/ext-py/boto-2.38.0/HUE-BUILD.rst
  2. 0 0
      desktop/core/ext-py/boto-2.42.0/.gitignore
  3. 0 0
      desktop/core/ext-py/boto-2.42.0/MANIFEST.in
  4. 21 14
      desktop/core/ext-py/boto-2.42.0/PKG-INFO
  5. 20 13
      desktop/core/ext-py/boto-2.42.0/README.rst
  6. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/asadmin
  7. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/bundle_image
  8. 1 1
      desktop/core/ext-py/boto-2.42.0/bin/cfadmin
  9. 2 2
      desktop/core/ext-py/boto-2.42.0/bin/cq
  10. 1 1
      desktop/core/ext-py/boto-2.42.0/bin/cwutil
  11. 2 1
      desktop/core/ext-py/boto-2.42.0/bin/dynamodb_dump
  12. 2 1
      desktop/core/ext-py/boto-2.42.0/bin/dynamodb_load
  13. 2 1
      desktop/core/ext-py/boto-2.42.0/bin/elbadmin
  14. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/fetch_file
  15. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/glacier
  16. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/instance_events
  17. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/kill_instance
  18. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/launch_instance
  19. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/list_instances
  20. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/lss3
  21. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/mturk
  22. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/pyami_sendmail
  23. 1 1
      desktop/core/ext-py/boto-2.42.0/bin/route53
  24. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/s3put
  25. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/sdbadmin
  26. 0 0
      desktop/core/ext-py/boto-2.42.0/bin/taskadmin
  27. 1 1
      desktop/core/ext-py/boto-2.42.0/boto/__init__.py
  28. 12 8
      desktop/core/ext-py/boto-2.42.0/boto/auth.py
  29. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/auth_handler.py
  30. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/awslambda/__init__.py
  31. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/awslambda/exceptions.py
  32. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/awslambda/layer1.py
  33. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/beanstalk/__init__.py
  34. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/beanstalk/exception.py
  35. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/beanstalk/layer1.py
  36. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/beanstalk/response.py
  37. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/beanstalk/wrapper.py
  38. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cacerts/__init__.py
  39. 0 32
      desktop/core/ext-py/boto-2.42.0/boto/cacerts/cacerts.txt
  40. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudformation/__init__.py
  41. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudformation/connection.py
  42. 9 1
      desktop/core/ext-py/boto-2.42.0/boto/cloudformation/stack.py
  43. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudformation/template.py
  44. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/__init__.py
  45. 2 2
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/distribution.py
  46. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/exception.py
  47. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/identity.py
  48. 2 2
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/invalidation.py
  49. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/logging.py
  50. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/object.py
  51. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/origin.py
  52. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudfront/signers.py
  53. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudhsm/__init__.py
  54. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudhsm/exceptions.py
  55. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudhsm/layer1.py
  56. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/__init__.py
  57. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/document.py
  58. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/domain.py
  59. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/layer1.py
  60. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/layer2.py
  61. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/optionstatus.py
  62. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/search.py
  63. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/sourceattribute.py
  64. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/__init__.py
  65. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/document.py
  66. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/domain.py
  67. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/exceptions.py
  68. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/layer1.py
  69. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/layer2.py
  70. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/optionstatus.py
  71. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/search.py
  72. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearchdomain/__init__.py
  73. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearchdomain/exceptions.py
  74. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudsearchdomain/layer1.py
  75. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudtrail/__init__.py
  76. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudtrail/exceptions.py
  77. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cloudtrail/layer1.py
  78. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/codedeploy/__init__.py
  79. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/codedeploy/exceptions.py
  80. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/codedeploy/layer1.py
  81. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cognito/__init__.py
  82. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cognito/identity/__init__.py
  83. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cognito/identity/exceptions.py
  84. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cognito/identity/layer1.py
  85. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cognito/sync/__init__.py
  86. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cognito/sync/exceptions.py
  87. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/cognito/sync/layer1.py
  88. 36 1
      desktop/core/ext-py/boto-2.42.0/boto/compat.py
  89. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/configservice/__init__.py
  90. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/configservice/exceptions.py
  91. 5 1
      desktop/core/ext-py/boto-2.42.0/boto/configservice/layer1.py
  92. 3 3
      desktop/core/ext-py/boto-2.42.0/boto/connection.py
  93. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/contrib/__init__.py
  94. 1 1
      desktop/core/ext-py/boto-2.42.0/boto/contrib/ymlmessage.py
  95. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/datapipeline/__init__.py
  96. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/datapipeline/exceptions.py
  97. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/datapipeline/layer1.py
  98. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/directconnect/__init__.py
  99. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/directconnect/exceptions.py
  100. 0 0
      desktop/core/ext-py/boto-2.42.0/boto/directconnect/layer1.py

+ 0 - 8
desktop/core/ext-py/boto-2.38.0/HUE-BUILD.rst

@@ -1,8 +0,0 @@
-####
-Note
-####
-
-We manually exclude boto from the pruning (it contains some modules name 'logs') in
-Makefile.tarball
-
-So need to keep in mind when upgrading or removing this dependency.

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/.gitignore → desktop/core/ext-py/boto-2.42.0/.gitignore


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/MANIFEST.in → desktop/core/ext-py/boto-2.42.0/MANIFEST.in


+ 21 - 14
desktop/core/ext-py/boto-2.38.0/PKG-INFO → desktop/core/ext-py/boto-2.42.0/PKG-INFO

@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: boto
-Version: 2.38.0
+Version: 2.42.0
 Summary: Amazon Web Services Library
 Home-page: https://github.com/boto/boto/
 Author: Mitch Garnaat
@@ -9,9 +9,9 @@ License: MIT
 Description: ####
         boto
         ####
-        boto 2.38.0
+        boto 2.42.0
         
-        Released: 9-Apr-2015
+        Released: 19-Jul-2016
         
         .. image:: https://travis-ci.org/boto/boto.svg?branch=develop
                 :target: https://travis-ci.org/boto/boto
@@ -19,6 +19,24 @@ Description: ####
         .. image:: https://pypip.in/d/boto/badge.svg
                 :target: https://pypi.python.org/pypi/boto/
         
+        ******
+        Boto 3
+        ******
+        
+        `Boto3 <https://github.com/boto/boto3>`__, the next version of Boto, is now
+        stable and recommended for general use.  It can be used side-by-side with Boto
+        in the same project, so it is easy to start using Boto3 in your existing
+        projects as well as new projects. Going forward, API updates and all new
+        feature work will be focused on Boto3.
+        
+        To assist users who still depend on Boto and cannot immediately switch over, we
+        will be triaging and addressing critical issues and PRs in Boto in the short
+        term. As more users make the switch to Boto3, we expect to reduce our
+        maintenance involvement over time. If we decide on a cutoff date or any
+        significant changes to our maintenance plan, we will make pre-announcements
+        well ahead of schedule to allow ample time for our users to adapt/migrate.
+        
+        
         ************
         Introduction
         ************
@@ -34,17 +52,6 @@ Description: ####
         others know about your work in progress. Tests **must** pass on Python
         2.6, 2.7, 3.3, and 3.4 for pull requests to be accepted.
         
-        ******
-        Boto 3
-        ******
-        The next major version of Boto is currently in developer preview and can
-        be found in the `Boto 3 <https://github.com/boto/boto3#readme>`__
-        repository and installed via ``pip``. It supports the latest service APIs
-        and provides a high-level object-oriented interface to many services.
-        
-        Please try Boto 3 and
-        `leave feedback <https://github.com/boto/boto3/issues>`__ with any issues,
-        suggestions, and feature requests you might have.
         
         ********
         Services

+ 20 - 13
desktop/core/ext-py/boto-2.38.0/README.rst → desktop/core/ext-py/boto-2.42.0/README.rst

@@ -1,9 +1,9 @@
 ####
 boto
 ####
-boto 2.38.0
+boto 2.42.0
 
-Released: 9-Apr-2015
+Released: 19-Jul-2016
 
 .. image:: https://travis-ci.org/boto/boto.svg?branch=develop
         :target: https://travis-ci.org/boto/boto
@@ -11,6 +11,24 @@ Released: 9-Apr-2015
 .. image:: https://pypip.in/d/boto/badge.svg
         :target: https://pypi.python.org/pypi/boto/
 
+******
+Boto 3
+******
+
+`Boto3 <https://github.com/boto/boto3>`__, the next version of Boto, is now
+stable and recommended for general use.  It can be used side-by-side with Boto
+in the same project, so it is easy to start using Boto3 in your existing
+projects as well as new projects. Going forward, API updates and all new
+feature work will be focused on Boto3.
+
+To assist users who still depend on Boto and cannot immediately switch over, we
+will be triaging and addressing critical issues and PRs in Boto in the short
+term. As more users make the switch to Boto3, we expect to reduce our
+maintenance involvement over time. If we decide on a cutoff date or any
+significant changes to our maintenance plan, we will make pre-announcements
+well ahead of schedule to allow ample time for our users to adapt/migrate.
+
+
 ************
 Introduction
 ************
@@ -26,17 +44,6 @@ and the `Porting Guide`_. If you would like, you can open an issue to let
 others know about your work in progress. Tests **must** pass on Python
 2.6, 2.7, 3.3, and 3.4 for pull requests to be accepted.
 
-******
-Boto 3
-******
-The next major version of Boto is currently in developer preview and can
-be found in the `Boto 3 <https://github.com/boto/boto3#readme>`__
-repository and installed via ``pip``. It supports the latest service APIs
-and provides a high-level object-oriented interface to many services.
-
-Please try Boto 3 and
-`leave feedback <https://github.com/boto/boto3/issues>`__ with any issues,
-suggestions, and feature requests you might have.
 
 ********
 Services

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/asadmin → desktop/core/ext-py/boto-2.42.0/bin/asadmin


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/bundle_image → desktop/core/ext-py/boto-2.42.0/bin/bundle_image


+ 1 - 1
desktop/core/ext-py/boto-2.38.0/bin/cfadmin → desktop/core/ext-py/boto-2.42.0/bin/cfadmin

@@ -103,6 +103,6 @@ if __name__ == "__main__":
         cmd = help
     try:
         cmd(cf, *args)
-    except TypeError, e:
+    except TypeError as e:
         print e
         help(cf, cmd.__name__)

+ 2 - 2
desktop/core/ext-py/boto-2.38.0/bin/cq → desktop/core/ext-py/boto-2.42.0/bin/cq

@@ -65,7 +65,7 @@ def main():
     if queue_name:
         try:
             rs = [c.create_queue(queue_name)]
-        except SQSError, e:
+        except SQSError as e:
             print 'An Error Occurred:'
             print '%s: %s' % (e.status, e.reason)
             print e.body
@@ -73,7 +73,7 @@ def main():
     else:
         try:
             rs = c.get_all_queues()
-        except SQSError, e:
+        except SQSError as e:
             print 'An Error Occurred:'
             print '%s: %s' % (e.status, e.reason)
             print e.body

+ 1 - 1
desktop/core/ext-py/boto-2.38.0/bin/cwutil → desktop/core/ext-py/boto-2.42.0/bin/cwutil

@@ -135,6 +135,6 @@ if __name__ == "__main__":
         cmd = help
     try:
         cmd(*args)
-    except TypeError, e:
+    except TypeError as e:
         print e
         help(cmd.__name__)

+ 2 - 1
desktop/core/ext-py/boto-2.38.0/bin/dynamodb_dump → desktop/core/ext-py/boto-2.42.0/bin/dynamodb_dump

@@ -6,6 +6,7 @@ import os
 
 import boto
 from boto.compat import json
+from boto.compat import six
 
 
 DESCRIPTION = """Dump the contents of one or more DynamoDB tables to the local filesystem.
@@ -39,7 +40,7 @@ def dump_table(table, out_dir):
         for item in table.scan():
             # JSON can't serialize sets -- convert those to lists.
             data = {}
-            for k, v in item.iteritems():
+            for k, v in six.iteritems(item):
                 if isinstance(v, (set, frozenset)):
                     data[k] = list(v)
                 else:

+ 2 - 1
desktop/core/ext-py/boto-2.38.0/bin/dynamodb_load → desktop/core/ext-py/boto-2.42.0/bin/dynamodb_load

@@ -5,6 +5,7 @@ import os
 
 import boto
 from boto.compat import json
+from boto.compat import six
 from boto.dynamodb.schema import Schema
 
 
@@ -61,7 +62,7 @@ def load_table(table, in_fd):
     for i in _json_iterload(in_fd):
         # Convert lists back to sets.
         data = {}
-        for k, v in i.iteritems():
+        for k, v in six.iteritems(i):
             if isinstance(v, list):
                 data[k] = set(v)
             else:

+ 2 - 1
desktop/core/ext-py/boto-2.38.0/bin/elbadmin → desktop/core/ext-py/boto-2.42.0/bin/elbadmin

@@ -113,6 +113,7 @@ def get(elb, name):
 
         # Make map of all instance Id's to Name tags
         import boto
+        from boto.compat.six import iteritems
         if not options.region:
             ec2 = boto.connect_ec2()
         else:
@@ -127,7 +128,7 @@ def get(elb, name):
             if i.id in instances:
                 names[i.id] = i.tags.get('Name', '')
 
-        name_column_width = max([4] + [len(v) for k,v in names.iteritems()]) + 2
+        name_column_width = max([4] + [len(v) for k,v in iteritems(names)]) + 2
 
         print "Instances"
         print "---------"

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/fetch_file → desktop/core/ext-py/boto-2.42.0/bin/fetch_file


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/glacier → desktop/core/ext-py/boto-2.42.0/bin/glacier


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/instance_events → desktop/core/ext-py/boto-2.42.0/bin/instance_events


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/kill_instance → desktop/core/ext-py/boto-2.42.0/bin/kill_instance


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/launch_instance → desktop/core/ext-py/boto-2.42.0/bin/launch_instance


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/list_instances → desktop/core/ext-py/boto-2.42.0/bin/list_instances


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/lss3 → desktop/core/ext-py/boto-2.42.0/bin/lss3


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/mturk → desktop/core/ext-py/boto-2.42.0/bin/mturk


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/pyami_sendmail → desktop/core/ext-py/boto-2.42.0/bin/pyami_sendmail


+ 1 - 1
desktop/core/ext-py/boto-2.38.0/bin/route53 → desktop/core/ext-py/boto-2.42.0/bin/route53

@@ -200,6 +200,6 @@ if __name__ == "__main__":
         cmd = help
     try:
         cmd(conn, *args)
-    except TypeError, e:
+    except TypeError as e:
         print e
         help(conn, cmd.__name__)

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/s3put → desktop/core/ext-py/boto-2.42.0/bin/s3put


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/sdbadmin → desktop/core/ext-py/boto-2.42.0/bin/sdbadmin


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/bin/taskadmin → desktop/core/ext-py/boto-2.42.0/bin/taskadmin


+ 1 - 1
desktop/core/ext-py/boto-2.38.0/boto/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/__init__.py

@@ -38,7 +38,7 @@ import logging.config
 from boto.compat import urlparse
 from boto.exception import InvalidUriError
 
-__version__ = '2.38.0'
+__version__ = '2.42.0'
 Version = __version__  # for backware compatibility
 
 # http://bugs.python.org/issue7980

+ 12 - 8
desktop/core/ext-py/boto-2.38.0/boto/auth.py → desktop/core/ext-py/boto-2.42.0/boto/auth.py

@@ -39,7 +39,7 @@ import hmac
 import os
 import posixpath
 
-from boto.compat import urllib, encodebytes
+from boto.compat import urllib, encodebytes, parse_qs_safe
 from boto.auth_handler import AuthHandler
 from boto.exception import BotoClientError
 
@@ -55,9 +55,13 @@ except ImportError:
 # by default.
 SIGV4_DETECT = [
     '.cn-',
-    # In eu-central we support both host styles for S3
+    # In eu-central and ap-northeast-2 we support both host styles for S3
     '.eu-central',
     '-eu-central',
+    '.ap-northeast-2',
+    '-ap-northeast-2',
+    '.ap-south-1',
+    '-ap-south-1'
 ]
 
 
@@ -573,7 +577,7 @@ class S3HmacAuthV4Handler(HmacAuthV4Handler, AuthHandler):
         # Because some quoting may have already been applied, let's back it out.
         unquoted = urllib.parse.unquote(path.path)
         # Requote, this time addressing all characters.
-        encoded = urllib.parse.quote(unquoted)
+        encoded = urllib.parse.quote(unquoted, safe='/~')
         return encoded
 
     def canonical_query_string(self, http_request):
@@ -688,7 +692,7 @@ class S3HmacAuthV4Handler(HmacAuthV4Handler, AuthHandler):
             modified_req.params = copy_params
 
         raw_qs = parsed_path.query
-        existing_qs = urllib.parse.parse_qs(
+        existing_qs = parse_qs_safe(
             raw_qs,
             keep_blank_values=True
         )
@@ -769,8 +773,8 @@ class S3HmacAuthV4Handler(HmacAuthV4Handler, AuthHandler):
         # Add signature to params now that we have it
         req.params['X-Amz-Signature'] = signature
 
-        return 'https://%s%s?%s' % (req.host, req.path,
-                                    urllib.parse.urlencode(req.params))
+        return '%s://%s%s?%s' % (req.protocol, req.host, req.path,
+                                 urllib.parse.urlencode(req.params))
 
 
 class STSAnonHandler(AuthHandler):
@@ -878,8 +882,8 @@ class QuerySignatureV1AuthHandler(QuerySignatureHelper, AuthHandler):
     def _calc_signature(self, params, *args):
         boto.log.debug('using _calc_signature_1')
         hmac = self._get_hmac()
-        keys = params.keys()
-        keys.sort(cmp=lambda x, y: cmp(x.lower(), y.lower()))
+        keys = list(params.keys())
+        keys.sort(key=lambda x: x.lower())
         pairs = []
         for key in keys:
             hmac.update(key.encode('utf-8'))

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/auth_handler.py → desktop/core/ext-py/boto-2.42.0/boto/auth_handler.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/awslambda/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/awslambda/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/awslambda/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/awslambda/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/awslambda/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/awslambda/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/beanstalk/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/beanstalk/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/beanstalk/exception.py → desktop/core/ext-py/boto-2.42.0/boto/beanstalk/exception.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/beanstalk/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/beanstalk/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/beanstalk/response.py → desktop/core/ext-py/boto-2.42.0/boto/beanstalk/response.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/beanstalk/wrapper.py → desktop/core/ext-py/boto-2.42.0/boto/beanstalk/wrapper.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cacerts/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cacerts/__init__.py


+ 0 - 32
desktop/core/ext-py/boto-2.38.0/boto/cacerts/cacerts.txt → desktop/core/ext-py/boto-2.42.0/boto/cacerts/cacerts.txt

@@ -93,22 +93,6 @@ BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
 70+sB3c4
 -----END CERTIFICATE-----
 
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
-TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
-WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
-Tqj/ZA1k
------END CERTIFICATE-----
-
 Verisign Class 3 Public Primary Certification Authority - G2
 ============================================================
 -----BEGIN CERTIFICATE-----
@@ -2613,22 +2597,6 @@ MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
 tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
 -----END CERTIFICATE-----
 
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
-CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
-bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
-D/xwzoiQ
------END CERTIFICATE-----
-
 Microsec e-Szigno Root CA 2009
 ==============================
 -----BEGIN CERTIFICATE-----

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudformation/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cloudformation/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudformation/connection.py → desktop/core/ext-py/boto-2.42.0/boto/cloudformation/connection.py


+ 9 - 1
desktop/core/ext-py/boto-2.38.0/boto/cloudformation/stack.py → desktop/core/ext-py/boto-2.42.0/boto/cloudformation/stack.py

@@ -16,10 +16,18 @@ class Stack(object):
         self.tags = []
         self.stack_id = None
         self.stack_status = None
+        self.stack_status_reason = None
         self.stack_name = None
-        self.stack_name_reason = None
         self.timeout_in_minutes = None
 
+    @property
+    def stack_name_reason(self):
+        return self.stack_status_reason
+
+    @stack_name_reason.setter
+    def stack_name_reason(self, value):
+        self.stack_status_reason = value
+
     def startElement(self, name, attrs, connection):
         if name == "Parameters":
             self.parameters = ResultSet([('member', Parameter)])

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudformation/template.py → desktop/core/ext-py/boto-2.42.0/boto/cloudformation/template.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/__init__.py


+ 2 - 2
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/distribution.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/distribution.py

@@ -525,12 +525,12 @@ class Distribution(object):
         :param expire_time: The expiry time of the URL. If provided, the URL
             will expire after the time has passed. If not provided the URL will
             never expire. Format is a unix epoch.
-            Use time.time() + duration_in_sec.
+            Use int(time.time() + duration_in_sec).
 
         :type valid_after_time: int
         :param valid_after_time: If provided, the URL will not be valid until
             after valid_after_time. Format is a unix epoch.
-            Use time.time() + secs_until_valid.
+            Use int(time.time() + secs_until_valid).
 
         :type ip_address: str
         :param ip_address: If provided, only allows access from the specified

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/exception.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/exception.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/identity.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/identity.py


+ 2 - 2
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/invalidation.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/invalidation.py

@@ -68,10 +68,10 @@ class InvalidationBatch(object):
         self.paths[k] = v
 
     def escape(self, p):
-        """Escape a path, make sure it begins with a slash and contains no invalid characters"""
+        """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)
+        return urllib.parse.quote(p, safe = "/*")
 
     def to_xml(self):
         """Get this batch as XML"""

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/logging.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/logging.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/object.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/object.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/origin.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/origin.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudfront/signers.py → desktop/core/ext-py/boto-2.42.0/boto/cloudfront/signers.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudhsm/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cloudhsm/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudhsm/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/cloudhsm/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudhsm/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/cloudhsm/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/document.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/document.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/domain.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/domain.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/layer2.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/layer2.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/optionstatus.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/optionstatus.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/search.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/search.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch/sourceattribute.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch/sourceattribute.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/document.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/document.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/domain.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/domain.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/layer2.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/layer2.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/optionstatus.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/optionstatus.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearch2/search.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearch2/search.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearchdomain/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearchdomain/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearchdomain/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearchdomain/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudsearchdomain/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/cloudsearchdomain/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudtrail/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cloudtrail/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudtrail/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/cloudtrail/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cloudtrail/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/cloudtrail/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/codedeploy/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/codedeploy/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/codedeploy/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/codedeploy/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/codedeploy/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/codedeploy/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cognito/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cognito/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cognito/identity/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cognito/identity/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cognito/identity/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/cognito/identity/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cognito/identity/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/cognito/identity/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cognito/sync/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/cognito/sync/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cognito/sync/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/cognito/sync/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/cognito/sync/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/cognito/sync/layer1.py


+ 36 - 1
desktop/core/ext-py/boto-2.38.0/boto/compat.py → desktop/core/ext-py/boto-2.42.0/boto/compat.py

@@ -54,14 +54,49 @@ from boto.vendored.six.moves import filter, http_client, map, _thread, \
 from boto.vendored.six.moves.queue import Queue
 from boto.vendored.six.moves.urllib.parse import parse_qs, quote, unquote, \
                                                  urlparse, urlsplit
+from boto.vendored.six.moves.urllib.parse import unquote_plus
 from boto.vendored.six.moves.urllib.request import urlopen
 
 if six.PY3:
     # StandardError was removed, so use the base exception type instead
     StandardError = Exception
     long_type = int
-    from configparser import ConfigParser
+    from configparser import ConfigParser, NoOptionError, NoSectionError
+    unquote_str = unquote_plus
+    parse_qs_safe = parse_qs
 else:
     StandardError = StandardError
     long_type = long
     from ConfigParser import SafeConfigParser as ConfigParser
+    from ConfigParser import NoOptionError, NoSectionError
+
+    def unquote_str(value, encoding='utf-8'):
+        # In python2, unquote() gives us a string back that has the urldecoded
+        # bits, but not the unicode parts.  We need to decode this manually.
+        # unquote has special logic in which if it receives a unicode object it
+        # will decode it to latin1.  This is hard coded.  To avoid this, we'll
+        # encode the string with the passed in encoding before trying to
+        # unquote it.
+        byte_string = value.encode(encoding)
+        return unquote_plus(byte_string).decode(encoding)
+
+    # These are the same default arguments for python3's
+    # urllib.parse.parse_qs.
+    def parse_qs_safe(qs, keep_blank_values=False, strict_parsing=False,
+                      encoding='utf-8', errors='replace'):
+        """Parse a query handling unicode arguments properly in Python 2."""
+        is_text_type = isinstance(qs, six.text_type)
+        if is_text_type:
+            # URL encoding uses ASCII code points only.
+            qs = qs.encode('ascii')
+        qs_dict = parse_qs(qs, keep_blank_values, strict_parsing)
+        if is_text_type:
+            # Decode the parsed dictionary back to unicode.
+            result = {}
+            for (name, value) in qs_dict.items():
+                decoded_name = name.decode(encoding, errors)
+                decoded_value = [item.decode(encoding, errors)
+                                 for item in value]
+                result[decoded_name] = decoded_value
+            return result
+        return qs_dict

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/configservice/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/configservice/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/configservice/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/configservice/exceptions.py


+ 5 - 1
desktop/core/ext-py/boto-2.38.0/boto/configservice/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/configservice/layer1.py

@@ -289,7 +289,11 @@ class ConfigServiceConnection(AWSQueryConnection):
 
         :type configuration_recorder: dict
         :param configuration_recorder: The configuration recorder object that
-            records each configuration change made to the resources.
+            records each configuration change made to the resources. The
+            format should follow:
+
+            {'name': 'myrecorder',
+             'roleARN': 'arn:aws:iam::123456789012:role/trusted-aws-config'}
 
         """
         params = {'ConfigurationRecorder': configuration_recorder, }

+ 3 - 3
desktop/core/ext-py/boto-2.38.0/boto/connection.py → desktop/core/ext-py/boto-2.42.0/boto/connection.py

@@ -368,7 +368,7 @@ class HTTPRequest(object):
             for key in self.headers:
                 val = self.headers[key]
                 if isinstance(val, six.text_type):
-                    safe = '!"#$%&\'()*+,/:;<=>?@[\\]^`{|}~'
+                    safe = '!"#$%&\'()*+,/:;<=>?@[\\]^`{|}~ '
                     self.headers[key] = quote(val.encode('utf-8'), safe)
             setattr(self, '_headers_quoted', True)
 
@@ -726,7 +726,7 @@ class AWSAuthConnection(object):
 
         # Make sure the host is really just the host, not including
         # the port number
-        host = host.split(':', 1)[0]
+        host = boto.utils.parse_host(host)
 
         http_connection_kwargs = self.http_connection_kwargs.copy()
 
@@ -1048,7 +1048,7 @@ class AWSAuthConnection(object):
         if self.host_header and not boto.utils.find_matching_headers('host', headers):
             headers['host'] = self.host_header
         host = host or self.host
-        if self.use_proxy:
+        if self.use_proxy and not self.skip_proxy(host):
             if not auth_path:
                 auth_path = path
             path = self.prefix_proxy_to_path(path, host)

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/contrib/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/contrib/__init__.py


+ 1 - 1
desktop/core/ext-py/boto-2.38.0/boto/contrib/ymlmessage.py → desktop/core/ext-py/boto-2.42.0/boto/contrib/ymlmessage.py

@@ -47,7 +47,7 @@ class YAMLMessage(Message):
         super(YAMLMessage, self).__init__(queue, body)
 
     def set_body(self, body):
-        self.data = yaml.load(body)
+        self.data = yaml.safe_load(body)
 
     def get_body(self):
         return yaml.dump(self.data)

+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/datapipeline/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/datapipeline/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/datapipeline/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/datapipeline/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/datapipeline/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/datapipeline/layer1.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/directconnect/__init__.py → desktop/core/ext-py/boto-2.42.0/boto/directconnect/__init__.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/directconnect/exceptions.py → desktop/core/ext-py/boto-2.42.0/boto/directconnect/exceptions.py


+ 0 - 0
desktop/core/ext-py/boto-2.38.0/boto/directconnect/layer1.py → desktop/core/ext-py/boto-2.42.0/boto/directconnect/layer1.py


Неке датотеке нису приказане због велике количине промена