File 0110-Handle-exception-during-non-existent-files.patch of Package lio-utils.216
From 981500a47c4dd1821b1511ed300896ecdaa5eb48 Mon Sep 17 00:00:00 2001
From: Ritesh Raj Sarraf <rrs@researchut.com>
Date: Thu, 10 May 2012 17:47:14 +0530
Subject: Handle exception during non-existent files
This could occur if the kernel moduel is not loaded
Also fix, major typo, where I completely missed the try:
block in the previously submitted patch. Sorry.
Signed-off-by: Ritesh Raj Sarraf <rrs@researchut.com>
Signed-off-by: Nicholas Bellinger <nab@risingtidesystems.com>
---
tcm-py/tcm_fabric.py | 37 ++++++++++++++++++++-----------------
tcm-py/tcm_node.py | 21 ++++++++++++---------
2 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/tcm-py/tcm_fabric.py b/tcm-py/tcm_fabric.py
index 2bdc77a..4e6dab1 100755
--- a/tcm-py/tcm_fabric.py
+++ b/tcm-py/tcm_fabric.py
@@ -9,6 +9,10 @@ import optparse
target_root = "/sys/kernel/config/target/"
spec_root = "/var/target/fabric/"
+def fabric_err(msg):
+ print >> sys.stderr, msg
+ sys.exit(1)
+
def fabric_configfs_dump(fabric_name, fabric_root, module_name):
if not os.path.isdir(fabric_root):
@@ -455,28 +459,27 @@ def fabric_unloadall():
module_name = ""
- for fabric_name in os.listdir(target_root):
- if fabric_name == "version":
- continue
- if fabric_name == "core":
- continue
- # FIXME: currently using lio_node --unload
- if fabric_name == "iscsi":
- continue
+ try:
+ for fabric_name in os.listdir(target_root):
+ if fabric_name == "version":
+ continue
+ if fabric_name == "core":
+ continue
+ # FIXME: currently using lio_node --unload
+ if fabric_name == "iscsi":
+ continue
- fabric_root = target_root + fabric_name
- module_name = fabric_get_module_name(fabric_name)
-# print "fabric_get_module_name() using: " + module_name
+ fabric_root = target_root + fabric_name
+ module_name = fabric_get_module_name(fabric_name)
+ #print "fabric_get_module_name() using: " + module_name
- if module_name == "":
- continue
+ if module_name == "":
+ continue
- fabric_unload(fabric_name, fabric_root, module_name)
+ fabric_unload(fabric_name, fabric_root, module_name)
except OSError, (errno, strerror):
if errno == 2:
- print "%s %s\n" % (target_root, strerror)
- print "Is kernel module loaded?\n"
- exit 1
+ fabric_err("%s %s\n%s" % (target_root, strerror, "Is kernel module loaded?") )
def do_work(stdout_enable, stdout_enable_all, date_time, unload, unloadall, fabric_name, fabric_root, module_name):
diff --git a/tcm-py/tcm_node.py b/tcm-py/tcm_node.py
index b7c05cf..997009c 100755
--- a/tcm-py/tcm_node.py
+++ b/tcm-py/tcm_node.py
@@ -23,19 +23,22 @@ def tcm_err(msg):
sys.exit(1)
def tcm_read(filename):
- with open(filename) as f:
- return f.read()
+ try:
+ with open(filename) as f:
+ return f.read()
except IOError, (errno, strerror):
if errno == 2:
- print "%s %s\n" % (filename, strerror)
- print "Is kernel module loaded?\n"
- exit 1
+ tcm_err("%s %s\n%s" % (filename, strerror, "Is kernel module loaded?") )
def tcm_write(filename, value, newline=True):
- with open(filename, "w") as f:
- f.write(value)
- if newline:
- f.write("\n")
+ try:
+ with open(filename, "w") as f:
+ f.write(value)
+ if newline:
+ f.write("\n")
+ except IOError, (errno, strerror):
+ if errno == 2:
+ tcm_err("%s %s\n%s" % (filename, strerror, "Is kernel module loaded?") )
def tcm_full_path(arg):
return tcm_root + "/" + arg
--
1.8.1.4