You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by mx...@apache.org on 2017/05/11 11:44:48 UTC
[07/12] incubator-ariatosca git commit: better handling
better handling
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/1e798b5c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/1e798b5c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/1e798b5c
Branch: refs/heads/ARIA-213-Sporadic-tests-failures-over-locked-database-issue
Commit: 1e798b5c9d591f39aad6c8a20528839911b7e5b6
Parents: f523dfb
Author: max-orlov <ma...@gigaspaces.com>
Authored: Wed May 10 19:27:40 2017 +0300
Committer: max-orlov <ma...@gigaspaces.com>
Committed: Thu May 11 14:28:49 2017 +0300
----------------------------------------------------------------------
aria/storage/instrumentation.py | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/1e798b5c/aria/storage/instrumentation.py
----------------------------------------------------------------------
diff --git a/aria/storage/instrumentation.py b/aria/storage/instrumentation.py
index b1e9cd7..b0738c8 100644
--- a/aria/storage/instrumentation.py
+++ b/aria/storage/instrumentation.py
@@ -102,13 +102,11 @@ class _Instrumentation(object):
session.expunge(instance)
tracked_instances = self.new_instances.setdefault(instance.__modelname__, {})
tracked_attributes = tracked_instances.setdefault(self._new_instance_id, {})
- # TODO: we need a better way to get all of the attributes
- tracked_attributes.update(execution_fk=instance.execution_fk,
- task_fk=instance.task_fk,
- **instance.to_dict())
- listener_args = (getattr(ctx.model, instrumented_class.__tablename__)._session,
- 'after_attach',
- listener)
+ instance_as_dict = instance.to_dict()
+ instance_as_dict.update((k, getattr(instance, k)) for k in instance.__private_fields__)
+ tracked_attributes.update(instance_as_dict)
+ session = getattr(ctx.model, instrumented_class.__tablename__)._session
+ listener_args = (session, 'after_attach', listener)
sqlalchemy.event.listen(*listener_args)
self.listeners.append(listener_args)