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)