Advertisement
Guest User

Untitled

a guest
Oct 5th, 2017
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.51 KB | None | 0 0
  1. #!/usr/bin/python2.5
  2.  
  3. from __future__ import with_statement
  4. import sys
  5. import getopt
  6. from getpass import getpass
  7. from ZSI import ServiceProxy
  8.  
  9. import csv
  10. import xml.dom.minidom
  11. from time import time
  12. import pickle
  13.  
  14. ###################################################
  15. # set default values
  16.  
  17. port=8080
  18. host="drop2.lms.gatech.edu"
  19. proto="http"
  20.  
  21. ####################################################
  22. # Handle command line options
  23.  
  24. def usage(rcode=1):
  25.   print "usage: ", sys.argv[0], " [--file,-f=<file> --host=<hostname> --port=,-p<port> --help,-h --ssl,-s]"
  26.   sys.exit(rcode)
  27. try:
  28.   optlist, args = getopt.getopt(sys.argv[1:], "f:sh:p:", ['help', 'port=', 'host=', 'ssl', 'file='])
  29. except getopt.GetoptError:
  30.   usage()
  31. for opt, arg in optlist:
  32.   if opt in ["-h", "--help"]:
  33.     usage(0)
  34.   elif opt in ["--host"]:
  35.     host=arg
  36.     continue
  37.   elif opt in ["-p", "--port"]:
  38.     port=int(arg)
  39.     continue
  40.   elif opt in ["-s", "--ssl"]:
  41.     proto='https'
  42.     continue
  43.   elif opt in ["-f", "--file"]:
  44.     file=arg
  45.     continue
  46.  
  47. ############################################
  48. # Log into the web service
  49.  
  50. login_wsdl = proto + '://' + host + ':' + str(port) + '/sakai-axis/SakaiLogin.jws?wsdl'
  51. login = ServiceProxy.ServiceProxy(login_wsdl)
  52.  
  53. user=raw_input("username: ")
  54. password=getpass("password: ")
  55. session=login.login(id=user, pw=password)['loginReturn']
  56.  
  57. ############################################
  58. # XML Helper Methods
  59.  
  60. def getText(nodelist):
  61.   rc = ""
  62.   for node in nodelist:
  63.     if node.nodeType == node.TEXT_NODE:
  64.       rc = rc + node.data
  65.   return rc
  66.  
  67. ############################################
  68. # Scripted actions below
  69.  
  70. script_wsdl = proto + '://' + host + ':' + str(port) + '/sakai-axis/SakaiScript.jws?wsdl'
  71. script = ServiceProxy.ServiceProxy(script_wsdl)
  72.  
  73. gtscript_wsdl = proto + '://' + host + ':' + str(port) + '/sakai-axis/GaTechScript.jws?wsdl'
  74. gtscript = ServiceProxy.ServiceProxy(gtscript_wsdl)
  75.  
  76. with open(file) as f:
  77.   for siteid in f:
  78.     siteid = siteid.strip()
  79.     print "Adding DropBox tool to", siteid, ":\t",
  80.     result = script.removePageFromSite(sessionid=session, siteid=siteid, pagetitle=u'Drop Box')['removePageFromSiteReturn']
  81.     result += " " + script.addNewPageToSite(sessionid=session, siteid=siteid, pagetitle="Drop Box", pagelayout=0)['addNewPageToSiteReturn']
  82.     result += " " + script.addNewToolToPage(sessionid=session, siteid=siteid, pagetitle="Drop Box", tooltitle="DROP BOX", toolid="sakai.dropbox", layouthints="")['addNewToolToPageReturn']
  83.     print result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement