Warning: This document is for the development version of Bareos Documentation. The main version is bareos-21.

bareos.bsock.filedaemon.FileDaemon

class bareos.bsock.filedaemon.FileDaemon(address='localhost', port=9102, name=None, password=None, tls_psk_enable=True, tls_psk_require=False, tls_version=None)[source]

Bases: bareos.bsock.lowlevel.LowLevel

Send and receive the response to Bareos File Daemon (bareos-fd).

Parameters
  • address (str) – Address of the Bareos File Daemon (hostname or IP).

  • port (int) – Port number of the Bareos File Daemon.

  • name (str) – Name of the File Daemon.

  • password (str, bareos.util.Password) – Password, in cleartext or as Password object.

  • tls_psk_enable (boolean) – Enable TLS-PSK.

  • tls_psk_require (boolean) – Enforce using TLS-PSK.

  • tls_version (None, ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2) – TLS protocol version to use.

Raises

bareos.exceptions.ConnectionError – On connections errors.

Methods

argparser_add_default_command_line_arguments

Extend argparser with FileDaemon specific parameter.

argparser_get_bareos_parameter

Extract arguments.

auth

Login to a Bareos Daemon.

call

Calls a command on the Bareos File Daemon and returns its result.

close

Close the connection.

connect

Establish a network connection and authenticate.

get_cipher

If a encrypted connection is used, returns information about the encryption.

get_protocol_version

Get the Bareos Console protocol version that is used.

get_tls_psk_identity

Bareos TLS-PSK excepts the identiy is a specific format.

has_data

Is readable data available?

interactive

Enter the interactive mode.

is_connected

Verifes that last status still indicates connected.

is_end_of_message

Checks if a Bareos signal indicates the end of a message.

is_tls_psk_available

Checks if we have all required modules for TLS-PSK.

receive_and_evaluate_response_message

Retrieve a message and evaluate it.

reconnect

Tries to reconnect.

recv

Receive a single message.

recv_bytes

Receive a number of bytes.

recv_msg

Receive a full message.

recv_submsg

Retrieve a message of the specific length.

send

Send message to the Daemon.

send_command

Alias for call().

static argparser_add_default_command_line_arguments(argparser)[source]

Extend argparser with FileDaemon specific parameter.

Every command line program must offer a similar set of parameter to connect to a Bareos File Daemon. This method adds the required parameter to an existing ArgParser instance. Parameter required to initialize a FileDaemon class are stored in variables prefixed with BAREOS_.

Use bareos.bsock.lowlevel.LowLevel.argparser_get_bareos_parameter() to retrieve the relevant parameter (with the BAREOS_ prefix removed).

Example

argparser = argparse.ArgumentParser(description='Connect to  Bareos File Daemon.')
FileDaemon.argparser_add_default_command_line_arguments(argparser)
args = argparser.parse_args()
bareos_args = DirectorConsole.argparser_get_bareos_parameter(args)
fd = FileDaemon(**bareos_args)
Parameters

argparser (ArgParser) – ArgParser instance.

static argparser_get_bareos_parameter(args)

Extract arguments.

This method is usally used together with the method argparser_add_default_command_line_arguments().

Parameters

args (ArgParser.Namespace) – Arguments retrieved by ArgumentParser.parse_args().

Returns

The relevant parameter from args to initialize a connection.

Return type

dict

auth()

Login to a Bareos Daemon.

Returns

True, if the authentication succeeds. In earlier versions, authentication failures returned False. However, now an authentication failure raises an exception.

Return type

bool

Raises

bareos.exceptions.AuthenticationError – if authentication fails.

call(command)[source]

Calls a command on the Bareos File Daemon and returns its result.

Parameters

command (str or list) – Command to execute. Best provided as a list.

Returns

Result received from the File Daemon.

Return type

bytes

close()

Close the connection.

connect(address, port, dirname, connection_type, name=None, password=None)

Establish a network connection and authenticate.

Parameters
  • address (str) – Address of the Bareos Director (hostname or IP).

  • port (int) – Port number of the Bareos Director.

  • dirname (str, optional) – Name of the Bareos Director. Deprecated, normally not required.

  • connection_type (int) – See bareos.bsock.connectiontype.ConnectionType.

  • name (str, optional) – Credential name.

  • password (str, bareos.util.Password) – Credential password, in cleartext or as Password object.

Returns

True, if the authentication succeeds. In earlier versions, authentication failures returned False. However, now an authentication failure raises an exception.

Return type

bool

Raises
get_cipher()

If a encrypted connection is used, returns information about the encryption. Else it returns None.

Returns

Returns a three-value tuple containing the name of the cipher being used, the version of the SSL protocol that defines its use, and the number of secret bits being used. If the connection is unencrypted or has been established, returns None.

Return type

tuple or None

get_protocol_version()

Get the Bareos Console protocol version that is used.

Returns

Number that represents the Bareos Console protocol version (see bareos.bsock.protocolversions.ProtocolVersions.)

Return type

int

get_tls_psk_identity()

Bareos TLS-PSK excepts the identiy is a specific format.

has_data()

Is readable data available?

Returns

True: if readable data is available.

Return type

bool

interactive()

Enter the interactive mode.

Exit via typing “exit” or “quit”.

Returns

True, if exited by user command.

Return type

bool

is_connected()

Verifes that last status still indicates connected.

Returns

True, if still connected.

Return type

bool

is_end_of_message(data)

Checks if a Bareos signal indicates the end of a message.

Parameters

data (int) – Negative integer.

Returns

True, if regular end of message is reached.

Return type

bool

static is_tls_psk_available()

Checks if we have all required modules for TLS-PSK.

receive_and_evaluate_response_message()

Retrieve a message and evaluate it.

Only used during in the authentication phase.

Returns

(code, text).

Return type

2-tuple

reconnect()

Tries to reconnect.

Returns

True, if the connection could be reestablished.

Return type

bool

recv()

Receive a single message.

This is, header (4 bytes): if

  • > 0: length of the following message

  • < 0: Bareos signal

Returns

Message retrieved via the connection.

Return type

bytearray

Raises

bareos.exceptions.SignalReceivedException – If a Bareos signal is received.

recv_bytes(length, timeout=10)

Receive a number of bytes.

Parameters
  • length (int) – Number of bytes to receive.

  • timeout (float) – Timeout in seconds.

Raises
recv_msg(regex=b'^\\d\\d\\d\\d OK.*$')

Receive a full message.

It retrieves messages (header + message text), until

  1. the message contains the specified regex or

  2. the header indicates a signal.

Parameters

regex (bytes) – Descripes the expected end of the message.

Returns

Message retrieved via the connection.

Return type

bytearray

Raises

bareos.exceptions.SignalReceivedException – If a Bareos signal is received.

recv_submsg(length)

Retrieve a message of the specific length.

Parameters

length (int) – Number of bytes to retrieve.

Returns

Retrieved message.

Return type

bytearray

send(msg=None)

Send message to the Daemon.

Parameters

msg (bytearray) – Message to send.

send_command(command)

Alias for call().

Deprecated

15.2.0