Tom Clegg [Fri, 22 Aug 2014 00:16:47 +0000 (20:16 -0400)]
3171: Do not follow permission graph through a User, unless permission on the User is can_manage. Restore usual permission model to user lookups. Add tests.
Brett Smith [Wed, 20 Aug 2014 13:46:49 +0000 (09:46 -0400)]
2800: Introduce TestCaseWithServers to Python SDK.
This is a subclass of unittest.TestCase. It looks for specific class
variables to launch supporting Arvados servers for subclass test
cases, taking care to adjust the environment and local Arvados
configuration to match. Put another away, this refactors a number of
similar setUpClass/tearDownClass methods throughout the SDK tests.
Brett Smith [Tue, 19 Aug 2014 14:17:57 +0000 (10:17 -0400)]
2800: Remove global state from KeepClient.
This commit makes it possible to build and use a KeepClient that isn't
influenced by changes in outside state. Changing the KeepClient based
on global state has been pushed up to the simple Keep class.
This commit changes the tests as little as possible to demonstrate
backward compatibility. Refactoring the tests to build KeepClients
directly will come in the future.
Tom Clegg [Wed, 20 Aug 2014 00:57:46 +0000 (20:57 -0400)]
3610: Move live log display into its own tab, avoid clobbering with tab reload.
* PipelineInstances#show gets a Log tab dedicated to the live log
window, rather than hiding it below the components table.
* Jobs#show uses its Log tab to show a live log window (instead of a
teaser) when the log is not yet finished/written to disk.
* In both cases, the live log window's tab pane intercepts and ignores
the arv:tab:reload event. (Previously, in addition to appending log
entries to the live window, websocket events would trigger a
"refresh all tabs" event, which would blow away the whole log viewer
anyway.)
* Behave sensibly when multiple lines of stderr arrive in a single
websocket update event.
* Stop displaying "update {pipeline-uuid}" messages that have no
additional content.
* Stop scrolling to bottom every time an ajax:complete fires
somewhere. (Previously, seeing anything above the last page of logs
was somewhere between annoying and impossible.)
Brett Smith [Thu, 14 Aug 2014 17:59:18 +0000 (13:59 -0400)]
3593: Another round of hardening Workbench's render_exception.
render_exception was counting on session[:user] to help render the
error page. We recently excised that, which is turning exceptions
into 500s. This commit restores the session user object, but uses it
only for error rendering, in keeping with the spirit of the previous
revert. This commit also defends against more possible failure cases
in render_exception, and adds a basic test for it.
Peter Amstutz [Thu, 14 Aug 2014 15:35:06 +0000 (11:35 -0400)]
3505: Move helper scripts into crunchutil module. In run-command, added
task.stdin redirection, and renamed save.stdout to task.stdout for consistency.
Stylistic change "x == None" and "x != None" to "x is None" and "x is not
None".
The default Popen behavior is to use stderr, and that's fine. This was
a mistaken attempt to reveal missing logs, the real solution for which
is 5fcff4c13ae17527ee1efd6fa01d08133212085b.
Phil Hodgson [Thu, 14 Aug 2014 11:51:35 +0000 (07:51 -0400)]
3114: bug fix: when rendering JSON response to a generic #show action, correctly set an 'href' attribute in the response to be the #show url for the object
Brett Smith [Wed, 13 Aug 2014 16:07:06 +0000 (12:07 -0400)]
3421: Make Workbench project contents tables variable width.
This change will ensure that users can see the "edit name" buttons, by
letting a table row grow as needed to accommodate long names. It puts
each row's buttons in dedicated cells to try to stay true to the
original layout as much as possible.
Brett Smith [Tue, 12 Aug 2014 18:41:55 +0000 (14:41 -0400)]
3405: Log errors about launching pipeline instances.
There's a couple of components to this:
* Do some basic checks on the organization of the pipeline instance
before we start running it, and abort if any of them fail.
* If the pipeline runner aborts for any reason, send that as pipeline
instance stderr to the API server, so other tools like Workbench can
render it for users' benefit.
Brett Smith [Tue, 12 Aug 2014 21:43:28 +0000 (17:43 -0400)]
3457: Revamp Python SDK and tool logging.
The primary goal of this commit is to introduce a dedicated logging
object to the arvados module, which we configure to our
specifications, and use it consistently throughout the SDK and tools.
This lets us handle our logging configuration consistently in one
place, and avoid interfering with logging in SDK users. I made some
minor style changes to logging calls while I was at it.
Phil Hodgson [Wed, 13 Aug 2014 15:12:36 +0000 (11:12 -0400)]
3114: When current user, show root/home project rather than user attributes when landing on show user page.
(This is meant to be a compromise due to the fact that a home project's uuid has "user" as its arvados type, rather than "group".)