Merge "debsentry.py: capture exceptions"
This commit is contained in:
commit
bfc418202a
@ -18,28 +18,38 @@ import pickle
|
||||
|
||||
|
||||
def get_subdebs(clue, package, logger):
|
||||
if not os.path.exists(clue):
|
||||
logger.warn("debs_entry:debs clue %s does not exist" % clue)
|
||||
return None
|
||||
|
||||
with open(clue, 'rb') as fclue:
|
||||
debs = pickle.load(fclue)
|
||||
if package in debs.keys():
|
||||
return debs[package]
|
||||
return None
|
||||
try:
|
||||
with open(clue, 'rb') as fclue:
|
||||
try:
|
||||
debs = pickle.load(fclue)
|
||||
if package in debs.keys():
|
||||
return debs[package]
|
||||
except (EOFError, ValueError, AttributeError, ImportError, IndexError, pickle.UnpicklingError) as e:
|
||||
logger.warn(f"debs_entry:failed to load {clue}, return None")
|
||||
except IOError:
|
||||
logger.warn(f"debs_entry:{clue} does not exist")
|
||||
return None
|
||||
|
||||
|
||||
def set_subdebs(clue, package, debs, logger):
|
||||
debmap = {}
|
||||
if os.path.exists(clue):
|
||||
try:
|
||||
with open(clue, 'rb') as fclue:
|
||||
debmap = pickle.load(fclue)
|
||||
logger.debug("debs_entry:loaded the debs clue %s" % clue)
|
||||
else:
|
||||
logger.debug("debs_entry:%s does not exist" % clue)
|
||||
try:
|
||||
debmap = pickle.load(fclue)
|
||||
logger.debug(f"debs_entry:loaded the debs clue {clue}")
|
||||
except (EOFError, ValueError, AttributeError, ImportError, IndexError, pickle.UnpicklingError) as e:
|
||||
logger.warn(f"debs_entry:failed to load {clue}, recreate it")
|
||||
os.remove(clue)
|
||||
debmap = {}
|
||||
except IOError:
|
||||
logger.debug(f"debs_entry:{clue} does not exist")
|
||||
|
||||
debmap[package] = debs
|
||||
with open(clue, 'wb+') as fclue:
|
||||
pickle.dump(debmap, fclue, pickle.HIGHEST_PROTOCOL)
|
||||
try:
|
||||
with open(clue, 'wb+') as fclue:
|
||||
pickle.dump(debmap, fclue, pickle.HIGHEST_PROTOCOL)
|
||||
except IOError:
|
||||
raise Exception(f"debs_entry:failed to write {clue}")
|
||||
|
||||
return True
|
||||
|
Loading…
x
Reference in New Issue
Block a user