TiledViz
Loading...
Searching...
No Matches
TVSecure.ConnectionDocker Class Reference
Inheritance diagram for TVSecure.ConnectionDocker:

Public Member Functions

 __init__ (self, containerFlask, userflask, nbTiles, debug, ConnectNum, POSTGRES_HOST=POSTGRES_HOST, POSTGRES_IP=POSTGRES_IP, POSTGRES_PORT=POSTGRES_PORT, POSTGRES_DB=POSTGRES_DB, POSTGRES_USER=POSTGRES_USER, POSTGRES_PASSWORD=POSTGRES_PASSWORD)
 run (self, containerFlask, userflask, nbTiles, debug, ConnectNum, POSTGRES_HOST=POSTGRES_HOST, POSTGRES_IP=POSTGRES_IP, POSTGRES_PORT=POSTGRES_PORT, POSTGRES_DB=POSTGRES_DB, POSTGRES_USER=POSTGRES_USER, POSTGRES_PASSWORD=POSTGRES_PASSWORD)
 get_nodesjson (self)
 callfunction (self, myfunc)
 updateScripts (self)
 killTunnel (self)
 startActionConnection (self)
 quitConnection (self)
 connect (self)
 action (self, callfunct)
 isalive (self)
 grepLog (self, nbLines, re_searchstr)

Public Attributes

str threadName = "TVConnect%s" % (ConnectNum)
 ConnectNum = ConnectNum
 thread
str user = "myuser"
str home = '/home/'+self.user
 debug = debug
 userflask = userflask
 oldtime = time.time()
 nbTiles = nbTiles
str name = "connectiondock"+str(Connections[self.ConnectNum]["connectionid"])
 tilesetId = int(Connections[self.ConnectNum]["tilesetid"])
 connectionId = int(Connections[self.ConnectNum]["connectionid"])
bool hasQuit = False
 containerFlask = containerFlask
 IPFlask = self.containerFlask.attrs["NetworkSettings"]["Networks"]["bridge"]["IPAddress"]
int websockifyPID = -1
list call_list = []
str dir = '/tmp/'+self.name
 PORTssh = s.getsockname()[1]
list commandConnect = [str(self.connectionId),POSTGRES_HOST,POSTGRES_PORT,POSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORD,'-r',CONNECTION_RESOL,'-u',str(os.getuid()),'-g',str(os.getgid()),'-p',str(self.PORTssh),'-d']
bool cont_auto_remove = False
dict postgresHost = {POSTGRES_HOST:POSTGRES_IP}
dict listPortsTiles = {str(self.PORTssh)+'/tcp':('0.0.0.0',self.PORTssh)};
list listPorts = [self.PORTssh]
 actionPort = ActionPort+self.ConnectNum
dict listConnectPorts = self.listPortsTiles|{f"{ActionPort}/tcp":('0.0.0.0',self.actionPort)}
 containerConnect
 daterun = datetime.datetime.now()
 password = info_passwd.group("passwd")
str flaskusr = "connect"+str(self.connectionId)
 LogAddUser = container_exec_out(self.containerFlask, commandAdduser)
 LogAuthKey = container_exec_out(self.containerConnect, commandAuthKey)
 LogAuthorized_key = re.sub(r'\n',r'',self.LogAuthKey)
 LogBuildSsh = container_exec_out(self.containerFlask, commandBuildSsh,user=self.flaskusr)
 LogTestFreePort = container_exec_out(self.containerFlask, commandTestFreePort,user=self.flaskusr)
 ConnectionDB = session.query(models.Connections).filter(models.Connections.id == int(self.connectionId)).one()
 TileSetDB = session.query(models.TileSets).filter_by(id=self.tilesetId).one()
 tunnel_script = os.path.join(self.home,".vnc","tunnel_flask")
