|
@@ -9,6 +9,7 @@ import slicer
|
|
|
import shutil
|
|
|
import distutils
|
|
|
import os
|
|
|
+import base64
|
|
|
|
|
|
class slicerNetwork:
|
|
|
def __init__(self,parent):
|
|
@@ -21,12 +22,11 @@ class labkeyURIHandler(slicer.vtkURIHandler):
|
|
|
self.className="labkeyURIHandler"
|
|
|
slicer.mrmlScene.AddURIHandler(self)
|
|
|
try:
|
|
|
- self.localCacheDirectory=os.path.join(
|
|
|
- os.environ["HOME"],"labkeyCache")
|
|
|
- except:
|
|
|
- #in windows, the variable is called HOMEPATH
|
|
|
- fhome=os.environ['HOMEDRIVE']+os.environ['HOMEPATH']
|
|
|
- self.localCacheDirectory=os.path.join(fhome,"labkeyCache")
|
|
|
+ self.localCacheDirectory=os.path.join(os.environ["HOME"],"labkeyCache")
|
|
|
+ except:
|
|
|
+ #in windows, the variable is called HOMEPATH
|
|
|
+ fhome=os.environ['HOMEDRIVE']+os.environ['HOMEPATH']
|
|
|
+ self.localCacheDirectory=os.path.join(fhome,"labkeyCache")
|
|
|
|
|
|
def CanHandleURI(self,uri):
|
|
|
print "labkeyURIHandler::CanHandleURI({0})".format(uri)
|
|
@@ -51,9 +51,9 @@ class labkeyURIHandler(slicer.vtkURIHandler):
|
|
|
|
|
|
def GetLocalPath(self,source):
|
|
|
relativePath=re.sub('labkey://','',source)
|
|
|
- sp=os.sep.encode('string-escape')
|
|
|
+ sp=os.sep.encode('string-escape')
|
|
|
print "Substituting / with {0} in {1}".format(sp,relativePath)
|
|
|
- relativePath=re.sub('/',sp,relativePath)
|
|
|
+ relativePath=re.sub('/',sp,relativePath)
|
|
|
return os.path.join(self.localCacheDirectory,relativePath)
|
|
|
|
|
|
def GetFile(self,source):
|
|
@@ -65,8 +65,7 @@ class labkeyURIHandler(slicer.vtkURIHandler):
|
|
|
return localPath
|
|
|
|
|
|
def StageFileRead(self,source,dest):
|
|
|
- print "labkeyURIHandler::StageFileRead({0},{1})".format(
|
|
|
- source,dest)
|
|
|
+ print "labkeyURIHandler::StageFileRead({0},{1})".format(source,dest)
|
|
|
labkeyPath=re.sub('labkey://','',source)
|
|
|
remote=self.readFile(self.hostname,labkeyPath)
|
|
|
#make all necessary directories
|
|
@@ -78,12 +77,12 @@ class labkeyURIHandler(slicer.vtkURIHandler):
|
|
|
raise
|
|
|
local=open(dest,'wb')
|
|
|
#make sure we are at the begining of the file
|
|
|
-
|
|
|
+
|
|
|
#check file size
|
|
|
remote.seek(0,2)
|
|
|
sz=remote.tell()
|
|
|
print "Remote size: {0}".format(sz)
|
|
|
-
|
|
|
+
|
|
|
remote.seek(0)
|
|
|
shutil.copyfileobj(remote,local)
|
|
|
print "Local size: {0}".format(local.tell())
|
|
@@ -134,13 +133,13 @@ class labkeyURIHandler(slicer.vtkURIHandler):
|
|
|
#cookie part
|
|
|
cj=cookielib.CookieJar()
|
|
|
cookie_handler=urllib2.HTTPCookieProcessor(cj)
|
|
|
-
|
|
|
self.opener=urllib2.build_opener(https_handler,cookie_handler)
|
|
|
loginUrl=serverUrl+"/labkey/login/login.post"
|
|
|
r=urllib2.Request(str(loginUrl))
|
|
|
print "Connecting to {0}".format(loginUrl)
|
|
|
r.add_header('ContentType','application/x-www-form-urlencoded')
|
|
|
data="email="+uname+"&password="+pwd
|
|
|
+ #print "Data: '{0}".format(data)
|
|
|
r.add_data(data)
|
|
|
|
|
|
self.opener.open(r)
|
|
@@ -149,8 +148,9 @@ class labkeyURIHandler(slicer.vtkURIHandler):
|
|
|
|
|
|
def get(self,url):
|
|
|
|
|
|
- #r1=urllib2.Request('https://merlin.fmf.uni-lj.si/labkey/query/motionData/selectRows.api?schemaName=core&query.queryName=Users')
|
|
|
r=urllib2.Request(url)
|
|
|
+ base64string = base64.b64encode('%s:%s' % (self.auth_uname, self.auth_pass))
|
|
|
+ r.add_header("Authorization", "Basic %s" % base64string)
|
|
|
return self.opener.open(r)
|
|
|
#f contains json as a return value
|
|
|
|
|
@@ -160,6 +160,8 @@ class labkeyURIHandler(slicer.vtkURIHandler):
|
|
|
#makes it a post
|
|
|
r.add_data(data)
|
|
|
r.add_header("content-type","application/json")
|
|
|
+ base64string = base64.b64encode('%s:%s' % (self.auth_uname, self.auth_pass))
|
|
|
+ r.add_header("Authorization", "Basic %s" % base64string)
|
|
|
|
|
|
f=self.opener.open(r)
|
|
|
#f contains json as a return value
|