twindb_backup.destination package¶
Submodules¶
twindb_backup.destination.base_destination module¶
Module defines Base destination class and destination exception(s).
-
class
twindb_backup.destination.base_destination.
BaseDestination
(remote_path)[source]¶ Bases:
object
Base destination class.
Parameters: remote_path (str) – Common path where all backups are stored. The remote path is specific to the actual destination class. For example, for Amazon S3 it will be something like s3://bucket_with_backups
-
delete
(path)[source]¶ Delete object from the destination
Parameters: path – Relative path to the file to delete
-
get_stream
(copy)[source]¶ Get a PIPE handler with content of the backup copy streamed from the destination.
Parameters: copy (BaseCopy) – Backup copy Returns: Standard output.
-
list_files
(prefix=None, recursive=False, pattern=None, files_only=False)[source]¶ Get list of file by prefix.
Parameters: - prefix (str) – Path
- recursive (bool) – Recursive return list of files
- pattern (str) – files must match with this regexp if specified
- files_only (bool) – If True don’t list directories
Returns: List of files
Return type: list
-
read
(filepath)[source]¶ Read content of a file path from destination.
Parameters: filepath (str) – Relative path to file. Returns: Content of the file. Return type: str
-
twindb_backup.destination.exceptions module¶
Module for destination exceptions.
-
exception
twindb_backup.destination.exceptions.
DestinationError
[source]¶ Bases:
twindb_backup.exceptions.TwinDBBackupError
General destination error
-
exception
twindb_backup.destination.exceptions.
FileNotFound
[source]¶ Bases:
twindb_backup.destination.exceptions.DestinationError
File doesn’t exist on destination
-
exception
twindb_backup.destination.exceptions.
GCSDestinationError
[source]¶ Bases:
twindb_backup.destination.exceptions.DestinationError
GCS destination errors
-
exception
twindb_backup.destination.exceptions.
S3DestinationError
[source]¶ Bases:
twindb_backup.destination.exceptions.DestinationError
S3 destination errors
-
exception
twindb_backup.destination.exceptions.
SshDestinationError
[source]¶ Bases:
twindb_backup.destination.exceptions.DestinationError
SSH destination errors
twindb_backup.destination.local module¶
Module defines Local destination.
-
class
twindb_backup.destination.local.
Local
(path=None)[source]¶ Bases:
twindb_backup.destination.base_destination.BaseDestination
Local destination class.
-
delete
(path)[source]¶ Delete object from the destination
Parameters: path – Relative path to the file to delete
-
get_stream
(copy)[source]¶ Get a PIPE handler with content of the backup copy streamed from the destination
Parameters: copy (BaseCopy) – Backup copy Returns:
-
path
¶ Root path on local file system where local backup copies are stored.
-
read
(filepath)[source]¶ Read content of a file path from destination.
Parameters: filepath (str) – Relative path to file. Returns: Content of the file. Return type: str
-
twindb_backup.destination.s3 module¶
Module for S3 destination.
-
class
twindb_backup.destination.s3.
S3
(**kwargs)[source]¶ Bases:
twindb_backup.destination.base_destination.BaseDestination
S3 destination class.
Parameters: kwargs – Keyword arguments. - bucket - S3 bucket name.
- aws_access_key_id - AWS key id.
- aws_secret_access_key - AWS secret key.
- aws_default_region - AWS default region.
- hostname - Hostname of a host where a backup is taken from.
-
bucket
¶ S3 bucket name.
-
create_bucket
()[source]¶ Creates the bucket in s3 that will store the backups.
Raises: S3DestinationError – if failed to create the bucket.
-
delete
(path)[source]¶ Deletes an S3 object.
Parameters: path (str) – Key of S3 object. Raises: S3DestinationError – if failed to delete object.
-
delete_all_objects
()[source]¶ Delete all objects from S3 bucket.
Raises: S3DestinationError – if failed to delete objects from the bucket.
-
delete_bucket
(force=False)[source]¶ Delete the bucket in s3 that was storing the backups.
Parameters: force (bool) – If the bucket is non-empty then delete the objects before deleting the bucket. Raises: S3DestinationError – if failed to delete the bucket.
-
get_stream
(copy)[source]¶ Get a PIPE handler with content of the backup copy streamed from the destination.
Parameters: copy (BaseCopy) – Backup copy Returns: Stream with backup copy Return type: generator Raises: S3DestinationError – if failed to stream a backup copy.
-
static
get_transfer_config
()[source]¶ Build Transfer config
Returns: Transfer config Return type: boto3.s3.transfer.TransferConfig
-
list_files
(prefix=None, recursive=False, pattern=None, files_only=False)[source]¶ List files in the destination that have common prefix.
Parameters: - prefix (str) – Common prefix. May include the bucket name.
(e.g.
s3://my_bucket/foo/
) or simply a prefix in the bucket (e.g.foo/
). - recursive – Does nothing for this class.
- pattern (str) – files must match with this regexp if specified.
- files_only – Does nothing for this class.
Returns: sorted list of file names.
Returns: Full S3 url in form
s3://bucket/path/to/file
.Return type: list(str)
Raises: S3DestinationError – if failed to list files.
- prefix (str) – Common prefix. May include the bucket name.
(e.g.
-
read
(filepath)[source]¶ Read content of filepath and return it as a string.
Parameters: filepath – Path in S3 bucket. Returns: Content of the file. Return type: str Raises: FileNotFound – If filepath doesn’t exist.
-
save
(handler, filepath)[source]¶ Read from handler and save it to Amazon S3
Parameters: - filepath – save backup copy in a file with this name
- handler – stdout handler from backup source
-
static
setup_s3_client
()[source]¶ Creates an authenticated s3 client.
Returns: S3 client instance. Return type: botocore.client.BaseClient
Share S3 file and return public link
Parameters: s3_url (str) – S3 url Returns: Public url Return type: str Raises: S3DestinationError – if failed to share object.
-
static
validate_client_response
(response)[source]¶ - Validates the response returned by the client. Raises an exception
- if the response code is not 200 or 204
Parameters: response (dict) – The response that needs to be validated. Raises: S3DestinationError – if response from S3 is invalid.
twindb_backup.destination.ssh module¶
Module for SSH destination.
-
class
twindb_backup.destination.ssh.
Ssh
(remote_path, **kwargs)[source]¶ Bases:
twindb_backup.destination.base_destination.BaseDestination
The SSH destination class represents a destination backup storage with running SSH demon.
Parameters: - remote_path (str) – Path to store backups.
- kwargs (dict) – Keyword arguments. See below.
- hostname (str): Hostname of the host where backup is taken from.
- ssh_host (str): Hostname for SSH connection. Default
127.0.0.1
. - ssh_user (str): Username for SSH connection. Default
root
. - ssh_port (int): TCP port for SSH connection. Default 22.
- ssh_key (str): File with an rsa/dsa key for SSH authentication.
- Default
/root/.ssh/id_rsa
.
-
delete
(path)[source]¶ Delete file by path. The path is a relative to the
self.remote_path
.Parameters: path (str) – Path to a remote file.
-
ensure_tcp_port_listening
(port, wait_timeout=10)[source]¶ Check that tcp port is open and ready to accept connections. Keep checking up to
wait_timeout
seconds.Parameters: - port (int) – TCP port that is supposed to be listening.
- wait_timeout (int) – Wait this many seconds until the port is ready.
Returns: True
if the TCP port is listening.Return type: bool
-
execute_command
(cmd, quiet=False, background=False)[source]¶ Execute ssh command on the remote destination.
Parameters: - cmd (str) – Command to execute.
- quiet (bool) – If
True
don’t print errors. - background (bool) – If
True
don’t wait until the command exits.
Returns: stdin, stdout and stderr handlers.
Return type: tuple
-
get_stream
(copy)[source]¶ Get a PIPE handler with content of the backup copy streamed from the destination.
Parameters: copy (BaseCopy) – Backup copy. Returns: Standard output. Return type: file
-
host
¶ Returns: IP address of the destination. Return type: str
-
netcat
(command, port=9990)[source]¶ Run
netcat
on the destination pipe it to a given command:ncat -l <port> --recv-only | <command>
Parameters: - command (str) – Command that would accept
netcat
’s output. - port (int) – TCP port to run
netcat
on. Default 9999.
- command (str) – Command that would accept
-
port
¶ Returns: TCP port of the destination. Return type: int
-
read
(filepath)[source]¶ Read content of a file path from destination.
Parameters: filepath (str) – Relative path to file. Returns: Content of the file. Return type: str
-
save
(handler, filepath)[source]¶ Read from the handler and save it on the remote ssh server in a file
filepath
.Parameters: - filepath (str) – Relative path to a file to store the backup copy.
- handler (file) – Stream with content of the backup.
-
user
¶ Returns: SSH user. Return type: str