[euca2ools/el5/master] Work around Boto 2.0 + Eucalyptus 2.0 incompatibility [RH:684976]

gholms gholms at fedoraproject.org
Tue Mar 22 23:13:36 UTC 2011


commit 60fac815635dd5a4715b84d1bd071820a8610943
Author: Garrett Holmstrom <gholms at fedoraproject.org>
Date:   Tue Mar 22 16:08:31 2011 -0700

    Work around Boto 2.0 + Eucalyptus 2.0 incompatibility [RH:684976]

 euca2ools-1.3.1-euca20.patch |   90 ++++++++++++++++++++++++++++++++++++++++++
 euca2ools.spec               |    8 +++-
 2 files changed, 97 insertions(+), 1 deletions(-)
---
diff --git a/euca2ools-1.3.1-euca20.patch b/euca2ools-1.3.1-euca20.patch
new file mode 100644
index 0000000..214072c
--- /dev/null
+++ b/euca2ools-1.3.1-euca20.patch
@@ -0,0 +1,90 @@
+--- euca2ools-1.3.1/bin/euca-authorize.euca20	2011-03-22 15:32:42.534671519 -0700
++++ euca2ools-1.3.1/bin/euca-authorize	2011-03-22 15:48:50.575046474 -0700
+@@ -36,8 +36,10 @@
+ import getopt
+ import sys
+ import os
++import urllib
+ from euca2ools import Euca2ool, AddressValidationError, \
+-    ProtocolValidationError, Util, ConnectionFailed
++    ProtocolValidationError, Util, ConnectionFailed,\
++    EC2Connection
+ 
+ usage_string = \
+     """
+@@ -68,6 +70,30 @@ OPTIONAL PARAMETERS
+ 				
+ """
+ 
++# Monkey-patch authorize_security_group to get around a change in EC2 request
++# semantics that Eucalyptus 2.0 does not support.
++
++def authorize_security_group(self, group_name, src_security_group_name=None,
++                             src_security_group_owner_id=None,
++                             ip_protocol=None, from_port=None, to_port=None,
++                             cidr_ip=None):
++    params = {'GroupName':group_name}
++    if src_security_group_name:
++        params['SourceSecurityGroupName'] = src_security_group_name
++    if src_security_group_owner_id:
++        params['SourceSecurityGroupOwnerId'] = src_security_group_owner_id
++    if ip_protocol:
++        params['IpProtocol'] = ip_protocol
++    if from_port:
++        params['FromPort'] = from_port
++    if to_port:
++        params['ToPort'] = to_port
++    if cidr_ip:
++        params['CidrIp'] = urllib.quote(cidr_ip)
++    return self.get_status('AuthorizeSecurityGroupIngress', params)
++
++EC2Connection.authorize_security_group = authorize_security_group
++
+ 
+ def usage(status=1):
+     print usage_string
+--- euca2ools-1.3.1/bin/euca-revoke.euca20	2011-03-22 15:32:42.534671519 -0700
++++ euca2ools-1.3.1/bin/euca-revoke	2011-03-22 15:52:24.714193863 -0700
+@@ -36,8 +36,10 @@
+ import getopt
+ import sys
+ import os
++import urllib
+ from euca2ools import Euca2ool, AddressValidationError, \
+-    ProtocolValidationError, Util, ConnectionFailed
++    ProtocolValidationError, Util, ConnectionFailed, \
++    EC2Connection
+ 
+ usage_string = \
+     """
+@@ -68,6 +70,30 @@ OPTIONAL PARAMETERS
+ 
+ """
+ 
++# Monkey-patch revoke_security_group to get around a change in EC2 request
++# semantics that Eucalyptus 2.0 does not support.
++
++def revoke_security_group(self, group_name, src_security_group_name=None,
++                          src_security_group_owner_id=None,
++                          ip_protocol=None, from_port=None, to_port=None,
++                          cidr_ip=None):
++    params = {'GroupName':group_name}
++    if src_security_group_name:
++        params['SourceSecurityGroupName'] = src_security_group_name
++    if src_security_group_owner_id:
++        params['SourceSecurityGroupOwnerId'] = src_security_group_owner_id
++    if ip_protocol:
++        params['IpProtocol'] = ip_protocol
++    if from_port:
++        params['FromPort'] = from_port
++    if to_port:
++        params['ToPort'] = to_port
++    if cidr_ip:
++        params['CidrIp'] = urllib.quote(cidr_ip)
++    return self.get_status('RevokeSecurityGroupIngress', params)
++
++EC2Connection.revoke_security_group = revoke_security_group
++
+ 
+ def usage(status=1):
+     print usage_string
diff --git a/euca2ools.spec b/euca2ools.spec
index 71ec957..7931554 100644
--- a/euca2ools.spec
+++ b/euca2ools.spec
@@ -8,7 +8,7 @@
 
 Name:           euca2ools
 Version:        1.3.1
-Release:        8%{?dist}
+Release:        9%{?dist}
 Summary:        Elastic Utility Computing Architecture Command-Line Tools
 
 Group:          Applications/Internet
@@ -56,6 +56,8 @@ Patch18:        euca2ools-1.3.1-userdata.patch
 Patch19:        euca2ools-1.3.1-srcnet.patch
 # Boto 2.0 compatibility
 Patch20:        euca2ools-1.3.1-boto20.patch
+# https://bugzilla.redhat.com/show_bug.cgi?id=684976
+Patch21:        euca2ools-1.3.1-euca20.patch
 
 Requires:       python%{?__python_ver}-m2crypto
 Requires:       python%{?__python_ver}-boto
@@ -100,6 +102,7 @@ Eucalyptus.  These tools are also compatible with Amazon AWS.
 %patch18 -p1
 %patch19 -p1
 %patch20 -p1
+%patch21 -p1
 
 
 %build
@@ -137,6 +140,9 @@ rm -rf %{buildroot}
 %doc README
 
 %changelog
+* Tue Mar 22 2011 Garrett Holmstrom <gholms at fedoraproject.org> - 1.3.1-9
+- Work around Boto 2.0 + Eucalyptus 2.0 incompatibility [RH:684976]
+
 * Mon Mar  7 2011 Garrett Holmstrom <gholms at fedoraproject.org> - 1.3.1-8
 - Fix Boto 2.0 compatibility
 


More information about the scm-commits mailing list