annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/WebServiceTool_input_url_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 platform
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 import os
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11 import sys
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12 import ZSI
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 import commands
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 from clientGenerator.creatorEngineComplex import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 from clientGenerator.wsdl2path import *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 import urllib2
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 from getMethods_m 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 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 Takes the description document as input and parses the document and
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 gets all the operations available in the web service and provides it
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 Galaxy
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 '''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 url = sys.argv[1]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 while(url.find('__tilda__')>-1):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 ulist = url.split('__tilda__')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 url = '~'.join(ulist)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 urllist = url.split('/')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31 wsdlname = urllist[len(urllist)-1].split(".")
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 if len(wsdlname)==1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33 wsdlname =urllist[len(urllist)-1].split('?')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 servicetype = ''
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 #instantiate a Document
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 descriptionDocument = Document()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 #if wsdlname[-1] == 'wsdl' or wsdlname[-1] == 'WSDL':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 # servicetype='SOAP'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 #elif wsdlname[-1] == 'wadl' or wsdlname[-1] == 'WADL':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 # servicetype='REST'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 #else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 try:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 u = urllib2.urlopen(url)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 except urllib2.HTTPError, e:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 print e.code
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 print e.msg
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 print e.headers
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 print e.fp.read()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 descfile = open('temp','w')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 descfile.write(u.read())
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56 descfile.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 readwsdl = open('temp','r')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 tempstring = 'start'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 #checks the description document (WSDL/WADL) is for SOAP 1.1 or SOAP 2.0 or REST and gets the operations in the web service accordingly
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 while (tempstring != ''):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 tempstring = readwsdl.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 #If its WSDL 1.0/1.1
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 if tempstring.find('<definitions') != -1 or tempstring.find('<wsdl:definitions') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 servicetype = 'SOAP'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 descriptionDocument.getWSDLMethods(url,sys.argv[2])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 #if it is WSDL 2.0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 elif tempstring.find('<description') != -1 or tempstring.find('<wsdl:description') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 #servicetype = 'WSDL2.0'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 #break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 while tempstring != '':
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 if tempstring.find('<bindings ') != -1 or tempstring.find('<wsdl:bindings') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 bind = tempstring.split('type')
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 bindLength = len(bind)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76 bindingtype = bind[bindLength-1]
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 tempstring = readwsdl.readline()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 #IF the WSDL describes SOAP web services
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 if bindingtype.find('http://www.w3.org/ns/wsdl/soap') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 #descriptionDocument.getWSDL2Methods(url,sys.argv[2])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 print 'WSDL 1.1'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 #If the WSDL describes REST web services
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 descriptionDocument.getWSDLRESTMethods(url,sys.argv[2])
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 elif tempstring.find('<application') != -1 or tempstring.find('<APPLICATION') != -1:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 #servicetype = 'REST'
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 descriptionDocument.getWADLMethods(url,sys.argv[2])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 break
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 readwsdl.close()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 #if(servicetype == 'REST'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 # descriptionDocument.getWADLMethods(url,sys.argv[2])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 #elif (servicetype == 'SOAP'):
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 # descriptionDocument.getWSDLMethods(url,sys.argv[2])
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 #else:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 # descriptionDocument.getWSDL2Methods(url,sys.argv[2])