Add credentials to Vessels/Connections
This commit is contained in:
parent
5f8a22a5c7
commit
bfc66698de
|
@ -1,6 +1,6 @@
|
||||||
import paramiko as pikuniku # :P
|
import paramiko as pikuniku # :P
|
||||||
|
|
||||||
from paramiko.client import SSHClient
|
from paramiko.client import SSHClient, WarningPolicy
|
||||||
|
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
@ -23,7 +23,9 @@ class Connection:
|
||||||
self._vessel = vessel
|
self._vessel = vessel
|
||||||
self._client = SSHClient()
|
self._client = SSHClient()
|
||||||
self._client.load_system_host_keys()
|
self._client.load_system_host_keys()
|
||||||
self._client.connect(vessel.address)
|
self._client.set_missing_host_key_policy(WarningPolicy)
|
||||||
|
self._client.connect(vessel.address, vessel.username,
|
||||||
|
vessel.password, passphrase=vessel.passphrase)
|
||||||
self._transport = self._client.get_transport()
|
self._transport = self._client.get_transport()
|
||||||
self._transport.set_keepalive(10)
|
self._transport.set_keepalive(10)
|
||||||
self._sftp = self._client.open_sftp()
|
self._sftp = self._client.open_sftp()
|
||||||
|
|
|
@ -30,17 +30,32 @@ class Vessel:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
tempdir = None
|
tempdir = None
|
||||||
|
username = None
|
||||||
|
password = None
|
||||||
|
passphrase = None
|
||||||
|
|
||||||
if "TempDir" in config.keys():
|
if "TempDir" in config.keys():
|
||||||
tempdir = config["TempDir"]
|
tempdir = config["TempDir"]
|
||||||
|
|
||||||
|
if "Username" in config.keys():
|
||||||
|
username = config["Username"]
|
||||||
|
|
||||||
|
if "Password" in config.keys():
|
||||||
|
password = config["Password"]
|
||||||
|
|
||||||
|
if "Passphrase" in config.keys():
|
||||||
|
passphrase = config["Passphrase"]
|
||||||
|
|
||||||
if "Address" in config.keys():
|
if "Address" in config.keys():
|
||||||
return cls(config.name.split()[1], config["Address"], tempdir)
|
return cls(config.name.split()[1], config["Address"], username,
|
||||||
|
password, passphrase, tempdir)
|
||||||
else:
|
else:
|
||||||
raise ValueError("Definition for Vessel " +
|
raise ValueError("Definition for Vessel " +
|
||||||
config.name.split()[1] + " does not contain Address!")
|
config.name.split()[1] + " does not contain Address!")
|
||||||
|
|
||||||
def __init__(self, name: str, address: str, tempdir: Optional[Union[str, pathlib.Path]]) -> None:
|
def __init__(self, name: str, address: str, username: Optional[str] = None,
|
||||||
|
password: Optional[str] = None, passphrase: Optional[str] = None,
|
||||||
|
tempdir: Optional[Union[str, pathlib.Path]] = None) -> None:
|
||||||
"""Initialize new Vessel object
|
"""Initialize new Vessel object
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -52,6 +67,9 @@ class Vessel:
|
||||||
self.name = name
|
self.name = name
|
||||||
self.address = address
|
self.address = address
|
||||||
self.tempdir = pathlib.Path(tempdir or "/tmp/.ContentMonster/")
|
self.tempdir = pathlib.Path(tempdir or "/tmp/.ContentMonster/")
|
||||||
|
self.username = username
|
||||||
|
self.password = password
|
||||||
|
self.passphrase = passphrase
|
||||||
self._connection = None
|
self._connection = None
|
||||||
self._uploaded = self.getUploadedFromDB() # Files already uploaded
|
self._uploaded = self.getUploadedFromDB() # Files already uploaded
|
||||||
|
|
||||||
|
@ -121,4 +139,4 @@ class Vessel:
|
||||||
remotefile (classes.remotefile.RemoteFile): RemoteFile object
|
remotefile (classes.remotefile.RemoteFile): RemoteFile object
|
||||||
describing the uploaded File
|
describing the uploaded File
|
||||||
"""
|
"""
|
||||||
self.connection.compileComplete(remotefile)
|
self.connection.compileComplete(remotefile)
|
||||||
|
|
Loading…
Reference in a new issue