diff options
author | Holger Weiß <holger@zedat.fu-berlin.de> | 2011-06-30 00:01:32 +0200 |
---|---|---|
committer | Holger Weiß <holger@zedat.fu-berlin.de> | 2011-06-30 00:01:32 +0200 |
commit | 4f8f651c4b9243792723aa9669306d3e9ce0cafd (patch) | |
tree | 943da4e7fec77e201801c21693110259b22b151f /src/sbin/bcfg2-reports | |
parent | 35a2fb21cea7e6156737ef65e49ee51376a22c74 (diff) | |
download | bcfg2-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-x | src/sbin/bcfg2-reports | 84 |
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() |