Brett Smith [Tue, 21 Oct 2014 18:31:44 +0000 (14:31 -0400)]
4139: Improve scheduling of Node Manager polls.
* Catch all exceptions, so that we keep polling no matter what
happens. Use CLIENT_ERRORS as a hint about how much logging we
need.
* Make the next poll time calculation a little less stateful and
easier to follow.
* Add tests for poll scheduling.
Ward Vandewege [Fri, 17 Oct 2014 19:47:11 +0000 (15:47 -0400)]
Make sure to use httpclient 2.5.0 or higher for Workbench. Older
versions force the use of SSLv3, which is no longer advisable now that
Poodle is a thing.
Brett Smith [Fri, 17 Oct 2014 14:22:01 +0000 (10:22 -0400)]
4239: Update Python SDK for google-api-python-client 1.3.
This package renames the module from apiclient to googleapiclient. It
provides a shim apiclient module for compatibility, but it only
exports the appropriate names, not real submodules. Using it requires
changing imports like
import apiclient.errors
to
from apiclient import errors
This approach works (has been tested) with both versions 1.2 and 1.3.
Closes #4239.
radhika [Fri, 17 Oct 2014 03:19:57 +0000 (23:19 -0400)]
4062: Do not include offset in the next_page_href when objects of multiple kinds are being fetched; instead, we will rely on created_at filter alone.
Updated the tests and fixtures to expect all 200+ objects in the pipelines and jobs tab.
The test however is still not working as the created_at filter based fetch is not working.
Brett Smith [Wed, 15 Oct 2014 18:04:12 +0000 (14:04 -0400)]
4189: Workbench lets users with write permission rename objects in projects.
The key part of this commit are the changes to ApplicationHelper.
There's also some refactoring to more consistently answer questions
about whether or not an attribute is editable.
There are also some tests in here that I wrote while I was tracking
down the problem. They seem like a useful addition.
Peter Amstutz [Thu, 16 Oct 2014 18:59:18 +0000 (14:59 -0400)]
3609: Back out setting api_version, api_host, and api_insecure on api client
and instead document that caller to arvados.events.subscribe() should pass in a
freshly created api client. Add event variable to indicate when subscription
is a success instead of sleeping. Removed unused "import time". Fixed "web
sockets" -> "websockets".
Brett Smith [Thu, 16 Oct 2014 16:47:09 +0000 (12:47 -0400)]
Python SDK is not compatible with apiclient 1.3.
Figuring out why this is needs more investigation. It's something I'd
like to do, but it seems urgent to push this fix so builds can pass
again. No issue #, but see
<https://ci.curoverse.com/job/arvados-api-server/980/>.
Peter Amstutz [Thu, 16 Oct 2014 16:23:41 +0000 (12:23 -0400)]
3609: Add additional api_ fields to api client object so that subscribe() can
create a new api client. Change test to use event variable instead of
sleeping. Fix "Web sockets" -> "Websockets". Make some command line options
mutually exclusive.
radhika [Thu, 16 Oct 2014 14:45:24 +0000 (10:45 -0400)]
4062: fix greedy infinite scrolling in tabs displaying more than one kind (Jobs and pipelines tab and Other objects tab).
Not only did scrolling never stopped, it never reloaded the next page and reloaded the same first page again and again.
Added test fixtures with many objects to test scrolling.
Added tests to use vertical scrollbar. The test itself is not able to test infinite scrolling by reloading the next page.
This may be because in integration testing new content is displayed only due to a click action.
mishaz [Tue, 14 Oct 2014 22:11:40 +0000 (22:11 +0000)]
Modified IndexHandler to match TrashHandler and PullHandler
* No longer checks for the enforce-permissions flag.
* Still checks for DataManager auth token.
* The HTTP error returned when we don't find the DataManager auth token is now Unauthorized instead of Forbidden.
Peter Amstutz [Wed, 15 Oct 2014 20:22:26 +0000 (16:22 -0400)]
3609: Add test case for PollClient. arvados.event.subscribe() starts a new
polling thread by default so as to provide the same behavior as websockets.
Add documentation strings to ws.py command line parameters.
Brett Smith [Wed, 15 Oct 2014 13:22:40 +0000 (09:22 -0400)]
4196: arv-keepdocker uses Docker 1.0 pull syntax.
`docker pull -t` was the old way of pulling an image with a specific
tag. Docker 1.0 introduced `docker pull repo:tag`, and Docker 1.2
removes support for `-t` completely. We're well-standardized on 1.1+
at this point, and considering an upgrade to 1.2+, so now's the time
to switch.
Brett Smith [Mon, 13 Oct 2014 19:19:15 +0000 (15:19 -0400)]
4139: Speed up Node Manager tests.
Previously, the tests would poll interesting mocks, waiting for them
to be called. This introduces significant overhead to the tests, and
they would frequently time out on Jenkins. This modifies the tests to
get more information by blocking on the tested actors, which means
more predictability and less fighting for CPU (typical runtimes for
all the tests improved from 5 seconds to 0.5 seconds on my
workstation).
The downside to this approach is that it ties the tests more tightly
to the underlying actors' implementation. In particular, they
sometimes send a message and block for a response to ensure that any
internal messages generated by the *last* message have been handled.
This is less than ideal, but I don't have a better idea right now.
Peter Amstutz [Fri, 10 Oct 2014 19:43:52 +0000 (15:43 -0400)]
Websocket server side fix, perform database notify in after_save callback on
the log object instead of in log_change on ArvadosBase because crunch-dispatch
was creating Log objects directly and bypassing the notification in log_change.
Peter Amstutz [Fri, 10 Oct 2014 19:43:52 +0000 (15:43 -0400)]
Websocket server side fix, perform database notify in after_save callback on
the log object instead of in log_change on ArvadosBase because crunch-dispatch
was creating Log objects directly and bypassing the notification in log_change.