Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 10 Mar 2017 11:25:24 +0100] rev 12022
[repo] Drop no more used ShuttingDown exception
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 10 Mar 2017 11:55:16 +0100] rev 12021
[repo] Drop _get_session method
it's not actually necessary but holds underlying _sessions dict handling.
Drop backward compat relying on it (which IMO should not be a problem).
Drop import of unused QueryError along the way.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 09 Mar 2017 18:02:16 +0100] rev 12020
[test] Drop call to CubicWebConfiguration.load_cwctl_plugins in unittest_cwctl.py
This is no longer need now that we call load_available_configurations() in the
"list" command (see 5e7282bdf140).
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 09 Mar 2017 16:35:58 +0100] rev 12019
[web] Extract a base class out WebConfiguration
This will be used to build a CubicWebPyramidConfiguration in following
changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 09 Mar 2017 16:41:18 +0100] rev 12018
[tox] Drop reference to removed init_instance.py file in flake8-ok-files.txt
The file got removed in 1b9fd8bda1cd.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 10 Mar 2017 09:39:18 +0100] rev 12017
[web] Put 'use-uicache' option in level 2
So that users do not get prompted with this. Follow-up on c34590161082.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Feb 2017 08:56:38 +0100] rev 12016
[server] Add a "scheduler" command to run repository scheduler
This commands starts the repository scheduler as a standalone process that
should complement a CubicWeb web instance running as a WSGI application.
Added a log message in repository's shutdown method to help testing the
command (i.e. make sure the method is called after the scheduler stopped).
Related to #17057223.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 15:13:44 +0100] rev 12015
[cwconfig] Do not instantiate a repo with a scheduler in repository method
None of the caller of this method need the repository to have a scheduler and
having a scheduler should be something that's explicitly requested.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 14:50:00 +0100] rev 12014
[server] Make cubicweb/server/utils.py flake8-clean
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 14:38:52 +0100] rev 12013
[server] Drop utils's LoopTask and TasksManager classes not used anymore
Related to 17057223.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 13:23:33 +0100] rev 12012
[server] replace repository's tasks manager by a scheduler
Repository() does not accept anymore a 'tasks_manager' argument but rather a
'scheduler' argument which is expected to be an instance of sched.scheduler
class. The drop the _tasks_manager attribute of the repository and adjust all
internal usages of it. In particular, in the 'repo_stats' service we do not
export 'looping_tasks' statistics anymore as there's no way to retrieve this
anymore from a web instance.
Closes #17057223.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 13:21:50 +0100] rev 12011
[server] introduce a scheduler class to run repository "looping tasks"
We just use the sched module from the standard library and introduce a tiny
Python2/3 compatibility layer (more for convenience actually). The "looping"
aspect of tasks (previously in LoopTask class) is re-implemeted as a
`schedule_periodic_task` function. This is a reasonably thin layer as compared
to LoopTask/TasksManager classes. Only the "restart" aspect of LoopTask is no
longer present as I'm not sure it's worth keeping.
The advantage of using this (in addition to eventually dropping our custom
code) is that this scheduler class provides a `run` method that blocks the
process while running tasks in its queue. So we can rely on this to have a
'scheduler' ctl command (see forthcoming patch) that would only run "looping
tasks" without having to implement the "blocking" aspect ourself.
Related to #17057223.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Thu, 16 Feb 2017 11:15:23 +0100] rev 12010
web: add options to ignore css compilation and uicache
Samuel Trégouët <samuel.tregouet@logilab.fr> [Thu, 16 Feb 2017 10:56:45 +0100] rev 12009
[skeleton] call includeme from new cube
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 14:19:20 +0100] rev 12008
[etwist] Do not call repository's start_looping_tasks anymore and warn about this
We are about to drop this method from Repository class and replace it by a
blocking alternative. This is not compatible with how things currently work in
a Twisted server implementation. So do not start repository "looping tasks" in
Twisted server anymore and issue a warning about this.
If someone is interested in restoring the "all-in-one" behavior where the
repository runs within a Twisted server, they may start by implementing
repository looping tasks using a Twisted mechanism such as, e.g.,
http://twistedmatrix.com/documents/current/core/howto/time.html and eventually
provide the repository with a compatible scheduler instance so that is can
register its periodic tasks. At the moment, we lack resources to do this (and
maintain the Twisted server of CubicWeb in general).
Related to #17057223.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 09 Mar 2017 09:16:00 +0100] rev 12007
[test] Flake8-clean and use stdlib unittest in cubicweb/server/test/unittest_utils.py
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 07 Mar 2017 12:08:39 +0100] rev 12006
[web] Don't raise ProcessFormError if there is no value specified
a03376213747 introduced a slight modification in None / empty string values and
with it a regression where an exception is raised on empty values, while we
should simply consider no value is specified and return None.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 07 Mar 2017 11:59:07 +0100] rev 12005
[test] Cleanup imports in unittest_form
Remove unused and reorder, + use bare unittest along the way.
Florent Cayré <florent.cayre@logilab.fr> [Tue, 07 Mar 2017 14:27:09 +0100] rev 12004
Fix log level parameter not taken into account in cwsource log table
An error in the jquery selector of the html widget controlling the log
level was the cause of this bug.
Closes #15772634
(grafted from c9129aae884b476455c8ed1ad802efc3a26503a5)
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 13:49:51 +0100] rev 12003
[pyramid] Drop call to repository's start_looping_tasks method and warn about this
We are about to drop the start_looping_tasks method and running "looping
tasks" along the WSGI application is not a very good idea. So issue a warning
pointing to the forthcoming "scheduler" command.
Related to #17057223.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 15:22:16 +0100] rev 12002
[test] Make unittest_serverctl.py flake8-clean
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 13:15:51 +0100] rev 12001
[wsgi] Drop calls to repo.start_looping_tasks
It's unlikely that these implementations were ever used so we do not bother
with deprecation or a warning. We just drop the call to this method which
should not be called from within a WSGI application.
Related to #17057223.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 15:16:53 +0100] rev 12000
[pyramid] Drop useless "init_instance" module
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Mar 2017 15:01:41 +0100] rev 11999
[server] Drop inexistent "bootstrap" argument in Repository initialization
This is a missing bit from 5de78b6fff2e. Unfortunately this code appears to be
uncovered by our test suite.
David Douard <david.douard@logilab.fr> [Wed, 08 Feb 2017 16:05:00 +0100] rev 11998
[server] fix a typo in a docstring
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Feb 2017 09:18:08 +0100] rev 11997
[ctl] Load available configurations in "cubicweb-ctl list"
Otherwise we rely on associated ctl plugins to be loaded which is arguably orthogonal to
configurations.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 23 Feb 2017 10:59:56 +0100] rev 11996
[web/views] Fix a docstring
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Feb 2017 08:37:39 +0100] rev 11995
[server] Use looping_task method in Repository._prepare_startup()