From 4f8f651c4b9243792723aa9669306d3e9ce0cafd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Wei=C3=9F?= Date: Thu, 30 Jun 2011 00:01:32 +0200 Subject: 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. --- src/sbin/bcfg2-reports | 84 ++++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 36 deletions(-) (limited to 'src') 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() -- cgit v1.2.3-1-g7c22