]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Don't pass 'session' arg to public DB API methods
authorRoman Podolyaka <rpodolyaka@mirantis.com>
Thu, 27 Jun 2013 15:34:21 +0000 (18:34 +0300)
committerRoman Podolyaka <rpodolyaka@mirantis.com>
Mon, 8 Jul 2013 14:48:01 +0000 (17:48 +0300)
commitb3c0ec6defe98adfe24c2f40ae62f9c9acd959ae
tree270dba369a47b0f13e7d84d9a1d864daa5a0b5e1
parentca0e7295f44235c7d64954a225a172718a074dd8
Don't pass 'session' arg to public DB API methods

DB API is an abstraction layer, which is used to make it
possible to switch DB backends easily (though we've got only
SQLAlchemy backend at the moment).

Public methods of DB API should not accept any backend-specific
arguments (i. e. a Session instance, that is an SQLAlchemy entity
to work with DB transactions).

This patch removes 'session' argument from all DB API public methods
(except volume_data_get_for_project() and snapshot_data_get_fro_project(),
which are a bit tricky and will be fixed by another patch).

If a DB API method must be called by another one in the context of a started
transaction, a private method is used. It accepts the same arguments as the
corresponding public method plus one additional argument to pass the transactional
context (in case of SQLAlchemy backend it's a Session instance).

Blueprint: db-session-cleanup

Change-Id: Iabe7ea834ec07f6520614de2461b9ad1ab7a7ac2
cinder/db/api.py
cinder/db/sqlalchemy/api.py
cinder/tests/test_quota.py