ó ¡ôXc@sŽddlZddlmZmZddlmZddlmZmZdefd„ƒYZ de fd„ƒYZ d e fd „ƒYZ dS( iÿÿÿÿN(tArgtMutuallyExclusiveArgList(t ArgumentError(t EC2Requestt parse_portst_ModifySecurityGroupRulecBs1eZdZeddddd,ddƒeddd dd,dd ƒed d d dddddddƒeddd ddddd,ddƒeddd ddddd,ddƒeeddddd d dd!ƒed"d d#dddd,dd$ƒƒed%dd&d d'dd(ƒgZd)„Zd*„Zd+„Z RS(-s7 The basis for security group-editing commands tgrouptmetavartGROUPtroute_tothelps5name or ID of the security group to modify (required)s--egresstactiont store_truesZ[VPC only] manage an egress rule, which controls traffic leaving the groups-Ps --protocoltdestsIpPermissions.1.IpProtocoltPROTOCOLtdefaultttcpsšthe protocol to affect (Non-VPC: tcp, udp, icmp) (VPC only: tcp, udp, icmp, -1/all, other protocol numbers) (default: tcp)s-ps --port-ranget port_rangetRANGEsjrange of ports (specified as "from-to") or a single port number (required for tcp and udp)s-ts--icmp-type-codeticmp_type_codes TYPE:CODEsQICMP type and code (specified as "type:code") (required for icmp)s-ss--cidrtCIDRs!IpPermissions.1.IpRanges.1.CidrIpsIP range (default: 0.0.0.0/0)s-ot target_groupsf[Non-VPC only] name of a security group with which to affect network communications-utACCOUNTsIpPermissions.1.Groups.1.UserIdsPID of the account that owns the security group specified with -ocCs|jƒdS(N(tprocess_port_cli_args(tself((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pytprocess_cli_argsDscCs;tj|ƒ|jdjdƒr:|jd|jdargument -u is required when -o names a security group by name(RRRRR R!(salls-1(Rt configuretargst startswithtparamsRtgettNonetstrtlowerRtisdigittsockettgetprotobynameterrortformat(RRtprotocolt from_porttto_port((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyR#HsD      cCsl|jd|jjdƒgƒGHd|jjdƒd|jjdƒ|jjdƒ|jjdƒg}|jjdƒr£|jd ƒ|j|jjdƒƒn|jjd ƒrÞ|jd ƒ|j|jjd ƒƒn|jjd ƒr|jd ƒ|j|jjd ƒƒn|jjdƒrZ|jddgƒ|j|jjdƒƒn|j|ƒGHdS(NRRt PERMISSIONtALLOWSsIpPermissions.1.IpProtocolsIpPermissions.1.FromPortsIpPermissions.1.ToPortsIpPermissions.1.Groups.1.UserIdtUSERs"IpPermissions.1.Groups.1.GroupNametNAMEs IpPermissions.1.Groups.1.GroupIdtIDs!IpPermissions.1.IpRanges.1.CidrIptFROMR(ttabifyR$R'R&tappendtextend(Rt_tperm_str((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyt print_result{s*       N( t__name__t __module__t__doc__RR(RtARGSRR#R>(((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyR"s4      3tAuthorizeSecurityGroupRulecBseZdZed„ƒZRS(s:Add a rule to a security group that allows traffic to passcCs|jdrdSdSdS(NRtAuthorizeSecurityGroupEgresstAuthorizeSecurityGroupIngress(R$(R((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyR –s (R?R@t DESCRIPTIONtpropertyR (((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyRC“stRevokeSecurityGroupRulecBseZdZed„ƒZRS(s#Remove a rule from a security groupcCs|jdrdSdSdS(NRtRevokeSecurityGroupEgresstRevokeSecurityGroupIngress(R$(R((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyR ¡s (R?R@RFRGR (((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyRHžs( R,trequestbuilderRRtrequestbuilder.exceptionsRteuca2ools.commands.ec2RRRRCRH(((sR/usr/lib/python2.7/site-packages/euca2ools/commands/ec2/modifysecuritygrouprule.pyts q