str tunnel_command = "ssh -4 -T -N -nf -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -R 0.0.0.0:"+str(internPort)+":localhost:5902 "+self.flaskusr+"@"+self.IPFlask+" &"
 LogScrTunnel = self.containerConnect.exec_run(cmd=scriptTunnel,user=self.user,detach=True)
 LogModTunnel = self.containerConnect.exec_run(cmd="chmod u+x "+self.tunnel_script,user=self.user,detach=True)
 kill_tunnel_script = os.path.join(self.home,".vnc","kill_tunnel_flask")
 LogBuildVNC = container_exec_out(self.containerFlask, commandBuildVNC,user=self.flaskusr)
str dir_out = "TVFiles/"+str(self.ConnectionDB.id_users)+"/"+str(self.ConnectionDB.id)
 LogTestOldWebsockify = self.containerFlask.exec_run(cmd=commandTestOldWebsockify,user="root")
 LogKillOldWebsockify = self.containerFlask.exec_run(cmd=commandKillOldWebsockify,user="root")
 SSLpublic = os.getenv('SSLpublic')
 SSLprivate = os.getenv('SSLprivate')
 LogLaunchWebsockify = self.containerFlask.exec_run(cmd=commandLaunchWebsockify,user="root",detach=True)
 LogWebsockifyPID = container_exec_out(self.containerFlask, commandWebsockifyPID,user=self.flaskusr)
dict listPortsTilesIE = {}
 LogPut = self.containerConnect.put_archive(path=self.home, data=filetar)
bool action_OK = False
bool nodes_ok = False
 LogTunnel = self.containerConnect.exec_run(cmd="sh -c "+self.kill_tunnel_script,user=self.user,detach=True)
 ActionConnect = sock.client(self.actionPort)
 LogKillWebsockify = container_exec_out(self.containerFlask,commandKillWebsockify,user="root")
 LogRmUser = container_exec_out(self.containerFlask, commandRmuser)
 Logs = str(self.containerConnect.logs(since=int(self.oldtime),tail=nbLines))

Protected Attributes

 _stop_event = threading.Event()

Detailed Description

Definition at line 574 of file TVSecure.py.

Constructor & Destructor Documentation

◆ __init__()

TVSecure.ConnectionDocker.__init__ ( self,
containerFlask,
userflask,
nbTiles,
debug,
ConnectNum,
POSTGRES_HOST = POSTGRES_HOST,
POSTGRES_IP = POSTGRES_IP,
POSTGRES_PORT = POSTGRES_PORT,
POSTGRES_DB = POSTGRES_DB,
POSTGRES_USER = POSTGRES_USER,
POSTGRES_PASSWORD = POSTGRES_PASSWORD )

Definition at line 576 of file TVSecure.py.

Member Function Documentation

◆ action()

TVSecure.ConnectionDocker.action ( self,
callfunct )

Definition at line 1302 of file TVSecure.py.

◆ callfunction()

TVSecure.ConnectionDocker.callfunction ( self,
myfunc )

Definition at line 1148 of file TVSecure.py.

◆ connect()

TVSecure.ConnectionDocker.connect ( self)

Definition at line 1288 of file TVSecure.py.

◆ get_nodesjson()

TVSecure.ConnectionDocker.get_nodesjson ( self)

Definition at line 1055 of file TVSecure.py.

◆ grepLog()

TVSecure.ConnectionDocker.grepLog ( self,
nbLines,
re_searchstr )

Definition at line 1357 of file TVSecure.py.

◆ isalive()

TVSecure.ConnectionDocker.isalive ( self)

Definition at line 1349 of file TVSecure.py.

◆ killTunnel()

TVSecure.ConnectionDocker.killTunnel ( self)

Definition at line 1199 of file TVSecure.py.

◆ quitConnection()

TVSecure.ConnectionDocker.quitConnection ( self)

Definition at line 1220 of file TVSecure.py.

◆ run()

TVSecure.ConnectionDocker.run ( self,
containerFlask,
userflask,
nbTiles,
debug,
ConnectNum,
POSTGRES_HOST = POSTGRES_HOST,
POSTGRES_IP = POSTGRES_IP,
POSTGRES_PORT = POSTGRES_PORT,
POSTGRES_DB = POSTGRES_DB,
POSTGRES_USER = POSTGRES_USER,
POSTGRES_PASSWORD = POSTGRES_PASSWORD )

