1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import labkeyInterface
- import pathlib
- import os
- import zipfile
- import json
- def setConfig(labkeyUser,labkeyServer='https://merlin.fmf.uni-lj.si',\
- certificateZip=None):
- connectionConfig={}
- if certificateZip!=None:
- zpath=pathlib.Path(certificateZip)
- user=zpath.stem
- userDir=os.path.join(os.path.expanduser('~'),'.labkey',user)
- if not os.path.isdir(userDir):
- os.makedirs(userDir)
- caName=None
- with zipfile.ZipFile(certificateZip,'r') as zipObj:
- zipObj.extract(user+'.crt',userDir)
- zipObj.extract(user+'.key',userDir)
- zipList=zipObj.namelist()
- for f in zipList:
- if f.find('CA')>-1:
- caName=f
- zipObj.extract(f,userDir)
-
- #setup SSL
- sslSetup={}
- sslSetup['user']=os.path.join(userDir,user+'.crt')
- sslSetup['key']=os.path.join(userDir,user+'.key')
- sslSetup['ca']=os.path.join(userDir,caName)
- sslSetup['keyPwd']='notUsed'
- connectionConfig['SSL']=sslSetup
- connectionConfig["host"]=labkeyServer
- connectionConfig["context"]="labkey"
- labkeySetup={}
- labkeySetup['user']=labkeyUser
- labkeyPwd='guest'
- if not labkeyUser=='guest':
- labkeyPwd=getpass.getpass(prompt='Enter labkey password:')
- labkeySetup['password']=labkeyPwd
- connectionConfig['labkey']=labkeySetup
- orthancSetup={}
- if connectionConfig['host'].find('merlin')>-1:
- orthancSetup['server']='https://orthanc.fmf.uni-lj.si'
- if connectionConfig['host'].find('onko-nix')>-1:
- orthancSetup['server']='http://onko-nix.onko-i.si:8042'
- orthancSetup['user']='ask'
- orthancSetup['password']='askPassword'
- connectionConfig['orthanc']=orthancSetup
- net=labkeyInterface.labkeyInterface()
- net.connectionConfig=connectionConfig
- net.initRemote()
- print(net.getUserId())
- return net
- def testCertificate(certificateZip):
- return setConfig('guest',certificateZip=certificateZip)
- def testConnection(labkeyUser,labkeyServer='https://merlin.fmf.uni-lj.si',\
- certificateZip=None):
- return setConfig(labkeyUser,labkeyServer,certificateZip)
- def getDefaultConfig(configFile):
- #if configFile is None, this will set it to default and leave unchanged otherwise
- if configFile==None:
- return os.path.join(os.path.expanduser('~'),'.labkey','network.json')
- return configFile
- def storeConfig(net,configFile=None):
- #if configFile is None, this will set it to default and leave unchanged otherwise
- with open(getDefaultConfig(configFile),'w') as f:
- json.dump(net.connectionConfig,f,indent='\t')
- def getInterface(configFile=None):
- net=labkeyInterface.labkeyInterface()
- #if configFile is None, this will set it to default and leave unchanged otherwise
- net.init(getDefaultConfig(configFile))
- return net
|