diff options
-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 : |