summaryrefslogtreecommitdiffstats
path: root/src/sbin/bcfg2-reports
diff options
context:
space:
mode:
authorHolger Weiß <holger@zedat.fu-berlin.de>2011-06-30 00:01:32 +0200
committerHolger Weiß <holger@zedat.fu-berlin.de>2011-06-30 00:01:32 +0200
commit4f8f651c4b9243792723aa9669306d3e9ce0cafd (patch)
tree943da4e7fec77e201801c21693110259b22b151f /src/sbin/bcfg2-reports
parent35a2fb21cea7e6156737ef65e49ee51376a22c74 (diff)
downloadbcfg2-4f8f651c4b9243792723aa9669306d3e9ce0cafd.tar.gz
bcfg2-4f8f651c4b9243792723aa9669306d3e9ce0cafd.tar.bz2
bcfg2-4f8f651c4b9243792723aa9669306d3e9ce0cafd.zip
bcfg2-reports: Catch "--badentry=/tmp/nonexistent"
Catch I/O errors which might occur while reading a file specified as argument to --badentry, --extraentry, or --modifiedentry.
Diffstat (limited to 'src/sbin/bcfg2-reports')
-rwxr-xr-xsrc/sbin/bcfg2-reports84
1 files changed, 48 insertions, 36 deletions
diff --git a/src/sbin/bcfg2-reports b/src/sbin/bcfg2-reports
index 57c3f50d1..6acdd27e3 100755
--- a/src/sbin/bcfg2-reports
+++ b/src/sbin/bcfg2-reports
@@ -302,18 +302,22 @@ else:
elif badentry != "":
if len(badentry) == 1:
fileread = fileinput.input(badentry[0])
- for line in fileread:
- badentry = line.strip().split(',')
- for c_inst in c_list:
- baditems = c_inst.current_interaction.bad()
- for item in baditems:
- if item.entry.name == badentry[1] and item.entry.kind == badentry[0]:
- result.append(c_inst)
- if c_inst in entrydict:
- entrydict.get(c_inst).append(badentry[1])
- else:
- entrydict[c_inst] = [badentry[1]]
- break
+ try:
+ for line in fileread:
+ badentry = line.strip().split(',')
+ for c_inst in c_list:
+ baditems = c_inst.current_interaction.bad()
+ for item in baditems:
+ if item.entry.name == badentry[1] and item.entry.kind == badentry[0]:
+ result.append(c_inst)
+ if c_inst in entrydict:
+ entrydict.get(c_inst).append(badentry[1])
+ else:
+ entrydict[c_inst] = [badentry[1]]
+ break
+ except IOError:
+ e = sys.exc_info()[1]
+ print("Cannot read %s: %s" % (e.filename, e.strerror))
else:
for c_inst in c_list:
baditems = c_inst.current_interaction.bad()
@@ -324,18 +328,22 @@ else:
elif modifiedentry != "":
if len(modifiedentry) == 1:
fileread = fileinput.input(modifiedentry[0])
- for line in fileread:
- modifiedentry = line.strip().split(',')
- for c_inst in c_list:
- modifieditems = c_inst.current_interaction.modified()
- for item in modifieditems:
- if item.entry.name == modifiedentry[1] and item.entry.kind == modifiedentry[0]:
- result.append(c_inst)
- if c_inst in entrydict:
- entrydict.get(c_inst).append(modifiedentry[1])
- else:
- entrydict[c_inst] = [modifiedentry[1]]
- break
+ try:
+ for line in fileread:
+ modifiedentry = line.strip().split(',')
+ for c_inst in c_list:
+ modifieditems = c_inst.current_interaction.modified()
+ for item in modifieditems:
+ if item.entry.name == modifiedentry[1] and item.entry.kind == modifiedentry[0]:
+ result.append(c_inst)
+ if c_inst in entrydict:
+ entrydict.get(c_inst).append(modifiedentry[1])
+ else:
+ entrydict[c_inst] = [modifiedentry[1]]
+ break
+ except IOError:
+ e = sys.exc_info()[1]
+ print("Cannot read %s: %s" % (e.filename, e.strerror))
else:
for c_inst in c_list:
modifieditems = c_inst.current_interaction.modified()
@@ -346,18 +354,22 @@ else:
elif extraentry != "":
if len(extraentry) == 1:
fileread = fileinput.input(extraentry[0])
- for line in fileread:
- extraentry = line.strip().split(',')
- for c_inst in c_list:
- extraitems = c_inst.current_interaction.extra()
- for item in extraitems:
- if item.entry.name == extraentry[1] and item.entry.kind == extraentry[0]:
- result.append(c_inst)
- if c_inst in entrydict:
- entrydict.get(c_inst).append(extraentry[1])
- else:
- entrydict[c_inst] = [extraentry[1]]
- break
+ try:
+ for line in fileread:
+ extraentry = line.strip().split(',')
+ for c_inst in c_list:
+ extraitems = c_inst.current_interaction.extra()
+ for item in extraitems:
+ if item.entry.name == extraentry[1] and item.entry.kind == extraentry[0]:
+ result.append(c_inst)
+ if c_inst in entrydict:
+ entrydict.get(c_inst).append(extraentry[1])
+ else:
+ entrydict[c_inst] = [extraentry[1]]
+ break
+ except IOError:
+ e = sys.exc_info()[1]
+ print("Cannot read %s: %s" % (e.filename, e.strerror))
else:
for c_inst in c_list:
extraitems = c_inst.current_interaction.extra()