File 0029-tcm_dump-Implement-file-option.patch of Package lio-utils.216

From 215ca5050fe994e6617fe0e1e80036f8c0f1e2e0 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 15 May 2014 10:11:12 +0200
Subject: tcm_dump: Implement '--file' option

Implement a '--file' option to dump the script into a file.
This is required for systemd integration as the systemd unit
syntax doesn't support redirection.

References: bnc#876881

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
 tcm-py/tcm_dump.py | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/tcm-py/tcm_dump.py b/tcm-py/tcm_dump.py
index 9e182b1..27644e4 100755
--- a/tcm-py/tcm_dump.py
+++ b/tcm-py/tcm_dump.py
@@ -264,6 +264,37 @@ def tcm_backup_to_file(option, opt_str, value, parser):
 	back.close()
 	return backup_file
 
+def tcm_dump_to_file(option, opt_str, value, parser):
+	dump_file = str(value)
+
+	op = "tcm_dump --stdout"
+	p = sub.Popen(op, shell=True, stdout=sub.PIPE).stdout
+	if not p:
+		print "Unable to dump Target_Core_Mod/ConfigFS running state"
+		sys.exit(1)
+
+	try:
+		back = open(dump_file, 'w+')
+	except IOError:
+		print "cannot open " + dump_file
+		p.close()
+		sys.exit(1)
+	else:
+		line = p.readline()
+		while line:
+			print >>back, line.rstrip()
+			line = p.readline()
+
+		back.close()
+
+	p.close()
+	op = "chmod 755 " + dump_file
+	ret = os.system(op)
+	if ret:
+		print "Unable to mark " + dump_file + " as executable"
+
+	return dump_file
+
 def tcm_full_backup(option, opt_str, value, parser):
 	overwrite = str(value)
 
@@ -332,6 +363,8 @@ def main():
 		help="Dump running Target_Core_Mod/ConfigFS syntax to STDOUT")
 	parser.add_option("--t", "--tofile", action="callback", callback=tcm_backup_to_file, nargs=1,
 		type="string", dest="DATE_TIME", help="Backup running Target_Core_Mod/ConfigFS syntax to /etc/target/backup/tcm_backup-<DATE_TIME>.sh")
+        parser.add_option("--f", "--file", action="callback", callback=tcm_dump_to_file, nargs=1,
+		type="string", dest="DUMP_FILE", help="Save running Target_Core_Mod/ConfigFS syntax to <DUMP_FILE>")
 
 	(options, args) = parser.parse_args()
 	if len(sys.argv) == 1:
-- 
1.7.12.4

openSUSE Build Service is sponsored by