Definition at line 594 of file TVSecure.py.

◆ startActionConnection()

TVSecure.ConnectionDocker.startActionConnection ( self)

Definition at line 1206 of file TVSecure.py.

◆ updateScripts()

TVSecure.ConnectionDocker.updateScripts ( self)

Definition at line 1153 of file TVSecure.py.

Member Data Documentation

◆ _stop_event

TVSecure.ConnectionDocker._stop_event = threading.Event()
protected

Definition at line 589 of file TVSecure.py.

◆ action_OK

TVSecure.ConnectionDocker.action_OK = False

Definition at line 1014 of file TVSecure.py.

◆ ActionConnect

TVSecure.ConnectionDocker.ActionConnect = sock.client(self.actionPort)

Definition at line 1211 of file TVSecure.py.

◆ actionPort

TVSecure.ConnectionDocker.actionPort = ActionPort+self.ConnectNum

Definition at line 691 of file TVSecure.py.

◆ call_list

TVSecure.ConnectionDocker.call_list = []

Definition at line 619 of file TVSecure.py.

◆ commandConnect

TVSecure.ConnectionDocker.commandConnect = [str(self.connectionId),POSTGRES_HOST,POSTGRES_PORT,POSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORD,'-r',CONNECTION_RESOL,'-u',str(os.getuid()),'-g',str(os.getgid()),'-p',str(self.PORTssh),'-d']

Definition at line 642 of file TVSecure.py.

◆ ConnectionDB

TVSecure.ConnectionDocker.ConnectionDB = session.query(models.Connections).filter(models.Connections.id == int(self.connectionId)).one()

Definition at line 823 of file TVSecure.py.

◆ connectionId

TVSecure.ConnectionDocker.connectionId = int(Connections[self.ConnectNum]["connectionid"])

Definition at line 611 of file TVSecure.py.

◆ ConnectNum

TVSecure.ConnectionDocker.ConnectNum = ConnectNum

Definition at line 582 of file TVSecure.py.

◆ cont_auto_remove

TVSecure.ConnectionDocker.cont_auto_remove = False

Definition at line 643 of file TVSecure.py.

◆ containerConnect

TVSecure.ConnectionDocker.containerConnect
Initial value:
= client.containers.create(
name=self.name, image="mageiaconnect",
mounts=[VncVolume,TVssl,TVconf],
extra_hosts=self.postgresHost,
command=self.commandConnect,
ports=self.listConnectPorts,
devices=list_gpu_dev,
auto_remove=self.cont_auto_remove, detach=True)

Definition at line 710 of file TVSecure.py.

◆ containerFlask

TVSecure.ConnectionDocker.containerFlask = containerFlask

Definition at line 614 of file TVSecure.py.

◆ daterun

TVSecure.ConnectionDocker.daterun = datetime.datetime.now()

Definition at line 733 of file TVSecure.py.

◆ debug

TVSecure.ConnectionDocker.debug = debug

Definition at line 600 of file TVSecure.py.

◆ dir

TVSecure.ConnectionDocker.dir = '/tmp/'+self.name

Definition at line 622 of file TVSecure.py.

◆ dir_out

TVSecure.ConnectionDocker.dir_out = "TVFiles/"+str(self.ConnectionDB.id_users)+"/"+str(self.ConnectionDB.id)

Definition at line 874 of file TVSecure.py.

◆ flaskusr

str TVSecure.ConnectionDocker.flaskusr = "connect"+str(self.connectionId)

Definition at line 761 of file TVSecure.py.

◆ hasQuit

bool TVSecure.ConnectionDocker.hasQuit = False

Definition at line 612 of file TVSecure.py.

◆ home

str TVSecure.ConnectionDocker.home = '/home/'+self.user

Definition at line 599 of file TVSecure.py.

◆ IPFlask

TVSecure.ConnectionDocker.IPFlask = self.containerFlask.attrs["NetworkSettings"]["Networks"]["bridge"]["IPAddress"]

