<s> """<STR_LIT>""" <EOL> from awscli . arguments import CustomArgument <EOL> def _add_params ( argument_table , ** kwargs ) : <EOL> arg = ProtocolArgument ( '<STR_LIT>' , <EOL> help_text = PROTOCOL_DOCS ) <EOL> argument_table [ '<STR_LIT>' ] = arg <EOL> argument_table [ '<STR_LIT>' ] . _UNDOCUMENTED = True <EOL> arg = PortArgument ( '<STR_LIT:port>' , help_text = PORT_DOCS ) <EOL> argument_table [ '<STR_LIT:port>' ] = arg <EOL> argument_table [ '<STR_LIT>' ] . _UNDOCUMENTED = True <EOL> argument_table [ '<STR_LIT>' ] . _UNDOCUMENTED = True <EOL> arg = CidrArgument ( '<STR_LIT>' , help_text = CIDR_DOCS ) <EOL> argument_table [ '<STR_LIT>' ] = arg <EOL> argument_table [ '<STR_LIT>' ] . _UNDOCUMENTED = True <EOL> arg = SourceGroupArgument ( '<STR_LIT>' , <EOL> help_text = SOURCEGROUP_DOCS ) <EOL> argument_table [ '<STR_LIT>' ] = arg <EOL> argument_table [ '<STR_LIT>' ] . _UNDOCUMENTED = True <EOL> arg = GroupOwnerArgument ( '<STR_LIT>' , <EOL> help_text = GROUPOWNER_DOCS ) <EOL> argument_table [ '<STR_LIT>' ] = arg <EOL> argument_table [ '<STR_LIT>' ] . _UNDOCUMENTED = True <EOL> def _check_args ( parsed_args , ** kwargs ) : <EOL> arg_dict = vars ( parsed_args ) <EOL> if arg_dict [ '<STR_LIT>' ] : <EOL> for key in ( '<STR_LIT>' , '<STR_LIT:port>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ) : <EOL> if arg_dict [ key ] : <EOL> msg = ( '<STR_LIT>' <EOL> '<STR_LIT>' ) % key <EOL> raise ValueError ( msg ) <EOL> def _add_docs ( help_command , ** kwargs ) : <EOL> doc = help_command . doc <EOL> doc . style . new_paragraph ( ) <EOL> doc . style . start_note ( ) <EOL> msg = ( '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> doc . include_doc_string ( msg ) <EOL> doc . style . end_note ( ) <EOL> EVENTS = [ <EOL> ( '<STR_LIT>' , <EOL> _add_params ) , <EOL> ( '<STR_LIT>' , <EOL> _add_params ) , <EOL> ( '<STR_LIT>' , _add_params ) , <EOL> ( '<STR_LIT>' , _add_params ) , <EOL> ( '<STR_LIT>' , <EOL> _check_args ) , <EOL> ( '<STR_LIT>' , _check_args ) , <EOL> ( '<STR_LIT>' , _check_args ) , <EOL> ( '<STR_LIT>' , _check_args ) , <EOL> ( '<STR_LIT>' , _add_docs ) , <EOL> ( '<STR_LIT>' , _add_docs ) , <EOL> ( '<STR_LIT>' , _add_docs ) , <EOL> ( '<STR_LIT>' , _add_docs ) , <EOL> ] <EOL> PROTOCOL_DOCS = ( '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> PORT_DOCS = ( '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> CIDR_DOCS = '<STR_LIT>' <EOL> SOURCEGROUP_DOCS = ( '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> GROUPOWNER_DOCS = ( '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> def register_secgroup ( event_handler ) : <EOL> for event , handler in EVENTS : <EOL> event_handler . register ( event , handler ) <EOL> def _build_ip_permissions ( params , key , value ) : <EOL> if '<STR_LIT>' not in params : <EOL> params [ '<STR_LIT>' ] = [ { } ] <EOL> if key == '<STR_LIT>' : <EOL> if '<STR_LIT>' not in params [ '<STR_LIT>' ] [ <NUM_LIT:0> ] : <EOL> params [ '<STR_LIT>' ] [ <NUM_LIT:0> ] [ '<STR_LIT>' ] = [ ] <EOL> params [ '<STR_LIT>' ] [ <NUM_LIT:0> ] [ '<STR_LIT>' ] . append ( value ) <EOL> elif key in ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) : <EOL> if '<STR_LIT>' not in params [ '<STR_LIT>' ] [ <NUM_LIT:0> ] : <EOL> params [ '<STR_LIT>' ] [ <NUM_LIT:0> ] [ '<STR_LIT>' ] = [ { } ] <EOL> params [ '<STR_LIT>' ] [ <NUM_LIT:0> ] [ '<STR_LIT>' ] [ <NUM_LIT:0> ] [ key ] = value <EOL> else : <EOL> params [ '<STR_LIT>' ] [ <NUM_LIT:0> ] [ key ] = value <EOL> class ProtocolArgument ( CustomArgument ) : <EOL> def add_to_params ( self , parameters , value ) : <EOL> if value : <EOL> try : <EOL> int_value = int ( value ) <EOL> if ( int_value < <NUM_LIT:0> or int_value > <NUM_LIT:255> ) and int_value != - <NUM_LIT:1> : <EOL> msg = ( '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> raise ValueError ( msg ) <EOL> except ValueError : <EOL> if value not in ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:all>' ) : <EOL> msg = ( '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> raise ValueError ( msg ) <EOL> if value == '<STR_LIT:all>' : <EOL> value = '<STR_LIT>' <EOL> _build_ip_permissions ( parameters , '<STR_LIT>' , value ) <EOL> class PortArgument ( CustomArgument ) : <EOL> def add_to_params ( self , parameters , value ) : <EOL> if value : <EOL> try : <EOL> if value == '<STR_LIT>' or value == '<STR_LIT:all>' : <EOL> fromstr = '<STR_LIT>' <EOL> tostr = '<STR_LIT>' <EOL> elif '<STR_LIT:->' in value : <EOL> fromstr , tostr = value . split ( '<STR_LIT:->' , <NUM_LIT:1> ) <EOL> else : <EOL> fromstr , tostr = ( value , value ) <EOL> _build_ip_permissions ( parameters , '<STR_LIT>' , int ( fromstr ) ) <EOL> _build_ip_permissions ( parameters , '<STR_LIT>' , int ( tostr ) ) <EOL> except ValueError : <EOL> msg = ( '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> raise ValueError ( msg ) <EOL> class CidrArgument ( CustomArgument ) : <EOL> def add_to_params ( self , parameters , value ) : <EOL> if value : <EOL> value = [ { '<STR_LIT>' : value } ] <EOL> _build_ip_permissions ( parameters , '<STR_LIT>' , value ) <EOL> class SourceGroupArgument ( CustomArgument ) : <EOL> def add_to_params ( self , parameters , value ) : <EOL> if value : <EOL> if value . startswith ( '<STR_LIT>' ) : <EOL> _build_ip_permissions ( parameters , '<STR_LIT>' , value ) <EOL> else : <EOL> _build_ip_permissions ( parameters , '<STR_LIT>' , value ) <EOL> class GroupOwnerArgument ( CustomArgument ) : <EOL> def add_to_params ( self , parameters , value ) : <EOL> if value : <EOL> _build_ip_permissions ( parameters , '<STR_LIT>' , value ) </s>
