annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/generateClient.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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 with warnings.catch_warnings():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9 warnings.simplefilter("ignore")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 import platform
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 from jpype._jpackage import JPackage
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 from jpype import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 import os.path
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 import sys
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 import string
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 from edit_tool_conf import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 from clientGenerator.msHandler import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 from clientGenerator.creatorEngineComplex import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 from clientGenerator.wsdl2path import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 from clientGenerator.paramConverter import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 class ClientGenerator(object):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 #instantiate a client for invocation of the selected method of a Web service in workflows
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 def __init__(self,webservice,operation,outputfile,servicetype):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 with warnings.catch_warnings():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 warnings.simplefilter("ignore")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 self.operation = operation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 self.webservice = webservice
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 #self.inputs = outputfile
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 self.outputfile = outputfile
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 self.galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 self.clientfile = ''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 self.servicetype = servicetype
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 if self.servicetype == 'SOAP':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 wLoad=wsdlLoader()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 sys.path.append(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 os.chdir(self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 a = str(self.webservice).split('/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 wsdlnamelist = a[len(a)-1].split(".")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 if len(wsdlnamelist)==1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 wsdlnamelist=a[len(a)-1].split('?')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 print wsdlnamelist
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 foldername=wsdlnamelist[0]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 path =self.galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 #creates the client stubs
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 self.clientfile = wLoad.wsdlUrl2path(str(self.webservice),foldername)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 print 'Client file : ',self.clientfile
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 self.paramelement = None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 #replace '__tilda__' with '~'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 #if(url.find('__tilda__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 # ulist = url.split('__tilda__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 #url = '~'.join(ulist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 #self.url = url
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 Checks if a particular paramter is reuired or not. This is used only for soap web services.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 def isRequired(self,param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 #j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 #for param in inputl:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 cc = ClientCreator()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 self.msinstance = cc.opname2inputClassOb(self.operation,self.clientfile)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 test = MessageHandler()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 required = False
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 if (param.find('|$|')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 plist = param.split('|')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76 #root = test.getParameter(self.msinstance(),plist[0])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 k = 0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 iparam = ''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 for p in plist:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 if(k<len(plist)-3):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 if(k==0):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 iparam = iparam+(p)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 iparam = iparam+'|'+p
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 k=k+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 paramelement = test.getParameter(self.msinstance(),iparam)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 paramelement = test.getParameter(self.msinstance(),param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 self.paramelement = paramelement
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 if (param.find('|')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 plist = param.split('|')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 root = test.getParameter(self.msinstance(),plist[0])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 if not getattr(root,'nillable') and not getattr(paramelement,'nillable'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 required = True
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 return True
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 elif getattr(root,'nillable') or (not getattr(root,'nillable') and getattr(paramelement,'nillable')):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 required = False
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 return False
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100 if not getattr(paramelement,'nillable'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 required = True
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102 return True
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103 elif getattr(paramelement,'nillable'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 required = False
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105 return False
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 return required
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 #replace '**' with ' '
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 def formatString(self,string):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 l = string.split(' ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 return '**'.join(l)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115 Checks if the tool(operation) is already addded to Galaxy. It opens the tool_conf.xml file and loops through the "Web Service Workflow Tools" sections
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116 Then opens each and every tool (xml file) and looks for the description tag for the "Web Service" and "Client for Method" values and then checks
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 if it same as the opearation and web service. As the code is dependent on description of the toool xml file, any change in the description tag
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118 of the tool xml file can impact this function.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 def isToolPresent(self):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 f = open(self.galaxyhome+'/tool_conf.xml','r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123 line = f.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 linestripped = line.lstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
125 linestripped = linestripped.rstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
126
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 while linestripped != '<section name="Select Web Service Workflow Tool" id="WebServiceWorkflow">':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128 line = f.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129 linestripped = line.lstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 linestripped = linestripped.rstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 line = f.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 linestripped = line.lstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134 linestripped = linestripped.rstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 while linestripped != '</section>':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 if linestripped.find('<') >-1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138 toolparts = linestripped.split('"')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 print '\ntoolparts are : ',toolparts
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140 f1 = open(self.galaxyhome+'/tools/'+toolparts[-2],'r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 line1 = f1.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 while not line1.find('<description>') >-1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 line1 = f1.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 linestripped1 = line1.lstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 linestripped1 = linestripped1.rstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 descriptionparts=linestripped1.split(' ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148 print '\nOperation : ',descriptionparts
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 service = ''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150 if(self.servicetype == 'SOAP'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151 service = self.clientfile
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152 elif self.servicetype == 'REST':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 service = self.webservice
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154 print 'Service : ',service
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 print 'operation : ',self.operation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
156 if(descriptionparts[5]==self.operation and descriptionparts[10] == service):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
157 f.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
158 f1.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
159 return True
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160 f1.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161 line = f.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162 linestripped = line.lstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163 linestripped = linestripped.rstrip()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 f.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 return False
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
168
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
169
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
170 def wsdlClient(self):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171 with warnings.catch_warnings():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
172 warnings.simplefilter("ignore")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
173
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
174 wLoad=wsdlLoader()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
175 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176 sys.path.append(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177 os.chdir(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179 a = str(self.webservice).split('/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180 wsdlnamelist = a[len(a)-1].split(".")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181 if len(wsdlnamelist)==1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 wsdlnamelist=a[len(a)-1].split('?')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183 print wsdlnamelist
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
184
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
185 foldername=wsdlnamelist[0]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
186
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
187 path =galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/clientGenerator/'+foldername
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
188
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
189 #creates the client stubs
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
190 clientfile=wLoad.wsdlUrl2path(str(self.webservice),foldername)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
191
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
192 webservice = clientfile
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
193 outputfile=open(self.outputfile,'w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
194 test = ClientCreator()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
195 print 'inputs of '+self.operation+':\n'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
196 inputs= test.opname2inputs(self.operation,webservice)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
197 inputl = nested2flatDict(inputs)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
198 inputlist = inputl.keys()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
199 #noOfInputs=inputlist.count()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
200 print '*',inputs,'\n'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
201 count =0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
202 if (len(inputs)==0):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
203 inputs={' ':' '}
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
204 #inputlist=inputs.keys()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
205 for i in inputlist:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
206 if count==0:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
207 outputfile.write(i+'\t'+webservice+'\t'+self.operation+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
208 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
209 outputfile.write(i+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
210 count=count+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
211
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
212 cc = ClientCreator()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
213 self.msinstance = cc.opname2inputClassOb(self.operation,webservice)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
214 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
215
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
216 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
217 clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
218 clientCountStr = clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
219
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
220 clientCount=string.atoi(clientCountStr)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
221 clientCount=clientCount+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
222 clientCountFile.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
223
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
224 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
225 clientCountFile.write('<count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
226 clientCountFile.write(str(clientCount)+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
227 clientCountFile.write('</count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
228 clientCountFile.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
229
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
230
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
231
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
232
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
233 clientName = 'workflowclient_'+ str(clientCount)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
234
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
235 clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
236 clientXml.seek(0,0)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
237
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
238 clientXml.write('<tool id="' + clientName+'" name="'+foldername+'.' + self.operation +'">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
239 clientXml.write(' <description> Client for operation : '+self.operation+' , Web service : '+webservice+' </description>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
240
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
241
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
242 #clientXml.write(' <command interpreter="python">\n client_1.py \n' +' $output \n ' +self.webservice+' \n '+self.operation+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
243
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
244 test = MessageHandler()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
245
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
246 #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
247 #write the command tag to specify the arguments passed to this client_1.py
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
248
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
249 clientXml.write(' <command interpreter="python">\n client_1.py\n'+' #if $cond_source.optional_param_source=="no":\n $output\n $servicetype\n $url\n $method\n' +webservice+ ' '+self.operation+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
250 ##write such that the parameters passed to client_1.py(change name to clientName.py) are dependent on a for loop
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
251
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
252 # The paramter having |$| means that it has an elemnet with maxoccurs='unbounded' (i.e. array of strings)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
253
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
254 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
255 for param in inputl:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
256 if self.isRequired(param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
257 clientXml.write(' "'+param+'"\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
258 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
259
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
260 clientXml.write(' #else:\n $output\n $servicetype\n $url\n $method\n' +webservice+' '+self.operation+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
261
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
262 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
263 for param in inputl:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
264 if self.isRequired(param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
265 clientXml.write(' "'+param+'"\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
266 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
267
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
268 for param in inputl:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
269 if not self.isRequired(param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
270 clientXml.write(' "'+param+'"\n #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n $cond_source.source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
271 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
272
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
273
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
274 clientXml.write(' #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
275
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
276 clientXml.write('</command>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
277
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
278 #start writing inputs
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
279 ##write inputs depending on required or not. if not required den dont display
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
280 ##if required- den check default value, and if options exist.Depending on that
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
281 ##decide the type of parameter and options
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
282 ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
283 clientXml.write(' <inputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
284 clientXml.write(' <param name="servicetype" type="hidden" value="SOAP" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
285 clientXml.write(' <param name="url" type="hidden" value="'+self.webservice+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
286 clientXml.write(' <param name="method" type="hidden" value="'+self.operation+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
287
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
288 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
289 for param in inputl:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
290 if self.isRequired(param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
291 pName = getattr(self.paramelement,'pname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
292
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
293 clientXml.write('<conditional name="source'+str(j)+'">\n <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n </param>\n <when value="user">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
294 clientXml.write(' <param format="text" size = "150" name = "user_param'+str(j)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
295 clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
296 # clientXml.write(' </param> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
297 clientXml.write(' </when>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
298 clientXml.write(' <when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when>\n </conditional>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
299 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
300
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
301
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
302 clientXml.write(' <conditional name="cond_source">\n <param name="optional_param_source" type="select" label="Display Optional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n <when value="no"> \n </when>\n <when value="yes"> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
303
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
304 for param in inputl:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
305 if not self.isRequired(param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
306 pName = getattr(self.paramelement,'pname')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
307
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
308 clientXml.write('\n<conditional name="source'+str(j)+'">\n <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n</param>\n <when value="user">')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
309 clientXml.write('<param format="text" size = "150" name = "user_param'+str(j)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
310 clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
311 clientXml.write(' </when>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
312 clientXml.write('<when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when>\n </conditional>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
313 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
314
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
315
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
316 clientXml.write(' </when>\n </conditional>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
317
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
318 clientXml.write('</inputs>\n <outputs>\n <data format="tabular" name="output" />\n </outputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
319 clientXml.write(' <help>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
320 paramtype = None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
321 for param in inputl:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
322 if self.isRequired(param):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
323 if isinstance(self.paramelement,ZSI.TC.String):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
324 paramtype = 'String'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
325 elif isinstance(self.paramelement,ZSI.TCnumbers.FPfloat):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
326 paramtype = 'Floating point'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
327 elif isinstance(self.paramelement,ZSI.TC.Boolean):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
328 paramtype = 'Boolean'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
329 elif isinstance(self.paramelement,ZSI.TCnumbers.Iint):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
330 paramtype = 'Integer'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
331 clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ getattr(self.paramelement,'pname') +': type is ' + paramtype + '\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
332
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
333
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
334 clientXml.write(' </help>\n</tool>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
335
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
336 # clientXml.write(' <help>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
337
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
338 # j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
339 # for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
340 # clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
341
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
342 # clientXml.write(' </help>\n</tool>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
343 # clientXml.write('</tool>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
344 clientXml.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
345 editor = editToolConfig()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
346 editor.addTool(clientName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
347
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
348 ##later add help feature
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
349
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
350
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
351
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
352 def wadlClient(self):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
353
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
354 ##parse wadl
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
355 pkg=JPackage('lsdis')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
356 urlToPass=java.net.URL(self.webservice)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
357 wadlUrl = self.webservice
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
358
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
359 webserviceId = ''#self.operation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
360 resUrl = self.operation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
361
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
362 urls = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
363 methods = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
364 params = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
365
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
366 #invoke the WADL parser packaged with this tool.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
367 WADLParserDriver=pkg.WADLParserDriver
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
368 wPD=WADLParserDriver()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
369 wPD.parse(urlToPass)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
370 urls = wPD.getUrl()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
371 methods = wPD.getCompleteMethodList()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
372
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
373 a= str(self.webservice).split('/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
374 wadlnamelist = a[len(a)-1].split(".")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
375 if len(wadlnamelist)==1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
376 wadlnamelist=a[len(a)-1].split('?')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
377 print wadlnamelist
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
378
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
379 wadlname=wadlnamelist[0]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
380
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
381 #write into the output file information about the method and Web service to be invoked.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
382 f=open(self.outputfile,'w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
383 f.write(self.webservice+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
384 f.write(resUrl+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
385
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
386 #get parameters for the selected method of the Web service
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
387 i=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
388 for method in methods:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
389 x = str(method.getId())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
390 y = str(urls.get(i))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
391 webserviceId = x
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
392 if y == resUrl :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
393 params = method.getRequest().getParams()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
394 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
395 i=i+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
396
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
397 f.write(webserviceId)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
398
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
399 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
400
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
401 methodname = resUrl.split('/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
402
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
403 #./workflowclients/ClientCount.xml keeps the count of the clients/tools currently registered in Galaxy for Web service invocation.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
404 #read the count and increment it.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
405 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
406 clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
407 clientCountStr = clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
408 clientCount=string.atoi(clientCountStr)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
409 clientCount=clientCount+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
410 clientCountFile.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
411
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
412 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
413 clientCountFile.write('<count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
414 clientCountFile.write(str(clientCount)+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
415 clientCountFile.write('</count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
416
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
417 #include the count in the tool's name and id to uniquely identify it.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
418 clientName = 'workflowclient_'+ str(clientCount)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
419
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
420 #create a new xml file under ./workflowclients/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
421 clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/'+clientName+'.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
422 clientXml.seek(0,0)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
423
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
424 #write the tool id, name and description
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
425 clientXml.write('<tool id="' + clientName+'" name="' + wadlname + '.' + methodname[-1] +'">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
426 clientXml.write(' <description> Client for method : '+self.operation+' , Web service : '+self.webservice+' </description>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
427
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
428 #the workflow tool/client for a REST Web service invokes ./workflowclients/client_1.py to invoke the Web service
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
429 #write the command tag to specify the arguments passed to this client_1.py
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
430 clientXml.write(' <command interpreter="python">\n client_1.py\n'+' #if $cond_source.optional_param_source=="no":\n $output\n $servicetype\n $url\n $method\n ' +resUrl+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
431
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
432
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
433 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
434 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
435 if param.isRequired():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
436 clientXml.write(' '+self.formatString(param.getName())+'\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
437 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
438
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
439 clientXml.write(' #else:\n $output\n $servicetype\n $url\n $method\n' +resUrl+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
440 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
441 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
442 if param.isRequired():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
443 clientXml.write(' '+self.formatString(param.getName())+'\n #if $source'+str(j)+'.source'+str(j)+'_source=="user":\n $source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
444 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
445
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
446 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
447 if not param.isRequired():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
448 clientXml.write(' '+self.formatString(param.getName())+'\n #if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user":\n $cond_source.source'+str(j)+'.user_param'+str(j)+'\n #else:\n fileInput\n $cond_source.source' + str(j) + '.cached_param' + str(j)+'\n #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
449 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
450
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
451 clientXml.write(' #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
452 clientXml.write('</command>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
453
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
454 #start writing inputs
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
455 ##write inputs depending on required or not. if not required den dont display
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
456 ##if required- den check default value, and if options exist.Depending on that
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
457 ##decide the type of parameter and options
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
458 ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
459
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
460 clientXml.write(' <inputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
461 clientXml.write(' <param name="servicetype" type="hidden" value="REST"/>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
462 clientXml.write(' <param name="url" type="hidden" value="'+self.webservice+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
463 clientXml.write(' <param name="method" type="hidden" value="'+self.operation+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
464
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
465
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
466 #create a param for each required parameter described in the WADL. Check if defaults are specified. Create param such that
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
467 #it can either be given a value manually or the value can be taken from a previous step.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
468 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
469 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
470 if param.isRequired():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
471 pName = param.getName()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
472 for doc in param.getDocs():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
473 if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
474 pName = doc.getInnerText()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
475
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
476 clientXml.write('<conditional name="source'+str(j)+'">\n <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n </param>\n <when value="user">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
477 if param.getOptions().size()==0:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
478 clientXml.write(' <param format="text" size = "150" name = "user_param'+str(j)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
479 if not param.getDefault1() == None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
480 clientXml.write('value="'+param.getDefault1()+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
481 clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
482 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
483 clientXml.write(' <param name="user_param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
484 for option in param.getOptions():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
485 clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
486 if option.getName() == param.getDefault1():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
487 clientXml.write('selected="true"')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
488 clientXml.write('>'+option.getName()+'</option>\n ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
489 clientXml.write(' </param> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
490 clientXml.write(' </when>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
491 clientXml.write(' <when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when></conditional>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
492 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
493
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
494 #create a conditional param for each optional parameter described in the WADL. Again the param can be given a value manually or the value can be taken from
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
495 #a previous step.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
496 clientXml.write(' <conditional name="cond_source">\n <param name="optional_param_source" type="select" label="Display Optional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n <when value="no"> \n </when>\n <when value="yes"> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
497
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
498 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
499 if not param.isRequired():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
500 pName = param.getName()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
501 for doc in param.getDocs():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
502 if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
503 pName = doc.getInnerText()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
504
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
505 clientXml.write('\n<conditional name="source'+str(j)+'">\n <param name="source' + str(j)+'_source" type="select" label="'+pName+' Source"> \n <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n</param>\n <when value="user">')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
506 if param.getOptions().size()==0:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
507 clientXml.write('<param format="text" size = "150" name = "user_param'+str(j)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
508 if not param.getDefault1() == None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
509 clientXml.write('value="'+param.getDefault1()+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
510 clientXml.write('type="text" label="Enter '+pName+'" help="see tip below" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
511 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
512 clientXml.write('<param name="user_param'+str(j)+'" type="select" label="Select '+pName+'" help="see tip below">\n' )
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
513 for option in param.getOptions():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
514 clientXml.write(' <option value="'+self.formatString(option.getName())+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
515 if option.getName() == param.getDefault1():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
516 clientXml.write('selected="true"')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
517 clientXml.write('>'+option.getName()+'</option>\n ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
518 clientXml.write(' </param> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
519 clientXml.write(' </when>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
520 clientXml.write('<when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + pName + '"/> \n </when></conditional>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
521 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
522
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
523
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
524
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
525 clientXml.write(' </when>\n </conditional>\n</inputs>\n <outputs>\n <data format="tabular" name="output" />\n </outputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
526
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
527 #write information about each parameter in the help section
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
528 clientXml.write(' <help>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
529 clientXml.write('Replace white space with ** in all parameter values\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
530
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
531 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
532 if param.isRequired():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
533 pName = param.getName()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
534 for doc in param.getDocs():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
535 if doc.getTitle()=="prompt" or doc.getTitle()=="Prompt" or doc.getTitle()=="PROMPT":
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
536 pName = doc.getInnerText()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
537 clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ pName +' type is ' + param.getType()+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
538
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
539 clientXml.write(' </help>\n</tool>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
540
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
541 #adds the newly created tool to tool_conf.xml in Galaxy under the 'Web Service Workflow Tools' section.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
542 editor = editToolConfig()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
543 editor.addTool(clientName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
544
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
545
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
546
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
547
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
548 def sawadlClient(self):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
549 ##parse sawadl
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
550
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
551 pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
552 pkgModel =JPackage('org.semanticweb.owlapi.model')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
553 pkgApiBinding =JPackage('org.semanticweb.owlapi.apibinding')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
554 pkgVocab = JPackage('org.semanticweb.owlapi.vocab')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
555
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
556 DOCUMENT_IRI = "http://cs.uga.edu/~ganjoo/galaxy/EDAM.owl"
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
557
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
558 sawadlUrl = self.webservice
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
559
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
560 webserviceId = ''#self.inputs
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
561 resUrl = self.operation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
562
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
563 urls = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
564 methods = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
565 params = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
566 annotationSet = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
567
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
568 SAWADLParserDriver=pkg.SAWADLParserDriver
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
569 sawPD=SAWADLParserDriver()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
570 sawPD.parse(sawadlUrl)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
571 urls = sawPD.getUrl()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
572 methods = sawPD.getCompleteMethodList()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
573
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
574 IRI = pkgModel.IRI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
575 OWLRDFVocabulary = pkgVocab.OWLRDFVocabulary
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
576 OWLManager = pkgApiBinding.OWLManager
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
577 OWLLiteral = pkgModel.OWLLiteral
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
578 owlOntManager = OWLManager.createOWLOntologyManager()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
579 ontology = owlOntManager.loadOntologyFromOntologyDocument(IRI.create(DOCUMENT_IRI))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
580 dataFactory = owlOntManager.getOWLDataFactory()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
581 propertyComment = dataFactory.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
582
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
583 #write into the output file information about the method and Web service to be invoked.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
584 f=open(self.outputfile,'w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
585 f.write(self.webservice+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
586 f.write(resUrl+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
587
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
588 i=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
589 for method in methods:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
590 x = str(method.getName())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
591 y = str(urls.get(i))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
592 webserviceId = x
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
593 #if x == webserviceId :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
594 if y == resUrl :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
595 params = method.getRequest().getParamList()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
596 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
597 i=i+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
598
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
599
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
600 f.write(webserviceId)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
601
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
602 ##generate client's xml
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
603 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
604
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
605 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
606 clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
607 clientCountStr = clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
608 clientCount=string.atoi(clientCountStr)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
609 clientCount=clientCount+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
610 clientCountFile.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
611
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
612 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
613 clientCountFile.write('<count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
614 clientCountFile.write(str(clientCount)+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
615 clientCountFile.write('</count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
616
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
617
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
618
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
619
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
620 clientName = 'workflowclient_'+ str(clientCount)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
621
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
622 clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow/workflowclients/'+clientName+'.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
623 clientXml.seek(0,0)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
624
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
625 clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
626 clientXml.write(' <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
627
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
628
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
629 clientXml.write(' <command interpreter="python">\n #client_1.py \n'+' $output \n $servicetype\n $url\n $method\n ' +resUrl+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
630 ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
631
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
632
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
633 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
634 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
635 if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
636 clientXml.write(' '+self.formatString(param.getName())+'\n#if $source'+str(j)+'.source'+str(j)+'_source=="user" $source'+str(j)+'.user_param'+str(j)+' #else $source' + str(j) + '.cached_param' + str(j)+' #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
637 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
638 clientXml.write('#if $cond_source.optional_param_source=="yes"')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
639
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
640 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
641 if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
642 clientXml.write(' '+self.formatString(param.getName())+'\n#if $cond_source.source'+str(j)+'.source'+str(j)+'_source=="user" $cond_source.source'+str(j)+'.user_param'+str(j)+' #else $cond_source.source' + str(j) + '.cached_param' + str(j)+' #end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
643 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
644
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
645 clientXml.write('#else \n#end if\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
646 clientXml.write('</command>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
647
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
648 ##write inputs depending on required or not. if not required den dont display
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
649 ##if required- den check default value, and if options exist.Depending on that
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
650 ##decide the type of parameter and options
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
651 ##The input servicetype tells what type of webservice it is wether SOAP or REST - Useful during invocation of the web servcie
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
652
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
653 clientXml.write(' <inputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
654 clientXml.write(' <param name="servicetype" type="hidden" value="REST" />')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
655 clientXml.write(' <param name="url" type="hidden" value="'+self.webservice+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
656 clientXml.write(' <param name="method" type="hidden" value="'+self.operation+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
657
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
658
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
659 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
660 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
661 if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
662 clientXml.write('<conditional name="source'+str(j)+'">\n <param name="source' + str(j)+'_source" type="select" label="'+param.getName()+' Source"> \n <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n </param>\n <when value="user">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
663 if param.getOptionvalue().size()==0:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
664 clientXml.write(' <param format="text" size = "150" name = "user_param'+str(j)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
665 if not param.getDefault1() == None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
666 clientXml.write('value="'+param.getDefault1()+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
667 clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
668 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
669 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
670 clientXml.write(' <param name="user_param'+str(j)+'" type="select" label="Select '+param.getName()+'" help="see tip below">\n' )
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
671 for option in param.getOptionvalue():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
672 clientXml.write(' <option value="'+self.formatString(option)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
673 if option == param.getDefault1():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
674 clientXml.write('selected="true"')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
675 clientXml.write('>'+option+'</option>\n ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
676 clientXml.write(' </param> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
677 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
678 clientXml.write(' </when>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
679 clientXml.write(' <when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + param.getName() + '"/> \n </when></conditional>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
680
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
681 clientXml.write(' <conditional name="cond_source">\n <param name="optional_param_source" type="select" label="Display Additional Parameters"> \n <option value="no" selected="true">no</option> \n <option value="yes">yes</option> \n </param> \n <when value="no"> \n </when>\n <when value="yes"> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
682
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
683 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
684 if not param.getRequired()=='true' and not param.getRequired()=='True' and not param.getRequired()=='TRUE':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
685 clientXml.write('<conditional name="source'+str(j)+'">\n <param name="source' + str(j)+'_source" type="select" label="'+param.getName()+' Source"> \n <option value="cached" selected="true">Param value will be taken from previous step</option> \n <option value="user">User will enter the param value</option> \n </param>\n <when value="user">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
686 if param.getOptionvalue().size()==0:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
687 clientXml.write(' <param format="text" size = "150" name = "user_param'+str(j)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
688 if not param.getDefault1() == None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
689 clientXml.write('value="'+param.getDefault1()+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
690 clientXml.write('type="text" label="Enter '+param.getName()+'" help="see tip below" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
691 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
692 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
693 clientXml.write(' <param name="user_param'+str(j)+'" type="select" label="Select'+param.getName()+'" help="see tip below">\n' )
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
694 for option in param.getOptionvalue():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
695 clientXml.write(' <option value="'+self.formatString(option)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
696 if option == param.getDefault1():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
697 clientXml.write('selected="true"')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
698 clientXml.write('>'+option+'</option>\n ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
699 clientXml.write(' </param> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
700 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
701 clientXml.write(' </when>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
702 clientXml.write(' <when value="cached">\n <param name = "cached_param'+ str(j)+'" type="data" label="' + param.getName() + '"/> \n </when></conditional>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
703
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
704 clientXml.write(' </when>\n </conditional>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
705
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
706 clientXml.write('</inputs>\n <outputs>\n <data format="tabular" name="output" />\n </outputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
707
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
708 clientXml.write(' <help>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
709 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
710 if param.getRequired()=='true' or param.getRequired()=='True' or param.getRequired()=='TRUE':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
711 clientXml.write('\n.. class:: infomark\n\n**TIP:** About '+ param.getName() +': type is ' + param.getType())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
712
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
713 modelRef = sawPD.getCompleteModelReference(param)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
714 if not modelRef is None:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
715 paramClass = dataFactory.getOWLClass(IRI.create(modelRef));
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
716 annotationSet = paramClass.getAnnotations(ontology,propertyComment)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
717 for annotation in annotationSet:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
718 if isinstance(annotation.getValue(),OWLLiteral):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
719 val = annotation.getValue()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
720 if val.isOWLStringLiteral() and not val.isOWLTypedLiteral():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
721 print 'val.getLiteral()=' + val.getLiteral()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
722 clientXml.write(', description from ontology is "' + val.getLiteral()+'"')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
723 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
724 clientXml.write('\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
725 clientXml.write(' </help>\n</tool>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
726 editor = editToolConfig()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
727 editor.addTool(clientName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
728
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
729
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
730 def wsdlRestClient(self):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
731 ##parse wadl
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
732 javahome = os.environ.get('JAVA_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
733 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
734 classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/bin'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
735 jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/WodenWSDLParser/lib/'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
736 machine = platform.machine()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
737
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
738 if machine == 'x86_64' :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
739 print 'a'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
740 startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
741 elif machine == 'i686' :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
742 print 'b'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
743 startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
744 elif machine == 'sun4u' :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
745 startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
746 else :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
747 print 'c'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
748 System.exit("Could not identify machine, please specify path to libjvm.so")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
749
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
750
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
751 pkg=JPackage('lsdis')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
752 wsdlUrl = self.webservice
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
753
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
754 webserviceId = ''#self.methodName
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
755 resUrl = self.operation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
756
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
757 urls = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
758 methods = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
759 params = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
760 paramTypes = []
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
761
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
762 WSDLParserDriver =pkg.WSDLParserDriver
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
763 wPD=WSDLParserDriver()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
764 wPD.parse(wsdlUrl)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
765 methods = wPD.getCompleteMethodList()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
766 urls = wPD.getUrl()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
767
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
768 f=open(self.outputfile,'w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
769 f.write(wsdlUrl+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
770 f.write(resUrl+'\t')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
771
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
772
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
773 i=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
774 for method in methods:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
775 x = str(method.getName().getLocalPart())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
776 y = str(url.get(i))
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
777 webserviceId = x
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
778 if y == resUrl :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
779 wPD.getParameters(x)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
780 f.write('method matched')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
781 paramTypes = wPD.getParamTypeList()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
782 params = wPD.getParamList()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
783 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
784 i=i+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
785
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
786 f.write(webserviceId)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
787
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
788
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
789
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
790 ##generate client's xml
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
791 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
792
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
793 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
794 clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
795 clientCountStr = clientCountFile.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
796 clientCount=string.atoi(clientCountStr)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
797 clientCount=clientCount+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
798 clientCountFile.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
799
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
800 clientCountFile=open(galaxyhome+'/tools/WebServiceToolWorkflow_REST_SOAP/workflowclients/ClientCount.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
801 clientCountFile.write('<count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
802 clientCountFile.write(str(clientCount)+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
803 clientCountFile.write('</count> \n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
804
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
805
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
806
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
807
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
808 clientName = 'workflowclient_'+ str(clientCount)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
809
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
810 clientXml=open(galaxyhome+'/tools/WebServiceToolWorkflow_RESTSOAP/workflowclients/'+clientName+'.xml','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
811 clientXml.seek(0,0)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
812
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
813 clientXml.write('<tool id="' + clientName+'" name="' + webserviceId +'">\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
814 clientXml.write(' <description> Client for method: '+webserviceId+' , Web service: '+self.webservice+' </description>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
815
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
816
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
817 clientXml.write(' <command interpreter="python">\n client_1.py \n'+' $output \n $servicetype\n $url \n $method' +resUrl+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
818 ##write such that the parameters passed to client1.py(change name to clientName.py) are dependent on a for loop
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
819
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
820 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
821 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
822 clientXml.write(' '+self.formatString(param)+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
823 clientXml.write(' $param' + str(j)+'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
824 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
825 clientXml.write('</command>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
826
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
827 ##write inputs depending on required or not. if not required den dont display
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
828 ##if required- den check default value, and if options exist.Depending on that
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
829 ##decide the type of parameter and options
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
830 clientXml.write(' <inputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
831 clientXml.write(' <param name="servicetype" type="hidden" value="REST" />')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
832 clientXml.write(' <param name="url" type="hidden" value="'+self.webservice+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
833 clientXml.write(' <param name="method" type="hidden" value="'+self.operation+'" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
834
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
835
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
836 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
837 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
838 clientXml.write('<param format="text" size = "150" name = "param'+str(j)+'" ')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
839 clientXml.write('type="text" label="'+param+'" help="see tip below" />\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
840 j=j+1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
841
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
842
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
843
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
844 clientXml.write('</inputs>\n <outputs>\n <data format="tabular" name="output" />\n </outputs>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
845
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
846 clientXml.write(' <help>\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
847
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
848 j=0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
849 for param in params:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
850 clientXml.write('\n.. class:: infomark\n\n**TIP:** '+ param +' type is ' + paramTypes[j] +'\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
851
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
852 clientXml.write(' </help>\n</tool>')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
853 editor = editToolConfig()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
854 editor.addTool(clientName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
855
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
856 ##later add help feature
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
857
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
858 if __name__ == "__main__":
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
859
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
860 test = ClientGenerator('http://eupathdb.org/eupathdb/webservices/GeneQuestions/GenesByGeneType.wadl','genesbygenetype',None,'REST')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
861 present = test.isToolPresent()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
862 # required = test.isRequired('_parameters|_sequence')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
863 print 'Tool is present : ',present
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
864