summaryrefslogtreecommitdiff
path: root/rdiff-backup/src/globals.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/src/globals.py')
-rw-r--r--rdiff-backup/src/globals.py237
1 files changed, 0 insertions, 237 deletions
diff --git a/rdiff-backup/src/globals.py b/rdiff-backup/src/globals.py
deleted file mode 100644
index 17345d3..0000000
--- a/rdiff-backup/src/globals.py
+++ /dev/null
@@ -1,237 +0,0 @@
-import re, os
-
-#######################################################################
-#
-# globals - aggregate some configuration options
-#
-
-class Globals:
-
- # The current version of rdiff-backup
- version = "0.8.0"
-
- # If this is set, use this value in seconds as the current time
- # instead of reading it from the clock.
- current_time = None
-
- # This determines how many bytes to read at a time when copying
- blocksize = 32768
-
- # This is used by the BufferedRead class to determine how many
- # bytes to request from the underlying file per read(). Larger
- # values may save on connection overhead and latency.
- conn_bufsize = 98304
-
- # True if script is running as a server
- server = None
-
- # uid and gid of the owner of the rdiff-backup process. This can
- # vary depending on the connection.
- process_uid = os.getuid()
- process_gid = os.getgid()
-
- # If true, when copying attributes, also change target's uid/gid
- change_ownership = None
-
- # If true, change the permissions of unwriteable mirror files
- # (such as directories) so that they can be written, and then
- # change them back. This defaults to 1 just in case the process
- # is not running as root (root doesn't need to change
- # permissions).
- change_mirror_perms = (process_uid != 0)
-
- # If true, temporarily change permissions of unreadable files in
- # the source directory to make sure we can read all files.
- change_source_perms = None
-
- # If true, try to reset the atimes of the source partition.
- preserve_atime = None
-
- # This will be set as soon as the LocalConnection class loads
- local_connection = None
-
- # All connections should be added to the following list, so
- # further global changes can be propagated to the remote systems.
- # The first element should be Globals.local_connection. For a
- # server, the second is the connection to the client.
- connections = []
-
- # Each process should have a connection number unique to the
- # session. The client has connection number 0.
- connection_number = 0
-
- # Dictionary pairing connection numbers with connections. Set in
- # SetConnections for all connections.
- connection_dict = {}
-
- # True if the script is the end that reads the source directory
- # for backups. It is true for purely local sessions.
- isbackup_reader = None
-
- # Connection of the real backup reader (for which isbackup_reader
- # is true)
- backup_reader = None
-
- # True if the script is the end that writes to the increment and
- # mirror directories. True for purely local sessions.
- isbackup_writer = None
-
- # Connection of the backup writer
- backup_writer = None
-
- # True if this process is the client invoked by the user
- isclient = None
-
- # Connection of the client
- client_conn = None
-
- # This list is used by the set function below. When a new
- # connection is created with init_connection, its Globals class
- # will match this one for all the variables mentioned in this
- # list.
- changed_settings = []
-
- # rdiff-backup will try to checkpoint its state every
- # checkpoint_interval seconds. Then when resuming, at most this
- # amount of time is lost.
- checkpoint_interval = 20
-
- # The RPath of the rdiff-backup-data directory.
- rbdir = None
-
- # Indicates if a resume or a lack of resume is forced. This
- # should be None for the default. 0 means don't resume, and 1
- # means resume.
- resume = None
-
- # If there has been an aborted backup fewer than this many seconds
- # ago, attempt to resume it where it left off instead of starting
- # a new one.
- resume_window = 7200
-
- # This string is used when recognizing and creating time strings.
- # If the time_separator is ":", then W3 datetime strings like
- # 2001-12-07T04:22:01-07:00 are produced. It can be set to "_" to
- # make filenames that don't contain colons, which aren't allowed
- # under MS windows NT.
- time_separator = ":"
-
- # quoting_enabled is true if we should quote certain characters in
- # filenames on the source side (see FilenameMapping for more
- # info). chars_to_quote is a string whose characters should be
- # quoted, and quoting_char is the character to quote with.
- quoting_enabled = None
- chars_to_quote = ""
- quoting_char = ';'
-
- # If true, emit output intended to be easily readable by a
- # computer. False means output is intended for humans.
- parsable_output = None
-
- # If true, then hardlinks will be preserved to mirror and recorded
- # in the increments directory. There is also a difference here
- # between None and 0. When restoring, None or 1 means to preserve
- # hardlinks iff can find a hardlink dictionary. 0 means ignore
- # hardlink information regardless.
- preserve_hardlinks = 1
-
- # If this is false, then rdiff-backup will not compress any
- # increments. Default is to compress based on regexp below.
- compression = 1
-
- # Increments based on files whose names match this
- # case-insensitive regular expression won't be compressed (applies
- # to .snapshots and .diffs). The second below will be the
- # compiled version of the first.
- no_compression_regexp_string = "(?i).*\\.(gz|z|bz|bz2|tgz|zip|rpm|deb|" \
- "jpg|gif|png|jp2|mp3|ogg|avi|wmv|mpeg|mpg|rm|mov)$"
- no_compression_regexp = None
-
- # If true, filelists and directory statistics will be split on
- # nulls instead of newlines.
- null_separator = None
-
- # Determines whether or not ssh will be run with the -C switch
- ssh_compression = 1
-
- # If true, print statistics after successful backup
- print_statistics = None
-
- # On the reader and writer connections, the following will be
- # replaced by the source and mirror Select objects respectively.
- select_source, select_mirror = None, None
-
- # On the backup writer connection, holds the main incrementing
- # function. Access is provided to increment error counts.
- ITR = None
-
- def get(cls, name):
- """Return the value of something in this class"""
- return cls.__dict__[name]
- get = classmethod(get)
-
- def is_not_None(cls, name):
- """Returns true if value is not None"""
- return cls.__dict__[name] is not None
- is_not_None = classmethod(is_not_None)
-
- def set(cls, name, val):
- """Set the value of something in this class
-
- Use this instead of writing the values directly if the setting
- matters to remote sides. This function updates the
- changed_settings list, so other connections know to copy the
- changes.
-
- """
- cls.changed_settings.append(name)
- cls.__dict__[name] = val
- set = classmethod(set)
-
- def set_integer(cls, name, val):
- """Like set, but make sure val is an integer"""
- try: intval = int(val)
- except ValueError:
- Log.FatalError("Variable %s must be set to an integer -\n"
- "received %s instead." % (name, val))
- cls.set(name, intval)
- set_integer = classmethod(set_integer)
-
- def get_dict_val(cls, name, key):
- """Return val from dictionary in this class"""
- return cls.__dict__[name][key]
- get_dict_val = classmethod(get_dict_val)
-
- def set_dict_val(cls, name, key, val):
- """Set value for dictionary in this class"""
- cls.__dict__[name][key] = val
- set_dict_val = classmethod(set_dict_val)
-
- def postset_regexp(cls, name, re_string, flags = None):
- """Compile re_string on all existing connections, set to name"""
- for conn in Globals.connections:
- conn.Globals.postset_regexp_local(name, re_string, flags)
- postset_regexp = classmethod(postset_regexp)
-
- def postset_regexp_local(cls, name, re_string, flags):
- """Set name to compiled re_string locally"""
- if flags: cls.__dict__[name] = re.compile(re_string, flags)
- else: cls.__dict__[name] = re.compile(re_string)
- postset_regexp_local = classmethod(postset_regexp_local)
-
- def set_select(cls, dsrpath, tuplelist, quote_mode, *filelists):
- """Initialize select object using tuplelist
-
- Note that each list in filelists must each be passed as
- separate arguments, so each is recognized as a file by the
- connection. Otherwise we will get an error because a list
- containing files can't be pickled.
-
- """
- if dsrpath.source:
- cls.select_source = Select(dsrpath, quote_mode)
- cls.select_source.ParseArgs(tuplelist, filelists)
- else:
- cls.select_mirror = Select(dsrpath, quote_mode)
- cls.select_mirror.ParseArgs(tuplelist, filelists)
- set_select = classmethod(set_select)