Add credentials to Vessels/Connections
This commit is contained in:
parent
5f8a22a5c7
commit
bfc66698de
2 changed files with 25 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
|||
import paramiko as pikuniku # :P
|
||||
|
||||
from paramiko.client import SSHClient
|
||||
from paramiko.client import SSHClient, WarningPolicy
|
||||
|
||||
from io import BytesIO
|
||||
from pathlib import Path
|
||||
|
@ -23,7 +23,9 @@ class Connection:
|
|||
self._vessel = vessel
|
||||
self._client = SSHClient()
|
||||
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.set_keepalive(10)
|
||||
self._sftp = self._client.open_sftp()
|
||||
|
|
|
@ -30,17 +30,32 @@ class Vessel:
|
|||
"""
|
||||
|
||||
tempdir = None
|
||||
username = None
|
||||
password = None
|
||||
passphrase = None
|
||||
|
||||
if "TempDir" in config.keys():
|
||||
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():
|
||||
return cls(config.name.split()[1], config["Address"], tempdir)
|
||||
return cls(config.name.split()[1], config["Address"], username,
|
||||
password, passphrase, tempdir)
|
||||
else:
|
||||
raise ValueError("Definition for Vessel " +
|
||||
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
|
||||
|
||||
Args:
|
||||
|
@ -52,6 +67,9 @@ class Vessel:
|
|||
self.name = name
|
||||
self.address = address
|
||||
self.tempdir = pathlib.Path(tempdir or "/tmp/.ContentMonster/")
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.passphrase = passphrase
|
||||
self._connection = None
|
||||
self._uploaded = self.getUploadedFromDB() # Files already uploaded
|
||||
|
||||
|
|
Loading…
Reference in a new issue