aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sos/plugins/ovirt_engine_backup.py52
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 :