added few rollbacks to ftrack actions and events to prevent uncommitable session

This commit is contained in:
iLLiCiTiT 2019-11-19 19:24:24 +01:00
parent 9924231834
commit 4326e2b91e
8 changed files with 16 additions and 10 deletions

View file

@ -108,6 +108,7 @@ class JobKiller(BaseAction):
'Changing Job ({}) status: {} -> failed'
).format(job['id'], origin_status))
except Exception:
session.rollback()
self.log.warning((
'Changing Job ({}) has failed'
).format(job['id']))

View file

@ -43,7 +43,7 @@ class ThumbToChildren(BaseAction):
'description': 'Push thumbnails to Childrens'
})
})
session.commit()
try:
for entity in entities:
thumbid = entity['thumbnail_id']
@ -53,10 +53,11 @@ class ThumbToChildren(BaseAction):
# inform the user that the job is done
job['status'] = 'done'
except Exception:
except Exception as exc:
session.rollback()
# fail the job if something goes wrong
job['status'] = 'failed'
raise
raise exc
finally:
session.commit()

View file

@ -40,9 +40,9 @@ class ThumbToParent(BaseAction):
'status': 'running',
'data': json.dumps({
'description': 'Push thumbnails to parents'
})
})
})
session.commit()
try:
for entity in entities:
parent = None
@ -74,10 +74,11 @@ class ThumbToParent(BaseAction):
# inform the user that the job is done
job['status'] = status or 'done'
except Exception as e:
except Exception as exc:
session.rollback()
# fail the job if something goes wrong
job['status'] = 'failed'
raise e
raise exc
finally:
session.commit()

View file

@ -80,10 +80,10 @@ class NextTaskUpdate(BaseEvent):
'>>> [ {} ] updated to [ Ready ]'
).format(path))
except Exception as e:
session.rollback()
self.log.warning((
'!!! [ {} ] status couldnt be set: [ {} ]'
).format(path, e))
session.rollback()
).format(path, str(e)), exc_info=True)
def register(session, plugins_presets):

View file

@ -101,7 +101,7 @@ class Sync_to_Avalon(BaseEvent):
avalon_project = result['project']
except Exception as e:
session.reset() # reset session to clear it
session.rollback() # reset session to clear it
message = str(e)
title = 'Hey You! Unknown Error has been raised! (*look below*)'

View file

@ -62,6 +62,7 @@ class VersionToTaskStatus(BaseEvent):
task['status'] = task_status
session.commit()
except Exception as e:
session.rollback()
self.log.warning('!!! [ {} ] status couldnt be set:\
[ {} ]'.format(path, e))
else:

View file

@ -128,6 +128,7 @@ class BaseHandler(object):
try:
return func(*args, **kwargs)
except Exception as exc:
self.session.rollback()
msg = '{} "{}": Failed ({})'.format(self.type, label, str(exc))
self.log.error(msg, exc_info=True)
return {

View file

@ -26,6 +26,7 @@ class BaseEvent(BaseHandler):
try:
func(*args, **kwargs)
except Exception as exc:
self.session.rollback()
self.log.error(
'Event "{}" Failed: {}'.format(
self.__class__.__name__, str(exc)