salvus.flow.sites.remote_io_site
Classes
LocalSFTPClient
LocalSFTPClientclass LocalSFTPClient(builtins.object):
def __init__(self):
...Everything is based on SSH but for the local site its not needed. Thus we implement a custom SFTP client on top of direct file system operations.
Initialize self. See help(type(self)) for accurate signature.
close()
close()def close(self) -> None:
...Mock method.
get()
get()def get(
self, remotepath: str, localpath: str, callback: Optional[Callable]
) -> None:
...Get a remote file.
remotepathstr — Remote path.localpathstr — Local path.callbackOptional[Callable] — Callback function.
getfo()
getfo()def getfo(self, remotepath: str, fl: IO, callback: Optional[Callable]) -> None:
...Get a remote file and copy it to an open file handle.
remotepathstr — Remote path.flIO — Open file handle.callbackOptional[Callable] — Callback function.
listdir()
listdir()def listdir(self, path: str) -> List[str]:
...List the contents of a directory.
pathstr — The path.
mkdir()
mkdir()def mkdir(self, path: str, mode: int = 511) -> None:
...Create directory.
pathstr — The path.modeint — Permission mode.
put()
put()def put(
self, localpath: str, remotepath: str, callback: Optional[Callable]
) -> None:
...Copy a local file to remote site.
localpathstr — Local file.remotepathstr — Remote path.callbackOptional[Callable] — Callback function.
putfo()
putfo()def putfo(self, fl: IO, remotepath: str, callback: Optional[Callable]) -> None:
...Put the contents of an open file handle to a remote path.
flIO — Open file handle.remotepathstr — Remote path.callbackOptional[Callable] — Callback function.
rmdir()
rmdir()def rmdir(self, path: str) -> None:
...Remove a directory.
pathstr — The path.
stat()
stat()def stat(self, path: str) -> os.stat_result:
...Return stat().
pathstr — The path.
unlink()
unlink()def unlink(self, path: str) -> None:
...Unlink the path.
pathstr — The path.
LocalSSHClient
LocalSSHClientclass LocalSSHClient(builtins.object):
def __init__(self):
...Initialize self. See help(type(self)) for accurate signature.
close()
close()def close(self) -> None:
...Mock method.
connect()
connect()def connect(self) -> None:
...Mock method.
exec_command()
exec_command()def exec_command(self) -> None:
...Mock method.
load_system_host_keys()
load_system_host_keys()def load_system_host_keys(self) -> None:
...Mock method.
open_sftp()
open_sftp()def open_sftp(self) -> None:
...Mock method.
set_missing_host_key_policy()
set_missing_host_key_policy()def set_missing_host_key_policy(self) -> None:
...Mock method.
RemoteIOSite
RemoteIOSiteclass RemoteIOSite(builtins.object):
def __init__(self):
...Class to encapsulate SSH/SFTP client initialization and remote I/O functionality
Not useful on its own - does require self.name and self.config to be available.
Initialize self. See help(type(self)) for accurate signature.
home_dir pathlib.PurePosixPath
home_dir pathlib.PurePosixPathThe home directory.
sftp_client Union[paramiko.sftp_client.SFTPClient, salvus.flow.sites.remote_io_site.LocalSFTPClient]
sftp_client Union[paramiko.sftp_client.SFTPClient, salvus.flow.sites.remote_io_site.LocalSFTPClient]Get the sftp client instance.
Will be initialized upon the first access.
ssh_client Union[paramiko.client.SSHClient, salvus.flow.sites.remote_io_site.LocalSSHClient]
ssh_client Union[paramiko.client.SSHClient, salvus.flow.sites.remote_io_site.LocalSSHClient]Get the ssh client instance.
Will be initialized upon the first access.
check_if_folder_can_be_written_to()
check_if_folder_can_be_written_to()def check_if_folder_can_be_written_to(
self, path: Union[str, pathlib.Path, pathlib.PurePosixPath]
) -> bool:
...Checks if the folder can be written to.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Path on the remote machine.
remote_exists()
remote_exists()def remote_exists(
self, path: Union[str, pathlib.Path, pathlib.PurePosixPath]
) -> bool:
...Check if the remote path exists or not.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Remote path to check.
remote_get()
remote_get()def remote_get(
self,
remotepath: Union[str, pathlib.Path, pathlib.PurePosixPath],
localpath: Union[_io.BytesIO, pathlib.Path],
progressbar: bool = False,
) -> None:
...Get a remote file.
remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Remote file to get.localpathUnion[_io.BytesIO, pathlib.Path] — Local path to save to Can be a file or a file like object.progressbarbool — Show progressbar.
remote_listdir()
remote_listdir()def remote_listdir(
self, path: Union[str, pathlib.Path, pathlib.PurePosixPath]
) -> List[str]:
...List the contents of a remote directory.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Remote path whose contents to list.
remote_mkdir()
remote_mkdir()def remote_mkdir(
self,
path: Union[str, pathlib.Path, pathlib.PurePosixPath],
mode: int = 511,
) -> None:
...Remotely create a directory.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Directory to create.modeint — Permissions for the new directory.
remote_put()
remote_put()def remote_put(
self,
localpath: Union[_io.BytesIO, pathlib.Path],
remotepath: Union[str, pathlib.Path, pathlib.PurePosixPath],
progressbar: bool = False,
) -> None:
...Copy a local file to a remote path.
localpathUnion[_io.BytesIO, pathlib.Path] — Local file to copy. Can be a file like object.remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Where to copy to.progressbarbool — Show a progressbar.
remote_rmdir()
remote_rmdir()def remote_rmdir(
self,
path: Union[str, pathlib.Path, pathlib.PurePosixPath],
verbosity: int = 1,
) -> None:
...Remotely and recursively delete a remote folder and its contents.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Remote path to delete.verbosityint — Verbosity level.
run_ssh_command()
run_ssh_command()def run_ssh_command(
self,
cmd: str,
assert_ok: bool = True,
environment: Optional[Dict[str, str]] = None,
) -> Tuple[int, List[str], List[str]]:
...Directly runs the given command via SSH on the remote machine.
cmdstr — Command to run.assert_okbool — Assert that it exits with code zero, otherwise raise a remote execution error with more information.environmentOptional[Dict[str, str]] — A dict of shell environment variables to be merged into the default environment that the remote command executes with.
safe_remote_rmdir()
safe_remote_rmdir()def safe_remote_rmdir(
self,
path: Union[str, pathlib.Path, pathlib.PurePosixPath],
allow_failure: bool,
verbosity: int = 1,
) -> None:
...Convenience wrapper that optionally allows the remote_rmdir() command to fail. Useful for some networked file systems.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath] — Remote path to delete.allow_failurebool — Whether to allow failure or not.verbosityint — Verbosity level.