diff options
author | Prasanna Kumar Kalever <prasanna.kalever@redhat.com> | 2017-12-15 17:23:25 +0530 |
---|---|---|
committer | Prasanna Kumar Kalever <prasanna.kalever@redhat.com> | 2017-12-20 12:58:06 +0530 |
commit | bf75323d7d678f01c21d0c9825bd55553727e934 (patch) | |
tree | 93186284ba1be546fe13dc4bb5c36fb218757661 | |
parent | bd3b2b50d741848a748830d9a1a7ee642e8d40d3 (diff) | |
download | targetcli-bf75323d7d678f01c21d0c9825bd55553727e934.tar.gz |
backup: global option to tune max no. of backup conf files
Eg:
/> set global max_backup_files=1000
Parameter max_backup_files is now '1000'.
If 'max_backup_files' is set in /etc/target/targetcli.conf, then max value
between conf file setting and global option settings is considered.
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
-rwxr-xr-x | scripts/targetcli | 1 | ||||
-rw-r--r-- | targetcli/ui_node.py | 3 | ||||
-rw-r--r-- | targetcli/ui_root.py | 8 |
3 files changed, 9 insertions, 3 deletions
diff --git a/scripts/targetcli b/scripts/targetcli index 5404fcd..371edbe 100755 --- a/scripts/targetcli +++ b/scripts/targetcli @@ -49,6 +49,7 @@ class TargetCLI(ConfigShell): 'auto_add_mapped_luns': True, 'auto_cd_after_create': False, 'auto_save_on_exit': True, + 'max_backup_files': '10', 'auto_add_default_portal': True, } diff --git a/targetcli/ui_node.py b/targetcli/ui_node.py index c91dae2..a6982f1 100644 --- a/targetcli/ui_node.py +++ b/targetcli/ui_node.py @@ -46,6 +46,9 @@ class UINode(ConfigNode): self.define_config_group_param( 'global', 'auto_add_default_portal', 'bool', 'If true, adds a portal listening on all IPs to new targets.') + self.define_config_group_param( + 'global', 'max_backup_files', 'string', + 'Max no. of configurations to be backed up in /etc/target/backup/ directory.') def assert_root(self): ''' diff --git a/targetcli/ui_root.py b/targetcli/ui_root.py index f84d33d..a54845f 100644 --- a/targetcli/ui_root.py +++ b/targetcli/ui_root.py @@ -35,7 +35,6 @@ from .ui_target import UIFabricModule default_save_file = "/etc/target/saveconfig.json" universal_prefs_file = "/etc/target/targetcli.conf" -default_kept_backups = 10 class UIRoot(UINode): ''' @@ -99,12 +98,15 @@ class UIRoot(UINode): if backup_error == None: # Kill excess backups + max_backup_files = int(self.shell.prefs['max_backup_files']) + try: with open(universal_prefs_file) as prefs: backups = [line for line in prefs.read().splitlines() if re.match('^max_backup_files\s*=', line)] - max_backup_files = int(backups[0].split('=')[1].strip()) + if max_backup_files < int(backups[0].split('=')[1].strip()): + max_backup_files = int(backups[0].split('=')[1].strip()) except: - max_backup_files = default_kept_backups + self.shell.log.debug("No universal prefs file '%s'." % universal_prefs_file) files_to_unlink = list(reversed(backed_files_list))[max_backup_files:] for f in files_to_unlink: |