Fri, 21 Jun 2013 16:07:45 +0200 [server/session] do not clear session.cnx if unrelated to cnx actually cleared
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Jun 2013 16:07:45 +0200] rev 9047
[server/session] do not clear session.cnx if unrelated to cnx actually cleared The cnx parameter may be different from the one actually loaded for the current thread. This will be possible in future commit when you close a client connection for example.
Mon, 24 Jun 2013 14:55:26 +0200 [dbapi] move ProgrammingError into cubicweb module
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 14:55:26 +0200] rev 9046
[dbapi] move ProgrammingError into cubicweb module A new ``repoapi`` will be introduced as a replacement for the dbapi. It will need ProgrammingError too. Related to #2503918
Mon, 17 Jun 2013 15:00:41 +0200 [repoapi] move get_repository function into a new repoapi module
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 17 Jun 2013 15:00:41 +0200] rev 9045
[repoapi] move get_repository function into a new repoapi module This new module aims to host the function of the new API replacing the old DBAPI. `get_repository` is still needed hence moved to the new module. Related to #2503918
Thu, 20 Jun 2013 16:19:27 +0200 [testlib] gather all repository access logic in one place
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Jun 2013 16:19:27 +0200] rev 9044
[testlib] gather all repository access logic in one place Refactoring of the repository access API in test is imminent. We plan to move from the "old" dbapi to the new repoapi. Gathering all impacted method in one place help to understand how all those method interact and help readability for both patch and resulting code. No code change is done at all in this changeset. The refactoring will code later.
Thu, 20 Jun 2013 16:00:07 +0200 [testlib] move repo and related attribute back on Instance instead of Class
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Jun 2013 16:00:07 +0200] rev 9043
[testlib] move repo and related attribute back on Instance instead of Class The repo and cnx was hold by the TestCase class to work as a cache and avoid recreation of the repo from scratch of each test. However since bad26a22fe29 the caching is done by the DatabaseHandler object and it is not necessary have a second layer of cache on the TestCase itself. We move the repo and cnx attribute back on the TestCase instance itself and make several class methods instance methods again. This will helps to change dbapi access in test from dbapi to repoapi. related to #2503918
Mon, 24 Jun 2013 14:53:19 +0200 [dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 14:53:19 +0200] rev 9042
[dbapi] makes anonymous_connection a computed property The current implementation is a boolean flag set manually by client code after connection creation. This led to different way to decide a anonymous_connection should be True (eg. different in the test than in the actual application code). It should not be client responsibility to set this flag. ``cnx.anonymous_connection`` is now a purely computed property. Connection with user in the "guests" group are anonymous, the other ain't. ``Session.anonymous_session`` is computed from ``cnx.anonymous_connection`` and get the updated behavior transparently. Closes #2953943
Mon, 24 Jun 2013 11:31:47 +0200 [webrequest] simplify set_session code
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 11:31:47 +0200] rev 9041
[webrequest] simplify set_session code Thanks to the previous changeset we are assured that session handed to set_session is full featured one. This allows a simpler code for this method. related to #2503918
Fri, 21 Jun 2013 16:28:16 +0200 [webrequest] set DBAPISession without cnx at initialisation time
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Jun 2013 16:28:16 +0200] rev 9040
[webrequest] set DBAPISession without cnx at initialisation time Such session are necessary for minimal use of a Request. Setting on by default allow simplification later linking with a full featured DBAPISession or equivalent. This was not possible before as all session was tracked by session manager. They are not tracked anymore since aa709bc6b6c1 and we can safely create them by default. related to #2503918
Mon, 24 Jun 2013 12:41:27 +0200 [testlib] rework request building in init_authentication
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 12:41:27 +0200] rev 9039
[testlib] rework request building in init_authentication The previous code was building a full authenticated request and tried to undo the authentication afterward. The new code just create a bare Request with no authenticated session linked yet. This is much closer of what the actual authentication process does.
Mon, 24 Jun 2013 12:39:25 +0200 [request] drop the user argument for set_session
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 12:39:25 +0200] rev 9038
[request] drop the user argument for set_session I see no code nor test that use this optional argument. removing it help to clean the session code. The set_session function will soon be deprecated anyway (at the same time than the dbapi) related to #2503918
Wed, 19 Jun 2013 12:00:54 +0200 [web-request] handle default language earlier
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Jun 2013 12:00:54 +0200] rev 9037
[web-request] handle default language earlier We now read language negotiation header at initialisation time (previously done during ``set_session``). This simplify the set_session code for later reworking. There is no change in behavior, the user selected language continue to overwrite the one picked from the header/default when applicable. related to #2503918
Tue, 18 Jun 2013 15:12:25 +0200 [etwist] pass the repository to the root resource
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Jun 2013 15:12:25 +0200] rev 9036
[etwist] pass the repository to the root resource This is another step toward a cleaner instantiation scheme for the repo. The http test now pass an already created object to the etwist server instead of relying on the config cache. Related to #2249513
Mon, 24 Jun 2013 12:03:37 +0200 [repo] move repo.gc_stats to Service API (closes #2951068)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 12:03:37 +0200] rev 9035
[repo] move repo.gc_stats to Service API (closes #2951068) We currently have a method on the repo that anyone can call. `call_service` gives a similar thing, modulo: * can be restricted access to manager only (thanks to selection on services), * less unrelated code on the repository class, * no need to fetch a reference to a repo object from the client side * (`req._cnx.repo` is not an API and config.repository() is on its way out). The old way to access this information (repo.gc_stats()) is deprecated.
Mon, 24 Jun 2013 12:05:35 +0200 [repo] move repo stats to Service (closes #2951067)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 12:05:35 +0200] rev 9034
[repo] move repo stats to Service (closes #2951067) We currently add a new method on repo that anyone can call. Call service allows to reach the same result with: * Restricted access to manager only (thanks to selection on services), * Less unrelated code on the repo. * No need to fetch a reference to a repo object from client side. `req._cnx.repo` is not an API and config.repository() is on its way out. The old way to access this information (repo.stats()) is deprecated.
Mon, 24 Jun 2013 11:59:45 +0200 [service] drop the asynchronous execution possibility
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 11:59:45 +0200] rev 9033
[service] drop the asynchronous execution possibility Call_service was able of both sync and sync execution making the API confusing. There is not user of the async case. We drop the async argument in favor of synchronous execution only. This makes call_service the official API to call server side code from the client side. This is a remplacement for the usual monkey patching of the repo object. The zmq notification bus is a solid alternative for codes that needs to start an async execution.
Mon, 24 Jun 2013 12:00:03 +0200 [auth] pass `repo` instead of `vreg` to SessionManager and AuthenticationManager
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Jun 2013 12:00:03 +0200] rev 9032
[auth] pass `repo` instead of `vreg` to SessionManager and AuthenticationManager Those object actually need a repo object to connect and create new session object. They used to retrieve the repo object using ``vreg.config.repository()``. I'm trying to sanitise the initialisation stack and get ride of ``config.repository()``, a function that mix factory and cache. Retrieving the vreg from the repo is trivial (``repo.vreg``) so we now pass the repo object instead of the vreg.
Fri, 23 Nov 2012 16:12:19 +0100 web/application: instantiate the repository outside of CubicWebPublisher
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 23 Nov 2012 16:12:19 +0100] rev 9031
web/application: instantiate the repository outside of CubicWebPublisher This improves decoupling and allows ``CubicWebPublisher`` user to choose which argument are used during ``Repository`` instantiation. In particular is allows caller to provide a ``TaskManager``. The `vreg` argument of publisher is made mandatory. See CubicWebPublisher docstring for details. Related to #2249513
Fri, 07 Dec 2012 17:23:04 +0100 remove vreg argument to CWPublisher
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 07 Dec 2012 17:23:04 +0100] rev 9030
remove vreg argument to CWPublisher The passing a vreg to CWPublisher was used by test to allow reused of an existing vreg. We dropped this feature two commit ago and can safely removes it. Removing this argument allows later cleanup and improvement on the CWPublisher and Repository front. closes #2944813
Fri, 07 Dec 2012 16:10:38 +0100 [devtools] vreg becomes a class ppty
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 07 Dec 2012 16:10:38 +0100] rev 9029
[devtools] vreg becomes a class ppty After multiple devtools refactoring, the vreg used for test is now *always* got from the repository. Making this explicit is a step toward simplification of the vreg handling during various initialisation phases. Related to #2944813
Fri, 23 Nov 2012 16:33:00 +0100 [devtools] drop unused `reset_schema` and `reset_vreg` class attribute
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 23 Nov 2012 16:33:00 +0100] rev 9028
[devtools] drop unused `reset_schema` and `reset_vreg` class attribute They have no effect and no user... Related to #2944813
Mon, 27 May 2013 17:50:55 +0200 [connection] move security control logic on Connection
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 27 May 2013 17:50:55 +0200] rev 9027
[connection] move security control logic on Connection The _security_enabled context manager now operate on connection. We have to keep a specific entry point in Session to ensure Connection object are properly cleaned up when using session to "manage" Connection live cycle. Related to #2503918
Fri, 14 Jun 2013 12:11:42 +0200 [connection] move hook control logic on Connection
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 14 Jun 2013 12:11:42 +0200] rev 9026
[connection] move hook control logic on Connection The _hook_control context manager now operate on connection. We have to keep a specific entry point in Session to ensure Connection object are properly cleaned up when using session to "manage" Connection live cycle. Related to #2503918
Fri, 14 Jun 2013 12:10:45 +0200 [session] update _hook_control docstring
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 14 Jun 2013 12:10:45 +0200] rev 9025
[session] update _hook_control docstring
Mon, 27 May 2013 16:43:02 +0200 [connection] reinstall cnx.data as cnx.transaction_data
pierre-yves [Mon, 27 May 2013 16:43:02 +0200] rev 9024
[connection] reinstall cnx.data as cnx.transaction_data Too much code expects self._cw.data to be session data. backout 9b2f68916474 Related to #2503918 Related to #2912807
Mon, 27 May 2013 16:42:39 +0200 [connection] give access to is_internal_session boolean
pierre-yves [Mon, 27 May 2013 16:42:39 +0200] rev 9023
[connection] give access to is_internal_session boolean Needed if we are to use this object like we currently do with session. Related to #2503918
Fri, 14 Jun 2013 13:39:49 +0200 [req] drop from_controller on non WebRequest object (Closes #2901079)
pierre-yves [Fri, 14 Jun 2013 13:39:49 +0200] rev 9022
[req] drop from_controller on non WebRequest object (Closes #2901079) The `controller` concept is purely a web things. It does not belong to generic `req` object. The `build_url` code is slightly changed to handle that. This probably requires extended cleanup later. This is a barely used and very internal API. No deprecation period
Tue, 14 May 2013 00:36:43 +0200 [connection] add logging method on connection
pierre-yves [Tue, 14 May 2013 00:36:43 +0200] rev 9021
[connection] add logging method on connection If we are to use this object like we currently do with session, we need to have the logging method as a lot of code use them.
Thu, 13 Jun 2013 15:12:06 +0200 rename server.session.transaction into server.session.connection
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Jun 2013 15:12:06 +0200] rev 9020
rename server.session.transaction into server.session.connection The ongoing rework of the API to access the database include the splitting of Session in two objects: The ``Session`` object will only hold credential (user) and global session data. A new object will publicly emerge to handle a database access. This object is named ``Connection`` since that the way database accessors with the same property are named in other system. So we renamed the ``Transaction`` object into ``Connection``. The ``Transaction`` object have already grown in the direction of something directly usable by generic code, but the name ``Transaction`` is ill suited as such object can be used for multiple database transaction in a row. Related to #2503918
Fri, 14 Jun 2013 13:43:29 +0200 [application] call req.set_session in application.main_handle_request
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 14 Jun 2013 13:43:29 +0200] rev 9019
[application] call req.set_session in application.main_handle_request The Session handling chain is no more responsible for calling req.set_session. It just returns a valid session and lets the caller link it to the Request. This opens the way to explicitly creating and closing a connection/transaction in ``application.main_handle_request``. Related to #2503918
Thu, 13 Jun 2013 18:46:39 +0200 [session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Jun 2013 18:46:39 +0200] rev 9018
[session-handler] use session directly to update last usage We don't really need the WebRequest for that. Not using the WebRequest to access the cubicweb repository here will allow a delayed set_session. Related to #2503918
(0) -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 tip