<s> import click <EOL> from urls import KEYS <EOL> from base_request import DigitalOcean , print_table , CONTEXT_SETTINGS <EOL> @ click . group ( ) <EOL> def ssh_keys_group ( ) : <EOL> """<STR_LIT>""" <EOL> pass <EOL> def validate ( dic , option_list ) : <EOL> """<STR_LIT>""" <EOL> for key in dic . viewkeys ( ) : <EOL> if key in option_list : <EOL> for option in option_list : <EOL> if option != key : <EOL> if dic [ option ] and dic [ key ] : <EOL> raise click . UsageError ( '<STR_LIT>' % ( option , key ) ) <EOL> if ( dic [ '<STR_LIT>' ] and not dic [ '<STR_LIT:name>' ] and not dic [ '<STR_LIT:key>' ] ) or ( dic [ '<STR_LIT:name>' ] and not dic [ '<STR_LIT>' ] and not dic [ '<STR_LIT:key>' ] ) or ( dic [ '<STR_LIT:key>' ] and not dic [ '<STR_LIT>' ] and not dic [ '<STR_LIT:name>' ] ) : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> if ( dic [ '<STR_LIT>' ] and not dic [ '<STR_LIT:name>' ] or not dic [ '<STR_LIT:key>' ] ) : <EOL> raise click . UsageError ( '<STR_LIT>' ) <EOL> return True <EOL> def invoke_list ( token , proxy , page = <NUM_LIT:1> ) : <EOL> """<STR_LIT>""" <EOL> method = '<STR_LIT:GET>' <EOL> url = KEYS <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy ) <EOL> return result <EOL> @ ssh_keys_group . command ( name = '<STR_LIT>' , context_settings = CONTEXT_SETTINGS ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , is_flag = True , help = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT:-c>' , is_flag = True , help = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = int , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = int , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = int , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = str , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , type = click . Choice ( [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:html>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) , help = '<STR_LIT>' , default = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . option ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , metavar = '<STR_LIT>' ) <EOL> @ click . pass_context <EOL> def ssh_keys ( ctx , getlist , create , name , key , retrieve , update , delete , token , <EOL> tablefmt , proxy ) : <EOL> """<STR_LIT>""" <EOL> if ( not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT:name>' ] <EOL> and not ctx . params [ '<STR_LIT:key>' ] and not ctx . params [ '<STR_LIT>' ] and not ctx . params [ '<STR_LIT>' ] <EOL> and not ctx . params [ '<STR_LIT>' ] ) : <EOL> return click . echo ( ctx . get_help ( ) ) <EOL> option_list = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> if validate ( ctx . params , option_list ) : <EOL> if getlist : <EOL> page = <NUM_LIT:1> <EOL> has_page = True <EOL> while has_page : <EOL> url = KEYS <EOL> result = invoke_list ( token , proxy , page ) <EOL> if result [ '<STR_LIT>' ] : <EOL> has_page = False <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> record = '<STR_LIT>' <EOL> headers = [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> for dic in result [ '<STR_LIT>' ] : <EOL> click . echo ( "<STR_LIT>" ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:id>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:name>' ] ) ) <EOL> click . echo ( "<STR_LIT>" ) <EOL> total = '<STR_LIT>' % ( result [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> click . echo ( total ) <EOL> if result [ '<STR_LIT>' ] . has_key ( '<STR_LIT>' ) : <EOL> if result [ '<STR_LIT>' ] [ '<STR_LIT>' ] . has_key ( '<STR_LIT>' ) : <EOL> page += <NUM_LIT:1> <EOL> value = click . prompt ( '<STR_LIT>' , type = str , default = '<STR_LIT:n>' ) <EOL> if value . lower ( ) != '<STR_LIT:y>' : <EOL> has_page = False <EOL> else : <EOL> has_page = False <EOL> else : <EOL> has_page = False <EOL> if create : <EOL> method = '<STR_LIT:POST>' <EOL> url = KEYS <EOL> params = { '<STR_LIT:name>' : name , '<STR_LIT>' : key } <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy , params = params ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> record = '<STR_LIT>' <EOL> dic = result [ '<STR_LIT>' ] <EOL> click . echo ( "<STR_LIT>" ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:id>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:name>' ] ) ) <EOL> click . echo ( "<STR_LIT>" ) <EOL> if retrieve : <EOL> method = '<STR_LIT:GET>' <EOL> url = KEYS + str ( retrieve ) <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> dic = result [ '<STR_LIT>' ] <EOL> record = '<STR_LIT>' <EOL> click . echo ( "<STR_LIT>" ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:id>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:name>' ] ) ) <EOL> click . echo ( "<STR_LIT>" ) <EOL> if update : <EOL> method = '<STR_LIT>' <EOL> url = KEYS + str ( update ) <EOL> params = { } <EOL> if name : <EOL> params . update ( { '<STR_LIT:name>' : name } ) <EOL> if key : <EOL> params . update ( { '<STR_LIT>' : key } ) <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy , params = params ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> record = '<STR_LIT>' <EOL> dic = result [ '<STR_LIT>' ] <EOL> click . echo ( "<STR_LIT>" ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:id>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT>' ] ) ) <EOL> click . echo ( "<STR_LIT>" % ( dic [ '<STR_LIT:name>' ] ) ) <EOL> click . echo ( "<STR_LIT>" ) <EOL> if delete : <EOL> method = '<STR_LIT>' <EOL> url = KEYS + str ( delete ) <EOL> result = DigitalOcean . do_request ( method , url , token = token , proxy = proxy ) <EOL> if result [ '<STR_LIT>' ] : <EOL> click . echo ( ) <EOL> click . echo ( '<STR_LIT>' % ( result [ '<STR_LIT>' ] ) ) <EOL> else : <EOL> msg = "<STR_LIT>" % delete <EOL> click . echo ( ) <EOL> click . echo ( msg ) </s>
