diff options
author | Miguel Martin <mmartinv@redhat.com> | 2020-03-11 11:43:51 +0100 |
---|---|---|
committer | Jake Hunsaker <jhunsake@redhat.com> | 2020-03-24 11:33:13 -0400 |
commit | a24096149814aac8f0eb3b4fcfaff60b982812f3 (patch) | |
tree | 870c94e2804ef55d421f262ab86a14e46d3bc7bb | |
parent | 83e0b956cf1c220fa749a7ead863fc347f1f5c84 (diff) | |
download | sos-3.9.1.tar.gz |
[ovirt_engine_backup] Add a new "ovirt_engine_backup" plugin3.9.1
Add a new plugin to retrieve an oVirt engine database backup.
Resolves: #1977
Signed-off-by: Miguel Martin <mmartinv@redhat.com>
Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
-rw-r--r-- | sos/plugins/ovirt_engine_backup.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/sos/plugins/ovirt_engine_backup.py b/sos/plugins/ovirt_engine_backup.py new file mode 100644 index 00000000..76b35799 --- /dev/null +++ b/sos/plugins/ovirt_engine_backup.py @@ -0,0 +1,52 @@ +# Copyright (C) 2019 Red Hat, Inc., Miguel Martin <mmartinv@redhat.com> + +# This file is part of the sos project: https://github.com/sosreport/sos +# +# This copyrighted material is made available to anyone wishing to use, +# modify, copy, or redistribute it subject to the terms and conditions of +# version 2 of the GNU General Public License. +# +# See the LICENSE file in the source distribution for further information. + +import os +from sos.plugins import (Plugin, RedHatPlugin) +from datetime import datetime + + +class oVirtEngineBackup(Plugin, RedHatPlugin): + """oVirt Engine database backup""" + + packages = ("ovirt-engine-tools-backup",) + plugin_name = "ovirt_engine_backup" + option_list = [ + ("backupdir", "Directory where the backup is generated", + "fast", "/var/lib/ovirt-engine-backup"), + ("tmpdir", "Directory where the intermediate files are generated", + "fast", '/tmp'), + ] + profiles = ("virt",) + + def setup(self): + now = datetime.now().strftime("%Y%m%d%H%M%S") + backup_filename = os.path.join( + self.get_option("backupdir"), + "engine-db-backup-%s.tar.gz" % (now) + ) + log_filename = os.path.join( + self.get_option("backupdir"), + "engine-db-backup-%s.log" % (now) + ) + cmd = ("engine-backup --mode=backup --scope=db" + " --file=%s --log=%s --tmpdir=%s") % ( + backup_filename, + log_filename, + self.get_option("tmpdir") + ) + res = self.collect_cmd_output(cmd, suggest_filename="engine-backup") + if res['status'] == 0: + self.add_copy_spec([ + backup_filename, + log_filename + ]) + +# vim: set et ts=4 sw=4 : |