--- 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