Peter Amstutz [Wed, 23 Apr 2014 14:57:31 +0000 (10:57 -0400)]
- Added object_owner_uuid to logs table, which records the owner of the object
being described at the time of the log entry. Added migration.
- Added special case permission checks for reading logs table, and added
documentation comments on how permission checks work.
- Eventbus reuses readable_by and record_filters in determining what to publish
so provide consistent behavior between eventbus and regular API queries.
- Put most of apply_where_limit_order_params back into application_controller,
refactored record_filters into lib/
Peter Amstutz [Tue, 22 Apr 2014 21:12:12 +0000 (17:12 -0400)]
Refactored load_filters_param and apply_where_limit_order_params into lib/
directory so that EventBus can use them. Started adding filtering to EventBus, this is incomplete.
Properties should not have symbol keys. Our API runs on JSON, which does
not have symbol keys. We want to be consistent in our use of keys, so we
don't use symbol keys within the API server for object properties.
Peter Amstutz [Tue, 22 Apr 2014 19:49:51 +0000 (15:49 -0400)]
Added websocketUrl to discovery document. Workbench websockets testing page
now uses endpoint from discovery discovery document. Also added
ARVADOS_WEBSOCKETS environment variable. If set, server will accept websocket
connections only and do not pass on any other type of requests.
Create a can_login link for a new user object, even if there are already
stray can_login link objects for another user object with the same
e-mail address in the database. Add a test for that scenario, too.
Peter Amstutz [Mon, 21 Apr 2014 20:53:42 +0000 (16:53 -0400)]
Added code to properly initialize EventMachine to deal with Passenger forking.
Added postgres NOTIFY to ArvadosModel#log_change
Added postgres LISTEN to background thread, which posts a message to the websocket.
Notification works!
Tom Clegg [Mon, 21 Apr 2014 16:15:56 +0000 (12:15 -0400)]
Set :null=>false explicitly on timestamp columns.
New versions of Rails do this automatically, but dev instances keep
having edit wars because some of them have never been told to add the
not-null constraint.
Tom Clegg [Sat, 19 Apr 2014 06:39:11 +0000 (02:39 -0400)]
Fix configuration behavior in Ruby SDK.
API_VERSION is not configuration: it indicates how a client program
expects the API server to behave. (No environment variable or config
file should try to override that.)
Do not invoke insecure behavior unless API_HOST_INSECURE is "1",
"true", or "yes".
If API_HOST and API_TOKEN environment variables are set, do not bother
reading the configuration file at all.
Strip spaces so "API_TOKEN = foo" works in the configuration file.
Tom Clegg [Sat, 19 Apr 2014 02:18:32 +0000 (22:18 -0400)]
Clean up API schema and method pages.
Fill in missing object descriptions.
Remove redundant updated_at attributes.
Move methods sections from schema pages to method pages.
Remove some unnecessary empty sections.
Remove obsolete Commit and CommitAncestor.
Tom Clegg [Sat, 19 Apr 2014 01:00:31 +0000 (21:00 -0400)]
Accept minimum_script_version, excluded_script_versions, and
find_or_create flag as parameters to create, instead of treating them
as if they were attributes of the Job resource.
Accept find_or_create as a positive flag, rather than no_reuse as a
negative flag.
Behave as requested by the find_or_create flag even if
nondeterministic=true in the submitted job: i.e., a client can use the
find_or_create feature when submitting a job which itself will never
be reused. (It's up to the client to decide whether this is ever
useful.)
For now, both old and new flag names/locations are accepted and
supplied by API server and arv-run-pipeline-instance respectively.
Tim Pierce [Tue, 15 Apr 2014 21:18:22 +0000 (17:18 -0400)]
Add a device_num field to status.json output.
Include the underlying device number (as returned by stat(2)) in
status.json output, so clients can see if two Keep directories are
located on the same underlying volume. Refs #2561.
Peter Amstutz [Tue, 15 Apr 2014 21:10:02 +0000 (17:10 -0400)]
Parameterize the 'arv' command so that it can be specified with an environment
variable to make it easier to run with the right environment for development.
Tim Pierce [Tue, 15 Apr 2014 20:46:57 +0000 (16:46 -0400)]
Added IsValidLocator to filter /index output.
IndexHandler should skip metadata files and anything else that isn't a
valid locator, so call IsValidLocator before including the file in the
index output. Refs #2561.