Definition at line 615 of file TVSecure.py.

◆ kill_tunnel_script

TVSecure.ConnectionDocker.kill_tunnel_script = os.path.join(self.home,".vnc","kill_tunnel_flask")

Definition at line 842 of file TVSecure.py.

◆ listConnectPorts

dict TVSecure.ConnectionDocker.listConnectPorts = self.listPortsTiles|{f"{ActionPort}/tcp":('0.0.0.0',self.actionPort)}

Definition at line 692 of file TVSecure.py.

◆ listPorts

TVSecure.ConnectionDocker.listPorts = [self.PORTssh]

Definition at line 664 of file TVSecure.py.

◆ listPortsTiles

TVSecure.ConnectionDocker.listPortsTiles = {str(self.PORTssh)+'/tcp':('0.0.0.0',self.PORTssh)};

Definition at line 663 of file TVSecure.py.

◆ listPortsTilesIE

TVSecure.ConnectionDocker.listPortsTilesIE = {}

Definition at line 943 of file TVSecure.py.

◆ LogAddUser

TVSecure.ConnectionDocker.LogAddUser = container_exec_out(self.containerFlask, commandAdduser)

Definition at line 770 of file TVSecure.py.

◆ LogAuthKey

TVSecure.ConnectionDocker.LogAuthKey = container_exec_out(self.containerConnect, commandAuthKey)

Definition at line 781 of file TVSecure.py.

◆ LogAuthorized_key

TVSecure.ConnectionDocker.LogAuthorized_key = re.sub(r'\n',r'',self.LogAuthKey)

Definition at line 782 of file TVSecure.py.

◆ LogBuildSsh

TVSecure.ConnectionDocker.LogBuildSsh = container_exec_out(self.containerFlask, commandBuildSsh,user=self.flaskusr)

Definition at line 794 of file TVSecure.py.

◆ LogBuildVNC

TVSecure.ConnectionDocker.LogBuildVNC = container_exec_out(self.containerFlask, commandBuildVNC,user=self.flaskusr)

Definition at line 863 of file TVSecure.py.

◆ LogKillOldWebsockify

TVSecure.ConnectionDocker.LogKillOldWebsockify = self.containerFlask.exec_run(cmd=commandKillOldWebsockify,user="root")

Definition at line 884 of file TVSecure.py.

◆ LogKillWebsockify

TVSecure.ConnectionDocker.LogKillWebsockify = container_exec_out(self.containerFlask,commandKillWebsockify,user="root")

Definition at line 1232 of file TVSecure.py.

◆ LogLaunchWebsockify

TVSecure.ConnectionDocker.LogLaunchWebsockify = self.containerFlask.exec_run(cmd=commandLaunchWebsockify,user="root",detach=True)

Definition at line 899 of file TVSecure.py.

◆ LogModTunnel

TVSecure.ConnectionDocker.LogModTunnel = self.containerConnect.exec_run(cmd="chmod u+x "+self.tunnel_script,user=self.user,detach=True)

Definition at line 839 of file TVSecure.py.

◆ LogPut

TVSecure.ConnectionDocker.LogPut = self.containerConnect.put_archive(path=self.home, data=filetar)

Definition at line 1003 of file TVSecure.py.

◆ LogRmUser

TVSecure.ConnectionDocker.LogRmUser = container_exec_out(self.containerFlask, commandRmuser)

Definition at line 1238 of file TVSecure.py.

◆ Logs

TVSecure.ConnectionDocker.Logs = str(self.containerConnect.logs(since=int(self.oldtime),tail=nbLines))

Definition at line 1358 of file TVSecure.py.

◆ LogScrTunnel

TVSecure.ConnectionDocker.LogScrTunnel = self.containerConnect.exec_run(cmd=scriptTunnel,user=self.user,detach=True)

Definition at line 837 of file TVSecure.py.

◆ LogTestFreePort

TVSecure.ConnectionDocker.LogTestFreePort = container_exec_out(self.containerFlask, commandTestFreePort,user=self.flaskusr)

