annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_method_m.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
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
3 @see LICENSE (MIT style license file).
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
4 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
5
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
6 import warnings
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
7 with warnings.catch_warnings():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 warnings.simplefilter("ignore")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9 import warnings
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 import urllib2
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11 import platform
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 import os,sys
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 from clientGenerator.creatorEngineComplex import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 from clientGenerator.wsdl2path import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 from clientGenerator.paramConverter import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 from generateClient import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 from generateClient1 import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 '''input : wadl/wsdl/sawadl-url, method name
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 purpose:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 1. Calls methods from generateClient1.py to generate client description for one-time invocation
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 of the Web service. This client description is added as a xml file under ./clients/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23 2. Calls methods from generateClient.py to generate client description for invocation of Web service
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 in a workflow. This client description is added as a xml file under ./workflowclients/
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 3. Adds the path to the above xml files to Galaxy tool-conf.xml file using call edit_tool_conf.py
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 servicetype=''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 #read the url passed as an argument
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 url = sys.argv[2]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 while(url.find('__tilda__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 ulist = url.split('__tilda__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 url = '~'.join(ulist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 #split url passed on '.' character
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 urllist = url.split('/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 wsdlname = urllist[len(urllist)-1].split(".")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 if len(wsdlname)==1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 wsdlname =urllist[len(urllist)-1].split('?')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 '''#checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 If the extesnion is wsdl then servicetype is SOAP else If the extension is wadl then servicetype is REST
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 in other conditions(i.e. the file has no extension)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 #u = None
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 #try:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 # u = urllib2.urlopen(url)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 #except urllib2.HTTPError, e:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 # print e.code
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 # print e.msg
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 # print e.headers
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53 # print e.fp.read()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 print 'the url is : ',sys.argv[2]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 u = urllib2.urlopen(url)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 descfile = open('temp','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 descfile.write(u.read())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 descfile.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 readwsdl = open('temp','r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 tempstring = 'start'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 #checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 while (tempstring != ''):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 tempstring = readwsdl.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 if tempstring.find('<definitions') != -1 or tempstring.find('<wsdl:definitions') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 print 'WSDL 1.1 or 1.0'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 servicetype = 'SOAP'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 elif tempstring.find('description') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 while tempstring != '':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 if tempstring.find('<bindings ') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 bind = tempstring.split('type')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 bindLength = len(bind)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 bindingtype = bind[bindLength-1]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 print bindingtype
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 tempstring = readwsdl.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 if bindingtype.find('http://www.w3.org/ns/wsdl/soap') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 servicetype='WSDL2SOAP'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 print 'SOAP'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 servicetype='WSDL2REST'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 elif tempstring.find('<application') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 servicetype='REST'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 readwsdl.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 operations = sys.argv[3].split(',')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 # The webservice is a soap webservice
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 if servicetype == 'SOAP':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 #Create client tool for using web services in workflow
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 for operation in operations:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 if operation != '':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 clientGenerator = ClientGenerator(url,operation,sys.argv[4],'SOAP')#webservice,operation,inputl)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 if clientGenerator.isToolPresent():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 f = open(sys.argv[4],'a')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100 f.write('The web service workflow tool for service '+url+' and operation '+operation+' was already added to galaxy\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102 clientGenerator.wsdlClient()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 #Create cleint tool for invoking web service stand alone
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105 clientGenerator1 = ClientGenerator1(url,operation,sys.argv[4],'SOAP')#webservice,operation,inputl)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 if clientGenerator1.isToolPresent():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 f = open(sys.argv[4],'a')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 f.write('The web service tool for service '+url+' and operation '+operation+' was already added to galaxy\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110 clientGenerator1.wsdlClient()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 #Web service is a REST Webservice
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115 elif servicetype == 'REST':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 javahome = os.environ.get('JAVA_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118 galaxyhome=os.environ.get('GALAXY_HOME')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 classpath= galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/bin'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120 jarpath = galaxyhome + '/tools/WebServiceToolWorkflow_REST_SOAP/ParserForWADL/lib/'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121 machine = platform.machine()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123 if machine == 'x86_64' :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 print 'a'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
125 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
126 elif machine == 'i686' :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 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
128 print 'b'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129 elif machine == 'sun4u' :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 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
131 else :
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 print 'c'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 System.exit("Could not identify machine, please specify path to libjvm.so")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137 for operation in operations:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138 if(operation != ''):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 clientGenerator = ClientGenerator(url,operation,sys.argv[4],'REST')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140 clientGenerator1 = ClientGenerator1(url,operation,sys.argv[4],'REST')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 if clientGenerator.isToolPresent():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 f = open(sys.argv[4],'a')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 f.write('\nThe web service workflow tool for service '+url+' and operation '+operation+' was already added to galaxy\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145 clientGenerator.wadlClient()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 if clientGenerator1.isToolPresent():
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 f = open(sys.argv[4],'a')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148 f.write('\nThe web service tool for service '+url+' and operation '+operation+' was already added to galaxy\n')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150 clientGenerator1.wadlClient()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 #shutdownJVM()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154