Mercurial > repos > uga-galaxy-group > webservice_toolsuite_v1_1
diff WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py~ @ 0:049760c677de default tip
Galaxy WSExtensions added successfully
author | uga-galaxy-group |
---|---|
date | Tue, 05 Jul 2011 19:34:18 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clients/client_1.py~ Tue Jul 05 19:34:18 2011 -0400 @@ -0,0 +1,173 @@ +''' +@author Chaitanya Guttula, Sumedha Ganjoo +@see LICENSE (MIT style license file). +''' + +import warnings +with warnings.catch_warnings(): + warnings.simplefilter("ignore") + import sys + import os + import urllib + + """ + + This script takes the values of the input parameters of the + web service from the user and invokes the web service. + The URL to the WSDL is the command line argument + + """ + servicetype = sys.argv[2] + if servicetype=='SOAP': + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + galaxyhome=os.environ.get('GALAXY_HOME') + sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/') + os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/') + from creatorEngineComplex import * + from wsdl2path import * + from paramConverter import * + from ZSI.writer import SoapWriter + + webservice = str(sys.argv[3]) + operation = str(sys.argv[4]) + resultfile=open(sys.argv[1],'w') + length=len(sys.argv) + inputdict={} + i=5 + test=ClientCreator() + while(i>=5 and i<(length-1)): + key=sys.argv[i] + print 'key is : ',key + #if(sys.argv[i+1]=='ZSI.TC.String'): + val=sys.argv[i+1] + while(val.find('__at__')>-1): + vlist = val.split('__at__') + val = '@'.join(vlist) + while(val.find('__sq__')>-1): + vlist = val.split('__sq__') + val = ''.join(vlist) + while(val.find('__gt__')>-1): + vlist = val.split('__gt__') + val = '>'.join(vlist) + while(val.find('***')>-1): + vlist = val.split('***') + val = '\n'.join(vlist) + while(val.find('**')>-1): + vlist = val.split('**') + val = ' '.join(vlist) + #if(val.find(',')>-1): + # print 'found ,' + # vlist = val.split(',') + # val = '\',\''.join(vlist) + + + #if(val.find('__sq__')>-1): + # j=i+4 + # val=val.lstrip('__sq__') + # while(str(sys.argv[j]).find('__sq__')==-1): + # val=val+' '+sys.argv[j] + # j=j+1 + #val=val+' '+(str(sys.argv[j]).rstrip('__sq__')) + #i=j-3 + + #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')): + # val=int(sys.argv[i+1]) + #elif(sys.argv[i+1]=='ZSI.TC.Decimal'): + # val=float(sys.argv[i+1]) + #elif(sys.argv[i+2]=='Yes'): + # valFile=open(sys.argv[i+3],'r') + # val=valFile.read() + #else: + # val=sys.argv[i+1] + if(val != "0"): + inputdict[key]= val + #resultfile.write('value is :'+ val+'\n') + + i=i+2 + if len(inputdict) == 0: + inputdic = {} + else: + inputdic = flat2nestedDict(inputdict) + print 'The operation is : ',operation #added + result=test.invokeOp(operation,webservice,inputdic) + #resultfile.write(result) + + # Writing the output to the o/p file when the result is parsed + keys = result.keys() + + #for key in keys: + # resultfile.write(str(key)+'\t') + + #resultfile.write('\n') + + #for key in keys: + # if type(result[key])==list: + # for i in result[r]: + # resultfile.write(str(i)+'\t') + # print str(i) + # else: + # resultfile.write(str(result[key])+'\t') + for r in result: + if type(result[r])==list: + for i in result[r]: + resultfile.write(str(i)+'\n') + print str(i) + else: + resultfile.write(str(result[r])+'\n') + + #Writes the result without parsinf in the XML format it gets. + #sw = SoapWriter(header=False, envelope=False); + #res = test.opname2outputClassOb(operation,webservice) + #res_tc = getattr(res,'typecode') + #ofwhat = res_tc.ofwhat; + #for tc in ofwhat : + # sw.serialize(getattr(result, tc.aname), tc); + # doc = sw.dom.getDocument(); + # fp = open(sys.argv[1], 'w'); + # try : + # doc.writexml(fp, '\t', '', '\n'); + # finally : + # fp.close(); + + + elif servicetype == 'REST': + resUrl = sys.argv[3] + + outputFile = open(sys.argv[1],'w') + if(resUrl.find('__tilda__')>-1): + ulist = resUrl.split('__tilda__') + resUrl = '~'.join(ulist) + + paramdict={} + length=(len(sys.argv)) + + print 'in rest',sys.argv + #print s + i=4 + print i + + while( i>=4 and i<(length-1)): + + key=sys.argv[i] + val=sys.argv[i+1] + print 'key : ',key + print 'value : ',val + while(val.find('**')>-1): + vlist = val.split('**') + print '---->',val + val = ' '.join(vlist) + print 'v : ',val + paramdict[key]=val + i=i+2 + + print paramdict + + params = urllib.urlencode(paramdict) + data = urllib.urlopen(resUrl, params).read() + outputFile.write(data) + +# +#if __name__ == "__main__": +# main(); +