Definition at line 815 of file TVSecure.py.

◆ LogTestOldWebsockify

TVSecure.ConnectionDocker.LogTestOldWebsockify = self.containerFlask.exec_run(cmd=commandTestOldWebsockify,user="root")

Definition at line 879 of file TVSecure.py.

◆ LogTunnel

TVSecure.ConnectionDocker.LogTunnel = self.containerConnect.exec_run(cmd="sh -c "+self.kill_tunnel_script,user=self.user,detach=True)

Definition at line 1201 of file TVSecure.py.

◆ LogWebsockifyPID

TVSecure.ConnectionDocker.LogWebsockifyPID = container_exec_out(self.containerFlask, commandWebsockifyPID,user=self.flaskusr)

Definition at line 908 of file TVSecure.py.

◆ name

TVSecure.ConnectionDocker.name = "connectiondock"+str(Connections[self.ConnectNum]["connectionid"])

Definition at line 609 of file TVSecure.py.

◆ nbTiles

TVSecure.ConnectionDocker.nbTiles = nbTiles

Definition at line 607 of file TVSecure.py.

◆ nodes_ok

TVSecure.ConnectionDocker.nodes_ok = False

Definition at line 1060 of file TVSecure.py.

◆ oldtime

TVSecure.ConnectionDocker.oldtime = time.time()

Definition at line 605 of file TVSecure.py.

◆ password

TVSecure.ConnectionDocker.password = info_passwd.group("passwd")

Definition at line 749 of file TVSecure.py.

◆ PORTssh

TVSecure.ConnectionDocker.PORTssh = s.getsockname()[1]

Definition at line 628 of file TVSecure.py.

◆ postgresHost

dict TVSecure.ConnectionDocker.postgresHost = {POSTGRES_HOST:POSTGRES_IP}

Definition at line 650 of file TVSecure.py.

◆ SSLprivate

TVSecure.ConnectionDocker.SSLprivate = os.getenv('SSLprivate')

Definition at line 891 of file TVSecure.py.

◆ SSLpublic

TVSecure.ConnectionDocker.SSLpublic = os.getenv('SSLpublic')

Definition at line 890 of file TVSecure.py.

◆ thread

TVSecure.ConnectionDocker.thread
Initial value:
= threading.Thread(target=self.run,name=self.threadName,
args=(containerFlask, userflask, nbTiles, debug, ConnectNum,
POSTGRES_HOST, POSTGRES_IP, POSTGRES_PORT,
POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD,))

Definition at line 583 of file TVSecure.py.

◆ threadName

TVSecure.ConnectionDocker.threadName = "TVConnect%s" % (ConnectNum)

Definition at line 581 of file TVSecure.py.

◆ TileSetDB

TVSecure.ConnectionDocker.TileSetDB = session.query(models.TileSets).filter_by(id=self.tilesetId).one()

Definition at line 824 of file TVSecure.py.

◆ tilesetId

TVSecure.ConnectionDocker.tilesetId = int(Connections[self.ConnectNum]["tilesetid"])

Definition at line 610 of file TVSecure.py.

◆ tunnel_command

TVSecure.ConnectionDocker.tunnel_command = "ssh -4 -T -N -nf -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -R 0.0.0.0:"+str(internPort)+":localhost:5902 "+self.flaskusr+"@"+self.IPFlask+" &"

Definition at line 832 of file TVSecure.py.

◆ tunnel_script

TVSecure.ConnectionDocker.tunnel_script = os.path.join(self.home,".vnc","tunnel_flask")

Definition at line 831 of file TVSecure.py.

◆ user

str TVSecure.ConnectionDocker.user = "myuser"

Definition at line 598 of file TVSecure.py.

◆ userflask

TVSecure.ConnectionDocker.userflask = userflask

Definition at line 603 of file TVSecure.py.

◆ websockifyPID

TVSecure.ConnectionDocker.websockifyPID = -1

Definition at line 617 of file TVSecure.py.


The documentation for this class was generated from the following file: