annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
2 @author Chaitanya Guttula, Sumedha Ganjoo
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
3 @see LICENSE (MIT style license file).
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
4 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
5
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
6 import warnings
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
7 with warnings.catch_warnings():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 warnings.simplefilter("ignore")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9 import sys
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 import os
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11 import urllib
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 """
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 This script takes the values of the input parameters of the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 web service from the user and invokes the web service.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 The URL to the WSDL is the command line argument
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 """
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 servicetype = sys.argv[2]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 if servicetype=='SOAP':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 with warnings.catch_warnings():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23 warnings.simplefilter("ignore")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 from creatorEngineComplex import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 from wsdl2path import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 from paramConverter import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 from ZSI.writer import SoapWriter
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 from msHandler import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 webservice = str(sys.argv[3])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 operation = str(sys.argv[4])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 resultfile=open(sys.argv[1],'w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 length=len(sys.argv)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 inputdict={}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 i=5
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 test=ClientCreator()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 while(i>=5 and i<(length-1)):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 key=sys.argv[i]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 print 'key is : ',key
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 #if(sys.argv[i+1]=='ZSI.TC.String'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 val=sys.argv[i+1]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 while(val.find('__at__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 vlist = val.split('__at__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 val = '@'.join(vlist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 while(val.find('__sq__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 vlist = val.split('__sq__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 val = ''.join(vlist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 while(val.find('__gt__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 vlist = val.split('__gt__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 val = '>'.join(vlist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 while(val.find('***')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 vlist = val.split('***')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 val = '\n'.join(vlist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 while(val.find('**')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 vlist = val.split('**')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 val = ' '.join(vlist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 #if(val.find(',')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 # print 'found ,'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 # vlist = val.split(',')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 # val = '\',\''.join(vlist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 #if(val.find('__sq__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 # j=i+4
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 # val=val.lstrip('__sq__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 # while(str(sys.argv[j]).find('__sq__')==-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 # val=val+' '+sys.argv[j]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 # j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 #val=val+' '+(str(sys.argv[j]).rstrip('__sq__'))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 #i=j-3
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 #elif((sys.argv[i+1]=='ZSI.TC.Integer')or (sys.argv[i+1]=='ZSI.TCnumbers.Iint')):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76 # val=int(sys.argv[i+1])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 #elif(sys.argv[i+1]=='ZSI.TC.Decimal'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 # val=float(sys.argv[i+1])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 #elif(sys.argv[i+2]=='Yes'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 # valFile=open(sys.argv[i+3],'r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 # val=valFile.read()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 #else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 # val=sys.argv[i+1]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 if(val != "0"):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 inputdict[key]= val
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 #resultfile.write('value is :'+ val+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 i=i+2
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 if len(inputdict) == 0:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 inputdic = {}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 inputdic = flat2nestedDict(inputdict)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 print 'The operation is : ',operation #added
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 result=test.invokeOp(operation,webservice,inputdic)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 mshandler = MessageHandler()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 resultDict={}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 resultDict=mshandler.flatten(result) #mshandler.msParser(responseInstance)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 flat = nested2flatDict(resultDict)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 result=flat
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 #resultfile.write(result)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 # Writing the output to the o/p file when the result is parsed
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 #keys = result.keys()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 #for key in keys:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 # resultfile.write(str(key)+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 #resultfile.write('\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 #for key in keys:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115 # if type(result[key])==list:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116 # for i in result[r]:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 # resultfile.write(str(i)+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118 # print str(i)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 # else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 # resultfile.write(str(result[key])+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121 for r in result:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 if type(result[r])==list:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123 for i in result[r]:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 resultfile.write(str(i)+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
125 print str(i)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
126 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 resultfile.write(str(result[r])+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129 #Writes the result without parsinf in the XML format it gets.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 #sw = SoapWriter(header=False, envelope=False);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131 #res = test.opname2outputClassOb(operation,webservice)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 #res_tc = getattr(res,'typecode')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 #ofwhat = res_tc.ofwhat;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134 #for tc in ofwhat :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135 # sw.serialize(getattr(result, tc.aname), tc);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 # doc = sw.dom.getDocument();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 # fp = open(sys.argv[1], 'w');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138 # try :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 # doc.writexml(fp, '\t', '', '\n');
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140 # finally :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 # fp.close();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 elif servicetype == 'REST':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 resUrl = sys.argv[3]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 outputFile = open(sys.argv[1],'w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148 if(resUrl.find('__tilda__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 ulist = resUrl.split('__tilda__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150 resUrl = '~'.join(ulist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152 paramdict={}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 length=(len(sys.argv))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 print 'in rest',sys.argv
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
156 #print s
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
157 i=4
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
158 print i
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
159
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160 while( i>=4 and i<(length-1)):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162 key=sys.argv[i]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163 val=sys.argv[i+1]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164 print 'key : ',key
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 print 'value : ',val
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 while(val.find('**')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167 vlist = val.split('**')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
168 print '---->',val
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
169 val = ' '.join(vlist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
170 print 'v : ',val
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171 paramdict[key]=val
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
172 i=i+2
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
173
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
174 print paramdict
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
175
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176 params = urllib.urlencode(paramdict)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177 data = urllib.urlopen(resUrl, params).read()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178 outputFile.write(data)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180 #
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181 #if __name__ == "__main__":
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 # main();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183