commit
2260caa2f9
@ -0,0 +1 @@
|
||||
SOURCES/boto-2.49.0.tar.gz
|
@ -0,0 +1 @@
|
||||
300e6b7abd04a77a94f769e6cad6fb9e6e84ffbb SOURCES/boto-2.49.0.tar.gz
|
@ -0,0 +1,54 @@
|
||||
Index: boto-2.39.0/boto/compat.py
|
||||
===================================================================
|
||||
--- boto-2.39.0.orig/boto/compat.py
|
||||
+++ boto-2.39.0/boto/compat.py
|
||||
@@ -46,16 +46,27 @@ except (AttributeError, ImportError):
|
||||
# This is probably running on App Engine.
|
||||
expanduser = (lambda x: x)
|
||||
|
||||
-from boto.vendored import six
|
||||
+try:
|
||||
+ import six
|
||||
+ from six import BytesIO, StringIO
|
||||
+ from six.moves import filter, http_client, map, _thread, \
|
||||
+ urllib, zip
|
||||
+ from six.moves.queue import Queue
|
||||
+ from six.moves.urllib.parse import parse_qs, quote, unquote, \
|
||||
+ urlparse, urlsplit
|
||||
+ from six.moves.urllib.parse import unquote_plus
|
||||
+ from six.moves.urllib.request import urlopen
|
||||
+except ImportError:
|
||||
+ from boto.vendored import six
|
||||
|
||||
-from boto.vendored.six import BytesIO, StringIO
|
||||
-from boto.vendored.six.moves import filter, http_client, map, _thread, \
|
||||
- urllib, zip
|
||||
-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
|
||||
+ from boto.vendored.six import BytesIO, StringIO
|
||||
+ from boto.vendored.six.moves import filter, http_client, map, _thread, \
|
||||
+ urllib, zip
|
||||
+ 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
|
||||
Index: boto-2.39.0/setup.py
|
||||
===================================================================
|
||||
--- boto-2.39.0.orig/setup.py
|
||||
+++ boto-2.39.0/setup.py
|
||||
@@ -76,7 +76,7 @@ setup(name = "boto",
|
||||
"boto.elastictranscoder", "boto.opsworks", "boto.redshift",
|
||||
"boto.dynamodb2", "boto.support", "boto.cloudtrail",
|
||||
"boto.directconnect", "boto.kinesis", "boto.rds2",
|
||||
- "boto.cloudsearch2", "boto.logs", "boto.vendored",
|
||||
+ "boto.cloudsearch2", "boto.logs",
|
||||
"boto.route53.domains", "boto.cognito",
|
||||
"boto.cognito.identity", "boto.cognito.sync",
|
||||
"boto.cloudsearchdomain", "boto.kms",
|
@ -0,0 +1,13 @@
|
||||
Index: boto-2.40.0/boto/s3/acl.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/boto/s3/acl.py
|
||||
+++ boto-2.40.0/boto/s3/acl.py
|
||||
@@ -25,7 +25,7 @@ from boto.s3.user import User
|
||||
CannedACLStrings = ['private', 'public-read',
|
||||
'public-read-write', 'authenticated-read',
|
||||
'bucket-owner-read', 'bucket-owner-full-control',
|
||||
- 'log-delivery-write']
|
||||
+ 'log-delivery-write', 'aws-exec-read']
|
||||
|
||||
|
||||
class Policy(object):
|
@ -0,0 +1,91 @@
|
||||
Index: boto-2.40.0/boto/ec2/instance.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/boto/ec2/instance.py
|
||||
+++ boto-2.40.0/boto/ec2/instance.py
|
||||
@@ -631,7 +631,8 @@ class InstanceAttribute(dict):
|
||||
'disableApiTermination',
|
||||
'instanceInitiatedShutdownBehavior',
|
||||
'rootDeviceName', 'blockDeviceMapping', 'sourceDestCheck',
|
||||
- 'groupSet']
|
||||
+ 'groupSet', 'productCodes', 'ebsOptimized',
|
||||
+ 'sriovNetSupport']
|
||||
|
||||
def __init__(self, parent=None):
|
||||
dict.__init__(self)
|
||||
Index: boto-2.40.0/tests/unit/ec2/test_attribute.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ boto-2.40.0/tests/unit/ec2/test_attribute.py
|
||||
@@ -0,0 +1,72 @@
|
||||
+from tests.unit import unittest
|
||||
+from tests.compat import mock
|
||||
+
|
||||
+from boto.ec2.connection import EC2Connection, Instance
|
||||
+
|
||||
+ATTRIBUTE_GET_TRUE_EBSOPTIMIZED_RESPONSE = b"""
|
||||
+<DescribeInstanceAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2014-10-01/">
|
||||
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
||||
+ <instanceId>i-10a64379</instanceId>
|
||||
+ <ebsOptimized>
|
||||
+ <value>true</value>
|
||||
+ </ebsOptimized>
|
||||
+</DescribeInstanceAttributeResponse>
|
||||
+"""
|
||||
+
|
||||
+ATTRIBUTE_GET_FALSE_EBSOPTIMIZED_RESPONSE = b"""
|
||||
+<DescribeInstanceAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2014-10-01/">
|
||||
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
||||
+ <instanceId>i-10a64379</instanceId>
|
||||
+ <ebsOptimized>
|
||||
+ <value>false</value>
|
||||
+ </ebsOptimized>
|
||||
+</DescribeInstanceAttributeResponse>
|
||||
+"""
|
||||
+
|
||||
+ATTRIBUTE_GET_EMPTY_PRODUCTCODES_RESPONSE = b"""
|
||||
+<DescribeInstanceAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2014-10-01/">
|
||||
+ <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
||||
+ <instanceId>i-10a64379</instanceId>
|
||||
+ <productCodes/>
|
||||
+</DescribeInstanceAttributeResponse>
|
||||
+"""
|
||||
+
|
||||
+# Tests to be run on an InstanceAttributes
|
||||
+# Format:
|
||||
+# (EC2_RESPONSE_STRING, (string_of_attribute_to_test, value) )
|
||||
+ATTRIBUTE_TESTS = [
|
||||
+ (ATTRIBUTE_GET_TRUE_EBSOPTIMIZED_RESPONSE,
|
||||
+ ('ebsOptimized', True)),
|
||||
+ (ATTRIBUTE_GET_FALSE_EBSOPTIMIZED_RESPONSE,
|
||||
+ ('ebsOptimized', False)),
|
||||
+ (ATTRIBUTE_GET_EMPTY_PRODUCTCODES_RESPONSE,
|
||||
+ ('productCodes', None)),
|
||||
+]
|
||||
+
|
||||
+
|
||||
+class TestInstanceAttributes(unittest.TestCase):
|
||||
+ """Tests Instance Attributes."""
|
||||
+ def _setup_mock(self):
|
||||
+ """Sets up a mock ec2 request.
|
||||
+ Returns: response, ec2 connection and Instance
|
||||
+ """
|
||||
+ mock_response = mock.Mock()
|
||||
+ mock_response.status = 200
|
||||
+ ec2 = EC2Connection(aws_access_key_id='aws_access_key_id',
|
||||
+ aws_secret_access_key='aws_secret_access_key')
|
||||
+ ec2.make_request = mock.Mock(return_value=mock_response)
|
||||
+ return mock_response, ec2, Instance(ec2)
|
||||
+
|
||||
+ def test_instance_get_attributes(self):
|
||||
+ """Tests the InstanceAttributes from the EC2 object."""
|
||||
+ mock_response, _, instance = self._setup_mock()
|
||||
+
|
||||
+ for response, attr_test in ATTRIBUTE_TESTS:
|
||||
+ mock_response.read.return_value = response
|
||||
+ expected_value = dict([attr_test])
|
||||
+ actual_value = instance.get_attribute(attr_test[0])
|
||||
+ self.assertEqual(expected_value, actual_value)
|
||||
+
|
||||
+
|
||||
+if __name__ == '__main__':
|
||||
+ unittest.main()
|
@ -0,0 +1,72 @@
|
||||
Index: boto-2.40.0/boto/route53/connection.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/boto/route53/connection.py
|
||||
+++ boto-2.40.0/boto/route53/connection.py
|
||||
@@ -152,8 +152,8 @@ class Route53Connection(AWSAuthConnectio
|
||||
raise exception.DNSServerError(response.status,
|
||||
response.reason,
|
||||
body)
|
||||
- e = boto.jsonresponse.Element(list_marker='NameServers',
|
||||
- item_marker=('NameServer',))
|
||||
+ e = boto.jsonresponse.Element(list_marker=('NameServers', 'VPCs'),
|
||||
+ item_marker=('NameServer', 'VPC'))
|
||||
h = boto.jsonresponse.XmlHandler(e, None)
|
||||
h.parse(body)
|
||||
return e
|
||||
Index: boto-2.40.0/tests/integration/route53/test_zone.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/tests/integration/route53/test_zone.py
|
||||
+++ boto-2.40.0/tests/integration/route53/test_zone.py
|
||||
@@ -186,6 +186,12 @@ class TestRoute53PrivateZone(unittest.Te
|
||||
vpc_id=self.test_vpc.id,
|
||||
vpc_region='us-east-1')
|
||||
|
||||
+ def test_get_hosted_zone_for_private_zone(self):
|
||||
+ self.get_hosted_zone = self.route53.get_hosted_zone_by_name(self.base_domain)
|
||||
+ self.assertEquals(len(self.get_hosted_zone['GetHostedZoneResponse']['VPCs']), 1)
|
||||
+ self.assertEquals(self.get_hosted_zone['GetHostedZoneResponse']['VPCs'][0]['VPCRegion'], 'us-east-1')
|
||||
+ self.assertEquals(self.get_hosted_zone['GetHostedZoneResponse']['VPCs'][0]['VPCId'], self.test_vpc.id)
|
||||
+
|
||||
@classmethod
|
||||
def tearDownClass(self):
|
||||
if self.zone is not None:
|
||||
Index: boto-2.40.0/tests/unit/route53/test_connection.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/tests/unit/route53/test_connection.py
|
||||
+++ boto-2.40.0/tests/unit/route53/test_connection.py
|
||||
@@ -313,6 +313,16 @@ class TestGetHostedZoneRoute53(AWSMockSe
|
||||
<NameServer>ns-1000.awsdns-00.co.uk</NameServer>
|
||||
</NameServers>
|
||||
</DelegationSet>
|
||||
+ <VPCs>
|
||||
+ <VPC>
|
||||
+ <VPCRegion>eu-west-1</VPCRegion>
|
||||
+ <VPCId>vpc-12345</VPCId>
|
||||
+ </VPC>
|
||||
+ <VPC>
|
||||
+ <VPCRegion>us-west-1</VPCRegion>
|
||||
+ <VPCId>vpc-78900</VPCId>
|
||||
+ </VPC>
|
||||
+ </VPCs>
|
||||
</GetHostedZoneResponse>
|
||||
"""
|
||||
|
||||
@@ -330,6 +340,18 @@ class TestGetHostedZoneRoute53(AWSMockSe
|
||||
['DelegationSet']['NameServers'],
|
||||
['ns-1000.awsdns-40.org', 'ns-200.awsdns-30.com',
|
||||
'ns-900.awsdns-50.net', 'ns-1000.awsdns-00.co.uk'])
|
||||
+ self.assertEqual(response['GetHostedZoneResponse']
|
||||
+ ['VPCs'][0]['VPCRegion'],
|
||||
+ 'eu-west-1')
|
||||
+ self.assertEqual(response['GetHostedZoneResponse']
|
||||
+ ['VPCs'][0]['VPCId'],
|
||||
+ 'vpc-12345')
|
||||
+ self.assertEqual(response['GetHostedZoneResponse']
|
||||
+ ['VPCs'][1]['VPCRegion'],
|
||||
+ 'us-west-1')
|
||||
+ self.assertEqual(response['GetHostedZoneResponse']
|
||||
+ ['VPCs'][1]['VPCId'],
|
||||
+ 'vpc-78900')
|
||||
|
||||
|
||||
@attr(route53=True)
|
@ -0,0 +1,319 @@
|
||||
Index: boto-2.40.0/boto/vpc/__init__.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/boto/vpc/__init__.py
|
||||
+++ boto-2.40.0/boto/vpc/__init__.py
|
||||
@@ -29,6 +29,7 @@ from boto.vpc.vpc import VPC
|
||||
from boto.vpc.customergateway import CustomerGateway
|
||||
from boto.vpc.networkacl import NetworkAcl
|
||||
from boto.vpc.routetable import RouteTable
|
||||
+from boto.vpc.natgateway import NatGateway
|
||||
from boto.vpc.internetgateway import InternetGateway
|
||||
from boto.vpc.vpngateway import VpnGateway, Attachment
|
||||
from boto.vpc.dhcpoptions import DhcpOptions
|
||||
@@ -783,6 +784,76 @@ class VPCConnection(EC2Connection):
|
||||
|
||||
return self.get_status('DeleteNetworkAclEntry', params)
|
||||
|
||||
+ # NAT Gateways
|
||||
+
|
||||
+ def get_all_nat_gateways(self, nat_gateway_ids=None, filters=None, dry_run=False):
|
||||
+ """
|
||||
+ Get a list of NAT gateways. You can filter results to return information
|
||||
+ about only those gateways that you're interested in.
|
||||
+
|
||||
+ :type nat_gateway_ids: list
|
||||
+ :param nat_gateway_ids: A list of strings with the desired gateway IDs.
|
||||
+
|
||||
+ :type filters: list of tuples or dict
|
||||
+ :param filters: A list of tuples or dict containing filters. Each tuple
|
||||
+ or dict item consists of a filter key and a filter value.
|
||||
+
|
||||
+ :type dry_run: bool
|
||||
+ :param dry_run: Set to True if the operation should not actually run.
|
||||
+
|
||||
+ """
|
||||
+ params = {}
|
||||
+
|
||||
+ if nat_gateway_ids:
|
||||
+ self.build_list_params(params, nat_gateway_ids,
|
||||
+ 'NatGatewayId')
|
||||
+ if filters:
|
||||
+ self.build_filter_params(params, filters)
|
||||
+ if dry_run:
|
||||
+ params['DryRun'] = 'true'
|
||||
+ return self.get_list('DescribeNatGateways', params,
|
||||
+ [('item', NatGateway)])
|
||||
+
|
||||
+ def create_nat_gateway(self, subnet_id, allocation_id, dry_run=False):
|
||||
+ """
|
||||
+ Creates a NAT gateway for VPC.
|
||||
+
|
||||
+ :type subnet_id: str
|
||||
+ :param subnet_id: The subnet in which the NAT gateway should be launched.
|
||||
+
|
||||
+ :type allocation_id: str
|
||||
+ :param allocation_id: The allocation ID of an elastic IP address for the public side of the gateway.
|
||||
+
|
||||
+ :type dry_run: bool
|
||||
+ :param dry_run: Set to True if the operation should not actually run.
|
||||
+
|
||||
+ :rtype: Newly created nat gateway.
|
||||
+ :return: `boto.vpc.natgateway.NATGateway`
|
||||
+ """
|
||||
+ params = {'SubnetId': subnet_id,
|
||||
+ 'AllocationId': allocation_id}
|
||||
+ if dry_run:
|
||||
+ params['DryRun'] = 'true'
|
||||
+ return self.get_object('CreateNatGateway', params, NatGateway)
|
||||
+
|
||||
+ def delete_nat_gateway(self, nat_gateway_id, dry_run=False):
|
||||
+ """
|
||||
+ Deletes a NAT gateway from the VPC.
|
||||
+
|
||||
+ :type nat_gateway_id: str
|
||||
+ :param nat_gateway_id: The ID of the NAT gateway to delete.
|
||||
+
|
||||
+ :type dry_run: bool
|
||||
+ :param dry_run: Set to True if the operation should not actually run.
|
||||
+
|
||||
+ :rtype: Bool
|
||||
+ :return: True if successful
|
||||
+ """
|
||||
+ params = {'NatGatewayId': nat_gateway_id}
|
||||
+ if dry_run:
|
||||
+ params['DryRun'] = 'true'
|
||||
+ return self.get_status('DeleteNatGateway', params)
|
||||
+
|
||||
# Internet Gateways
|
||||
|
||||
def get_all_internet_gateways(self, internet_gateway_ids=None,
|
||||
Index: boto-2.40.0/boto/vpc/natgateway.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ boto-2.40.0/boto/vpc/natgateway.py
|
||||
@@ -0,0 +1,89 @@
|
||||
+# Copyright (c) 2009-2010 Mitch Garnaat http://garnaat.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.
|
||||
+
|
||||
+"""
|
||||
+Represents a NAT Gateway
|
||||
+"""
|
||||
+
|
||||
+from boto.ec2.ec2object import TaggedEC2Object
|
||||
+from boto.resultset import ResultSet
|
||||
+
|
||||
+
|
||||
+class NatGateway(TaggedEC2Object):
|
||||
+ def __init__(self, connection=None):
|
||||
+ super(NatGateway, self).__init__(connection)
|
||||
+ self.id = None
|
||||
+ self.vpc_id = None
|
||||
+ self.subnet_id = None
|
||||
+ self.state = None
|
||||
+ self.addresses = []
|
||||
+
|
||||
+ def __repr__(self):
|
||||
+ return 'NatGateway:%s' % self.id
|
||||
+
|
||||
+ def startElement(self, name, attrs, connection):
|
||||
+ result = super(NatGateway, self).startElement(name, attrs, connection)
|
||||
+
|
||||
+ if result is not None:
|
||||
+ # Parent found an interested element, just return it
|
||||
+ return result
|
||||
+
|
||||
+ if name == 'natGatewayAddressSet':
|
||||
+ self.addresses = ResultSet([('item', NatGatewayAddress)])
|
||||
+ return self.addresses
|
||||
+ else:
|
||||
+ return None
|
||||
+
|
||||
+ def endElement(self, name, value, connection):
|
||||
+ if name == 'natGatewayId':
|
||||
+ self.id = value
|
||||
+ elif name == 'vpcId':
|
||||
+ self.vpc_id = value
|
||||
+ elif name == 'subnetId':
|
||||
+ self.subnet_id = value
|
||||
+ elif name == 'state':
|
||||
+ self.state = value
|
||||
+ else:
|
||||
+ setattr(self, name, value)
|
||||
+
|
||||
+
|
||||
+class NatGatewayAddress(object):
|
||||
+ def __init__(self, connection=None):
|
||||
+ self.interface_id = None
|
||||
+ self.allocation_id = None
|
||||
+ self.ip_public = None
|
||||
+ self.ip_private = None
|
||||
+
|
||||
+ def __repr__(self):
|
||||
+ return 'NatGatewayAddress:%s' % self.interface_id
|
||||
+
|
||||
+ def startElement(self, name, attrs, connection):
|
||||
+ return None
|
||||
+
|
||||
+ def endElement(self, name, value, connection):
|
||||
+ if name == 'networkInterfaceId':
|
||||
+ self.interface_id = value
|
||||
+ elif name == 'publicIp':
|
||||
+ self.ip_public = value
|
||||
+ elif name == 'allocationId':
|
||||
+ self.allocation_id = value
|
||||
+ elif name == 'privateIp':
|
||||
+ self.ip_private = value
|
||||
Index: boto-2.40.0/docs/source/ref/vpc.rst
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/docs/source/ref/vpc.rst
|
||||
+++ boto-2.40.0/docs/source/ref/vpc.rst
|
||||
@@ -32,6 +32,13 @@ boto.vpc.internetgateway
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
||||
+boto.vpc.natgateway
|
||||
+-------------------
|
||||
+
|
||||
+.. automodule:: boto.vpc.natgateway
|
||||
+ :members:
|
||||
+ :undoc-members:
|
||||
+
|
||||
boto.vpc.routetable
|
||||
-------------------
|
||||
|
||||
Index: boto-2.40.0/tests/unit/vpc/test_natgateway.py
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ boto-2.40.0/tests/unit/vpc/test_natgateway.py
|
||||
@@ -0,0 +1,113 @@
|
||||
+from tests.unit import unittest
|
||||
+from tests.unit import AWSMockServiceTestCase
|
||||
+
|
||||
+from boto.vpc import VPCConnection, NatGateway
|
||||
+
|
||||
+
|
||||
+class TestDescribeNatGateway(AWSMockServiceTestCase):
|
||||
+
|
||||
+ connection_class = VPCConnection
|
||||
+
|
||||
+ def default_body(self):
|
||||
+ return b"""
|
||||
+ <DescribeNatGatewaysResponse xmlns="http://ec2.amazonaws.com/doc/2015-10-01/">
|
||||
+ <requestId>bfed02c6-dae9-47c0-86a2-example</requestId>
|
||||
+ <natGatewaySet>
|
||||
+ <item>
|
||||
+ <subnetId>subnet-1a2a3a4a</subnetId>
|
||||
+ <natGatewayAddressSet>
|
||||
+ <item>
|
||||
+ <networkInterfaceId>eni-00e37850</networkInterfaceId>
|
||||
+ <publicIp>198.18.125.129</publicIp>
|
||||
+ <allocationId>eipalloc-37fc1a52</allocationId>
|
||||
+ <privateIp>10.0.2.147</privateIp>
|
||||
+ </item>
|
||||
+ </natGatewayAddressSet>
|
||||
+ <createTime>2015-11-25T14:00:55.416Z</createTime>
|
||||
+ <vpcId>vpc-4e20d42b</vpcId>
|
||||
+ <natGatewayId>nat-04e77a5e9c34432f9</natGatewayId>
|
||||
+ <state>available</state>
|
||||
+ </item>
|
||||
+ </natGatewaySet>
|
||||
+ </DescribeNatGatewaysResponse>
|
||||
+ """
|
||||
+
|
||||
+ def test_describe_nat_gateway(self):
|
||||
+ self.set_http_response(status_code=200)
|
||||
+ api_response = self.service_connection.get_all_nat_gateways(
|
||||
+ 'nat-04e77a5e9c34432f9', filters=[('natGatewayAddress.allocationId', ['eipalloc-37fc1a52'])])
|
||||
+ self.assert_request_parameters({
|
||||
+ 'Action': 'DescribeNatGateways',
|
||||
+ 'NatGatewayId.1': 'nat-04e77a5e9c34432f9',
|
||||
+ 'Filter.1.Name': 'natGatewayAddress.allocationId',
|
||||
+ 'Filter.1.Value.1': 'eipalloc-37fc1a52'},
|
||||
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
||||
+ 'SignatureVersion', 'Timestamp',
|
||||
+ 'Version'])
|
||||
+ self.assertEquals(len(api_response), 1)
|
||||
+ self.assertIsInstance(api_response[0], NatGateway)
|
||||
+ self.assertEqual(api_response[0].id, 'nat-04e77a5e9c34432f9')
|
||||
+
|
||||
+
|
||||
+class TestCreateNatGateway(AWSMockServiceTestCase):
|
||||
+
|
||||
+ connection_class = VPCConnection
|
||||
+
|
||||
+ def default_body(self):
|
||||
+ return b"""
|
||||
+ <CreateNatGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2015-10-01/">
|
||||
+ <requestId>1b74dc5c-bcda-403f-867d-example</requestId>
|
||||
+ <natGateway>
|
||||
+ <subnetId>subnet-1a2b3c4d</subnetId>
|
||||
+ <natGatewayAddressSet>
|
||||
+ <item>
|
||||
+ <allocationId>eipalloc-37fc1a52</allocationId>
|
||||
+ </item>
|
||||
+ </natGatewayAddressSet>
|
||||
+ <createTime>2015-11-25T14:00:55.416Z</createTime>
|
||||
+ <vpcId>vpc-4e20d42b</vpcId>
|
||||
+ <natGatewayId>nat-04e77a5e9c34432f9</natGatewayId>
|
||||
+ <state>pending</state>
|
||||
+ </natGateway>
|
||||
+ </CreateNatGatewayResponse>
|
||||
+ """
|
||||
+
|
||||
+ def test_create_nat_gateway(self):
|
||||
+ self.set_http_response(status_code=200)
|
||||
+ api_response = self.service_connection.create_nat_gateway('subnet-1a2b3c4d', 'eipalloc-37fc1a52')
|
||||
+ self.assert_request_parameters({
|
||||
+ 'Action': 'CreateNatGateway',
|
||||
+ 'SubnetId': 'subnet-1a2b3c4d',
|
||||
+ 'AllocationId': 'eipalloc-37fc1a52'},
|
||||
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
||||
+ 'SignatureVersion', 'Timestamp',
|
||||
+ 'Version'])
|
||||
+ self.assertIsInstance(api_response, NatGateway)
|
||||
+ self.assertEqual(api_response.id, 'nat-04e77a5e9c34432f9')
|
||||
+
|
||||
+
|
||||
+class TestDeleteNatGateway(AWSMockServiceTestCase):
|
||||
+
|
||||
+ connection_class = VPCConnection
|
||||
+
|
||||
+ def default_body(self):
|
||||
+ return b"""
|
||||
+ <DeleteNatGatewayResponse xmlns="http://ec2.amazonaws.com/doc/2015-10-01/">
|
||||
+ <requestId>741fc8ab-6ebe-452b-b92b-example</requestId>
|
||||
+ <natGatewayId>nat-04ae55e711cec5680</natGatewayId>
|
||||
+ </DeleteNatGatewayResponse>
|
||||
+ """
|
||||
+
|
||||
+ def test_delete_nat_gateway(self):
|
||||
+ self.set_http_response(status_code=200)
|
||||
+ api_response = self.service_connection.delete_nat_gateway('nat-04ae55e711cec5680')
|
||||
+ self.assert_request_parameters({
|
||||
+ 'Action': 'DeleteNatGateway',
|
||||
+ 'NatGatewayId': 'nat-04ae55e711cec5680'},
|
||||
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
||||
+ 'SignatureVersion', 'Timestamp',
|
||||
+ 'Version'])
|
||||
+ self.assertEquals(api_response, True)
|
||||
+
|
||||
+if __name__ == '__main__':
|
||||
+ unittest.main()
|
@ -0,0 +1,13 @@
|
||||
Index: boto-2.40.0/boto/connection.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/boto/connection.py
|
||||
+++ boto-2.40.0/boto/connection.py
|
||||
@@ -920,7 +920,7 @@ class AWSAuthConnection(object):
|
||||
while i <= num_retries:
|
||||
# Use binary exponential backoff to desynchronize client requests.
|
||||
next_sleep = min(random.random() * (2 ** i),
|
||||
- boto.config.get('Boto', 'max_retry_delay', 60))
|
||||
+ boto.config.getfloat('Boto', 'max_retry_delay', 60))
|
||||
try:
|
||||
# we now re-sign each request before it is retried
|
||||
boto.log.debug('Token: %s' % self.provider.security_token)
|
@ -0,0 +1,41 @@
|
||||
Index: boto-2.40.0/boto/route53/healthcheck.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/boto/route53/healthcheck.py
|
||||
+++ boto-2.40.0/boto/route53/healthcheck.py
|
||||
@@ -56,7 +56,7 @@ class HealthCheck(object):
|
||||
%(ip_addr_part)s
|
||||
<Port>%(port)s</Port>
|
||||
<Type>%(type)s</Type>
|
||||
- <ResourcePath>%(resource_path)s</ResourcePath>
|
||||
+ %(resource_path)s
|
||||
%(fqdn_part)s
|
||||
%(string_match_part)s
|
||||
%(request_interval)s
|
||||
@@ -72,6 +72,8 @@ class HealthCheck(object):
|
||||
|
||||
XMLRequestIntervalPart = """<RequestInterval>%(request_interval)d</RequestInterval>"""
|
||||
|
||||
+ XMLResourcePath = """<ResourcePath>%(resource_path)s</ResourcePath>"""
|
||||
+
|
||||
valid_request_intervals = (10, 30)
|
||||
|
||||
def __init__(self, ip_addr, port, hc_type, resource_path, fqdn=None, string_match=None, request_interval=30, failure_threshold=3):
|
||||
@@ -127,7 +129,7 @@ class HealthCheck(object):
|
||||
'ip_addr_part': '',
|
||||
'port': self.port,
|
||||
'type': self.hc_type,
|
||||
- 'resource_path': self.resource_path,
|
||||
+ 'resource_path': "",
|
||||
'fqdn_part': "",
|
||||
'string_match_part': "",
|
||||
'request_interval': (self.XMLRequestIntervalPart %
|
||||
@@ -140,6 +142,9 @@ class HealthCheck(object):
|
||||
if self.ip_addr:
|
||||
params['ip_addr_part'] = self.XMLIpAddrPart % {'ip_addr': self.ip_addr}
|
||||
|
||||
+ if self.resource_path is not None:
|
||||
+ params['resource_path'] = self.XMLResourcePath % {'resource_path': self.resource_path}
|
||||
+
|
||||
if self.string_match is not None:
|
||||
params['string_match_part'] = self.XMLStringMatchPart % {'string_match': self.string_match}
|
||||
|
@ -0,0 +1,13 @@
|
||||
Index: boto-2.40.0/boto/requestlog.py
|
||||
===================================================================
|
||||
--- boto-2.40.0.orig/boto/requestlog.py
|
||||
+++ boto-2.40.0/boto/requestlog.py
|
||||
@@ -25,7 +25,7 @@ class RequestLogger(RequestHook):
|
||||
duration = (td.microseconds + long_type(td.seconds + td.days * 24 * 3600) * 1e6) / 1e6
|
||||
|
||||
# write output including timestamp, status code, response time, response size, request action
|
||||
- self.request_log_queue.put("'%s', '%s', '%s', '%s', '%s'\n" % (time, response.status, duration, len, request.params['Action']))
|
||||
+ self.request_log_queue.put("'%s', '%s', '%s', '%s', '%s'\n" % (time, response.status, duration, len, request.params.get('Action')))
|
||||
|
||||
def _request_log_worker(self):
|
||||
while True:
|
@ -0,0 +1,73 @@
|
||||
Index: boto-2.45.0/boto/vpc/__init__.py
|
||||
===================================================================
|
||||
--- boto-2.45.0.orig/boto/vpc/__init__.py
|
||||
+++ boto-2.45.0/boto/vpc/__init__.py
|
||||
@@ -1269,6 +1269,33 @@ class VPCConnection(EC2Connection):
|
||||
params['DryRun'] = 'true'
|
||||
return self.get_status('DeleteSubnet', params)
|
||||
|
||||
+ def modify_subnet_attribute(self, subnet_id, map_public_ip_on_launch,
|
||||
+ dry_run=False):
|
||||
+ """
|
||||
+ :type subnet_id: str
|
||||
+ :param subnet_id: The ID of the subnet.
|
||||
+
|
||||
+ :type map_public_ip_on_launch: bool
|
||||
+ :param map_public_ip_on_launch: Specifies whether public IP addresses
|
||||
+ are provided for the instances launched into this subnet.
|
||||
+
|
||||
+ :type dry_run: bool
|
||||
+ :param dry_run: Set to True if the operation should not actually run.
|
||||
+
|
||||
+ :rtype: bool
|
||||
+ :return: True if successful
|
||||
+ """
|
||||
+ params = {
|
||||
+ 'SubnetId': subnet_id
|
||||
+ }
|
||||
+
|
||||
+ params['MapPublicIpOnLaunch.Value'] = (
|
||||
+ 'true' if map_public_ip_on_launch else 'false')
|
||||
+
|
||||
+ if dry_run:
|
||||
+ params['DryRun'] = 'true'
|
||||
+ return self.get_status('ModifySubnetAttribute', params)
|
||||
+
|
||||
# DHCP Options
|
||||
|
||||
def get_all_dhcp_options(self, dhcp_options_ids=None, filters=None, dry_run=False):
|
||||
Index: boto-2.45.0/tests/unit/vpc/test_subnet.py
|
||||
===================================================================
|
||||
--- boto-2.45.0.orig/tests/unit/vpc/test_subnet.py
|
||||
+++ boto-2.45.0/tests/unit/vpc/test_subnet.py
|
||||
@@ -129,5 +129,30 @@ class TestDeleteSubnet(AWSMockServiceTes
|
||||
self.assertEquals(api_response, True)
|
||||
|
||||
|
||||
+class TestModifySubnetAttribute(AWSMockServiceTestCase):
|
||||
+
|
||||
+ connection_class = VPCConnection
|
||||
+
|
||||
+ def default_body(self):
|
||||
+ return b"""
|
||||
+ <ModifySubnetAttributeResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
||||
+ <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId>
|
||||
+ <return>true</return>
|
||||
+ </ModifySubnetAttributeResponse>
|
||||
+ """
|
||||
+
|
||||
+ def test_modify_subnet_attribute(self):
|
||||
+ self.set_http_response(status_code=200)
|
||||
+ api_response = self.service_connection.modify_subnet_attribute('subnet-a605r929',
|
||||
+ True)
|
||||
+ self.assert_request_parameters({
|
||||
+ 'Action': 'ModifySubnetAttribute',
|
||||
+ 'SubnetId': 'subnet-a605r929', 'MapPublicIpOnLaunch.Value': 'true'},
|
||||
+ ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
||||
+ 'SignatureVersion', 'Timestamp',
|
||||
+ 'Version'])
|
||||
+ self.assertEquals(api_response, True)
|
||||
+
|
||||
+
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
@ -0,0 +1,37 @@
|
||||
# Copyright (c) 2006-2012 Mitch Garnaat http://garnaat.org/
|
||||
# Copyright (c) 2010, Eucalyptus Systems, Inc.
|
||||
# Copyright (c) 2012 Amazon.com, Inc. or its affiliates.
|
||||
# All rights reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
#
|
||||
# Parts of this code were copied or derived from sample code supplied by AWS.
|
||||
# The following notice applies to that code.
|
||||
#
|
||||
# This software code is made available "AS IS" without warranties of any
|
||||
# kind. You may copy, display, modify and redistribute the software
|
||||
# code either by itself or as incorporated into your code; provided that
|
||||
# you do not remove any proprietary notices. Your use of this software
|
||||
# code is at your own risk and you waive any claim against Amazon
|
||||
# Digital Services, Inc. or its affiliates with respect to your use of
|
||||
# this software code. (c) 2006 Amazon Digital Services, Inc. or its
|
||||
# affiliates.
|
||||
|
@ -0,0 +1,405 @@
|
||||
Summary: A simple, lightweight interface to Amazon Web Services
|
||||
Name: python-boto
|
||||
Version: 2.49.0
|
||||
Release: 14%{?dist}
|
||||
License: MIT
|
||||
URL: https://github.com/boto/boto
|
||||
Source0: https://pypi.io/packages/source/b/boto/boto-%{version}.tar.gz
|
||||
# Taken from sourcecode 2014-07-31
|
||||
Source1: boto-mit-license.txt
|
||||
|
||||
# Unbundle python-six
|
||||
# https://github.com/boto/boto/pull/3086
|
||||
Patch1: boto-2.39.0-devendor.patch
|
||||
|
||||
# Add NAT gateway support
|
||||
# https://github.com/boto/boto/pull/3472
|
||||
Patch2: boto-2.40.0-nat-gateway.patch
|
||||
|
||||
# Fix max_retry_delay config option
|
||||
# https://github.com/boto/boto/pull/3506
|
||||
# https://github.com/boto/boto/pull/3508
|
||||
Patch4: boto-2.40.0-retry-float.patch
|
||||
|
||||
# Add aws-exec-read to S3's canned ACL list
|
||||
# https://github.com/boto/boto/pull/3332
|
||||
Patch5: boto-2.40.0-aws-exec-read.patch
|
||||
|
||||
# Add new instance attributes
|
||||
# https://github.com/boto/boto/pull/3077
|
||||
# https://github.com/boto/boto/pull/3131
|
||||
Patch6: boto-2.40.0-instance-attributes.patch
|
||||
|
||||
# Fix multi-VPC hosted zone parsing
|
||||
# https://github.com/boto/boto/pull/2882
|
||||
Patch7: boto-2.40.0-multi-vpc-zone.patch
|
||||
|
||||
# Fix request logging for S3 requests
|
||||
# https://github.com/boto/boto/issues/2722
|
||||
# https://github.com/boto/boto/pull/2875
|
||||
Patch8: boto-2.40.0-s3-requestlog.patch
|
||||
|
||||
# Allow route53 health check resource paths to be none
|
||||
# https://github.com/boto/boto/pull/2866
|
||||
Patch9: boto-2.40.0-route53-no-resourcepath.patch
|
||||
|
||||
# Add ModifySubnetAttribute support
|
||||
# https://github.com/boto/boto/pull/3111
|
||||
Patch10: boto-2.45.0-modifysubnetattribute.patch
|
||||
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-six
|
||||
BuildRequires: python3-httpretty
|
||||
BuildRequires: python3-mock
|
||||
BuildRequires: python3-nose
|
||||
BuildRequires: python3-requests
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
|
||||
%description
|
||||
Boto is a Python package that provides interfaces to Amazon Web Services.
|
||||
It supports over thirty services, such as S3 (Simple Storage Service),
|
||||
SQS (Simple Queue Service), and EC2 (Elastic Compute Cloud) via their
|
||||
REST and Query APIs. The goal of boto is to support the full breadth
|
||||
and depth of Amazon Web Services. In addition, boto provides support
|
||||
for other public services such as Google Storage in addition to private
|
||||
cloud systems like Eucalyptus, OpenStack and Open Nebula.
|
||||
|
||||
|
||||
%package -n python3-boto
|
||||
Summary: A simple, lightweight interface to Amazon Web Services
|
||||
|
||||
Requires: python3-requests
|
||||
Requires: python3-six
|
||||
Requires: python3-rsa
|
||||
|
||||
|
||||
%description -n python3-boto
|
||||
Boto is a Python package that provides interfaces to Amazon Web Services.
|
||||
It supports over thirty services, such as S3 (Simple Storage Service),
|
||||
SQS (Simple Queue Service), and EC2 (Elastic Compute Cloud) via their
|
||||
REST and Query APIs. The goal of boto is to support the full breadth
|
||||
and depth of Amazon Web Services. In addition, boto provides support
|
||||
for other public services such as Google Storage in addition to private
|
||||
cloud systems like Eucalyptus, OpenStack and Open Nebula.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n boto-%{version}
|
||||
|
||||
#rm -r boto/vendored
|
||||
|
||||
cp -p %{SOURCE1} .
|
||||
|
||||
|
||||
%build
|
||||
%{__python3} setup.py build
|
||||
|
||||
|
||||
%install
|
||||
%{__python3} setup.py install --skip-build --root $RPM_BUILD_ROOT
|
||||
rm -f $RPM_BUILD_ROOT/%{_bindir}/*
|
||||
|
||||
|
||||
#%check
|
||||
#%{__python3} tests/test.py default
|
||||
|
||||
|
||||
%files -n python3-boto
|
||||
%license boto-mit-license.txt
|
||||
%{python3_sitelib}/boto*
|
||||
|
||||
|
||||
%changelog
|
||||
* Sun Nov 19 2023 Arkady L. Shane <tigro@msvsphere-os.ru> - 2.49.0-14
|
||||
- Rebuilt for MSVSphere 9.3
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.49.0-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.49.0-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Jun 16 2022 Python Maint <python-maint@redhat.com> - 2.49.0-12
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.49.0-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.49.0-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.49.0-9
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.49.0-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.49.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Sun May 24 2020 Miro Hrončok <mhroncok@redhat.com> - 2.49.0-6
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.49.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 2.49.0-4
|
||||
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||
|
||||
* Sat Aug 24 2019 Gwyn Ciesla <gwync@protonmail.com> - 2.49.0-3
|
||||
- Disable tests.
|
||||
|
||||
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2.49.0-2
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Tue Aug 13 2019 Gwyn Ciesla <gwync@protonmail.com> - 2.49.0-1
|
||||
- 2.49.0
|
||||
|
||||
* Tue Aug 13 2019 Gwyn Ciesla <gwync@protonmail.com> - 2.45.0-13
|
||||
- Drop python 2.
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.0-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.0-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.0-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.45.0-9
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Wed Feb 21 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.45.0-8
|
||||
- Update Python 2 dependency declarations to new packaging standards
|
||||
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Fri Dec 01 2017 Troy Dawson <tdawson@redhat.com> - 2.45.0-6
|
||||
- Update spec file conditionals
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.45.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Fri Jan 27 2017 Garrett Holmstrom <gholms@fedoraproject.org> - 2.45.0-3
|
||||
- Added support for ModifySubnetAttribute
|
||||
|
||||
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 2.45.0-2
|
||||
- Rebuild for Python 3.6
|
||||
|
||||
* Thu Dec 15 2016 Jon Ciesla <limburgher@gmail.com> - 2.45.0-1
|
||||
- 2.40.0.
|
||||
|
||||
* Fri Dec 9 2016 Garrett Holmstrom <gholms@fedoraproject.org> - 2.44.0-1
|
||||
- Updated to 2.44.0 (RH #1403362)
|
||||
|
||||
* Tue Oct 25 2016 Garrett Holmstrom <gholms@fedoraproject.org> - 2.43.0-1
|
||||
- Updated to 2.43.0
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.41.0-2
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Tue Jul 5 2016 Garrett Holmstrom <gholms@fedoraproject.org> - 2.41.0-1
|
||||
- Updated to 2.41.0
|
||||
|
||||
* Tue Jun 21 2016 Garrett Holmstrom <gholms@fedoraproject.org> - 2.40.0-2
|
||||
- Cleaned up spec file
|
||||
- Added NAT gateway support
|
||||
- Fixed sigv4 protocol selection
|
||||
- Fixed max_retry_delay config option
|
||||
- Added aws-exec-read to S3's canned ACL list
|
||||
- Added new instance attributes
|
||||
- Fixed multi-VPC hosted zone parsing
|
||||
- Fixed request logging for S3 requests
|
||||
- Allowed route53 health check resource paths to be none
|
||||
|
||||
* Mon May 23 2016 Jon Ciesla <limburgher@gmail.com> - 2.40.0-1
|
||||
- 2.40.0.
|
||||
- Kinesis patch upstreamed.
|
||||
|
||||
* Fri Jan 29 2016 Garrett Holmstrom <gholms@fedoraproject.org> - 2.39.0-1
|
||||
- Updated to 2.39.0 (RH #1300424)
|
||||
- Switched to systemwide copy of python-six on el7
|
||||
- Enabled unit tests on el7
|
||||
- Renamed python-boto to python2-boto to comply with current python
|
||||
packaging standards
|
||||
|
||||
* Mon Nov 30 2015 Ryan S. Brown <sb@ryansb.com> - 2.38.0-5
|
||||
- Add patch for unittest failure https://github.com/boto/boto/pull/3412
|
||||
|
||||
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.38.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
|
||||
|
||||
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.38.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Tue Jun 9 2015 Garrett Holmstrom <gholms@fedoraproject.org> - 2.38.0-2
|
||||
- Fixed ImportErrors on RHEL 7 (RH #1229863)
|
||||
|
||||
* Fri Apr 10 2015 Garrett Holmstrom <gholms@fedoraproject.org> - 2.38.0-1
|
||||
- Updated to 2.38.0
|
||||
- Added BuildRequires for python-six
|
||||
- Made sample executables doc files in F23
|
||||
|
||||
* Wed Apr 8 2015 Garrett Holmstrom <gholms@fedoraproject.org> - 2.37.0-1
|
||||
- Updated to 2.37.0 (RH #1180861)
|
||||
- Dropped executables in F23
|
||||
- Unbundled python-six (boto #3086)
|
||||
- Enabled unit tests on Fedora (RH #1072946)
|
||||
|
||||
* Sun Nov 9 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.34.0-4
|
||||
- Fixed python3 requires
|
||||
|
||||
* Fri Nov 7 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.34.0-3
|
||||
- Re-fix executables (RH #1152444)
|
||||
|
||||
* Fri Nov 7 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.34.0-2
|
||||
- Added missing python-requests and python-rsa dependencies
|
||||
- Disabled unit tests due to rawhide/F21 python regression (RH #1161166:c4)
|
||||
|
||||
* Fri Nov 7 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.34.0-1
|
||||
- Updated to 2.34.0 (RH #1072925, RH #1072928, RH #1161229)
|
||||
- Made executables point to python2 (RH #1152444)
|
||||
- Enabled unit tests on Fedora (RH #1072946)
|
||||
|
||||
* Thu Aug 21 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.32.1-1
|
||||
- Updated to 2.32.1 (RH #1126056, RH #1132348)
|
||||
- Added python3-boto (RH #1024363)
|
||||
- Added (but did not enable) unit tests (RH #1072946, RH #1072923)
|
||||
|
||||
* Thu Jul 31 2014 Tom Callaway <spot@fedoraproject.org> - 2.27.0-3
|
||||
- fix license handling
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.27.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Fri Mar 21 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.27.0-1
|
||||
- Updated to 2.27.0
|
||||
|
||||
* Wed Feb 12 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.25.0-2
|
||||
- Fixed roboto parameter type conversion (boto #2094, RH #1064550)
|
||||
|
||||
* Mon Feb 10 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.25.0-1
|
||||
- Updated to 2.25.0
|
||||
- This update makes s3.get_bucket use HEAD instead of GET
|
||||
|
||||
* Mon Jan 20 2014 Garrett Holmstrom <gholms@fedoraproject.org> - 2.23.0-1
|
||||
- Updated to 2.23.0
|
||||
- Fixed auth for anonymous S3 requests (boto #1988)
|
||||
|
||||
* Thu Sep 26 2013 Garrett Holmstrom <gholms@fedoraproject.org> - 2.13.3-1
|
||||
- Updated to 2.13.3
|
||||
- Note that this version changes register_image's virtualization_type parameter
|
||||
- Fixed auto-scaling PropagateAtLaunch parsing (#1011682)
|
||||
|
||||
* Mon Jul 29 2013 Garrett Holmstrom <gholms@fedoraproject.org> - 2.9.9-2
|
||||
- Re-fixed autoscaling policy parsing (boto #1538)
|
||||
|
||||
* Thu Jul 25 2013 Orion Poplawski <orion@cora.nwra.com> - 2.9.9-1
|
||||
- Update to 2.9.9
|
||||
|
||||
* Fri Jun 21 2013 Garrett Holmstrom <gholms@fedoraproject.org> - 2.9.6-2
|
||||
- Rebuilt after merge
|
||||
|
||||
* Fri Jun 21 2013 Garrett Holmstrom <gholms@fedoraproject.org> - 2.9.6-1
|
||||
- Updated to 2.9.6
|
||||
- Fixed autoscaling policy parsing (boto #1538)
|
||||
|
||||
* Thu May 9 2013 Orion Poplawski <orion@cora.nwra.com> - 2.9.2-1
|
||||
- Update to 2.9.2 (bug #948714)
|
||||
- Spec cleanup
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Tue Jan 8 2013 Garrett Holmstrom <gholms@fedoraproject.org> - 2.5.2-3
|
||||
- Fixed parsing of current/previous instance state data (boto #881)
|
||||
|
||||
* Wed Nov 21 2012 Garrett Holmstrom <gholms@fedoraproject.org> - 2.6.0-2
|
||||
- Updated to 2.6.0 (#876517)
|
||||
- Note that this version enables SSL cert verification by default.
|
||||
|
||||
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Fri Jul 6 2012 Garrett Holmstrom <gholms@fedoraproject.org> - 2.5.2-1
|
||||
- Updated to 2.5.2
|
||||
- Fixed failure when metadata is empty (#838076)
|
||||
|
||||
* Thu Jun 14 2012 Garrett Holmstrom <gholms@fedoraproject.org> - 2.5.1-1
|
||||
- Updated to 2.5.1 (last-minute upstream bugfix)
|
||||
|
||||
* Wed Jun 13 2012 Garrett Holmstrom <gholms@fedoraproject.org> - 2.5.0-1
|
||||
- Updated to 2.5.0 (#828912)
|
||||
|
||||
* Wed Mar 21 2012 Robert Scheck <robert@fedoraproject.org> 2.3.0-1
|
||||
- Upgrade to 2.3.0 (#786301 #c10)
|
||||
|
||||
* Tue Mar 13 2012 Robert Scheck <robert@fedoraproject.org> 2.2.2-1
|
||||
- Upgrade to 2.2.2 (#786301, thanks to Bobby Powers)
|
||||
|
||||
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Mon Aug 15 2011 Robert Scheck <robert@fedoraproject.org> 2.0-1
|
||||
- Upgrade to 2.0 (#723088)
|
||||
|
||||
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9b-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Sun Jan 02 2011 Robert Scheck <robert@fedoraproject.org> 1.9b-6
|
||||
- Added a patch for python 2.4 support (#656446, #661233)
|
||||
|
||||
* Thu Dec 02 2010 Lubomir Rintel <lubo.rintel@gooddata.com> 1.9b-5
|
||||
- Apply a patch for python 2.7 support (#659248)
|
||||
|
||||
* Thu Nov 18 2010 Robert Scheck <robert@fedoraproject.org> 1.9b-4
|
||||
- Added patch to fix parameter of build_list_params() (#647005)
|
||||
|
||||
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 1.9b-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
|
||||
|
||||
* Tue Feb 09 2010 Robert Scheck <robert@fedoraproject.org> 1.9b-2
|
||||
- Backported upstream patch for image registration (#561216)
|
||||
|
||||
* Sat Jan 09 2010 Robert Scheck <robert@fedoraproject.org> 1.9b-1
|
||||
- Upgrade to 1.9b
|
||||
|
||||
* Fri Jul 24 2009 Robert Scheck <robert@fedoraproject.org> 1.8d-1
|
||||
- Upgrade to 1.8d (#513560)
|
||||
|
||||
* Wed Jun 03 2009 Luke Macken <lmacken@redhat.com> 1.7a-2
|
||||
- Add python-setuptools-devel to our build requirements, for egg-info
|
||||
|
||||
* Thu Apr 16 2009 Robert Scheck <robert@fedoraproject.org> 1.7a-1
|
||||
- Upgrade to 1.7a
|
||||
|
||||
* Mon Feb 23 2009 Robert Scheck <robert@fedoraproject.org> 1.5c-2
|
||||
- Rebuild against rpm 4.6
|
||||
|
||||
* Sun Dec 07 2008 Robert Scheck <robert@fedoraproject.org> 1.5c-1
|
||||
- Upgrade to 1.5c
|
||||
|
||||
* Fri Dec 05 2008 Jeremy Katz <katzj@redhat.com> 1.2a-2
|
||||
- Rebuild for python 2.6
|
||||
|
||||
* Wed May 07 2008 Robert Scheck <robert@fedoraproject.org> 1.2a-1
|
||||
- Upgrade to 1.2a
|
||||
|
||||
* Sat Feb 09 2008 Robert Scheck <robert@fedoraproject.org> 1.0a-1
|
||||
- Upgrade to 1.0a
|
||||
|
||||
* Sat Dec 08 2007 Robert Scheck <robert@fedoraproject.org> 0.9d-1
|
||||
- Upgrade to 0.9d
|
||||
|
||||
* Thu Aug 30 2007 Robert Scheck <robert@fedoraproject.org> 0.9b-1
|
||||
- Upgrade to 0.9b
|
||||
- Initial spec file for Fedora and Red Hat Enterprise Linux
|
Loading…
Reference in new issue