Brett Smith [Tue, 29 Apr 2014 20:28:50 +0000 (16:28 -0400)]
api: Make JSON the default response format.
Rails assumes that the request should be sent in HTML unless a format
parameter or the Accept header expressly overrides that. This change
makes JSON the default unless the request specified it would like
HTML.
Brett Smith [Mon, 28 Apr 2014 17:01:18 +0000 (13:01 -0400)]
api: Support filters in API client auths index.
Per comments on Refs #1904. filters is generally the preferred way to
do searching now. I maintained existing limits on what can be
searched with this method.
Brett Smith [Mon, 28 Apr 2014 18:01:53 +0000 (14:01 -0400)]
api: Migrate VM auth scopes to new system.
VirtualMachinesController was the only one doing anything special with
API token scopes before we provided the more general-purpose system.
This commit removes its specialized code, and provides a database
migration to convert those specialized scopes to the general-purpose
schema.
Brett Smith [Tue, 22 Apr 2014 18:44:34 +0000 (14:44 -0400)]
api: Test VM login scopes.
The virtual machine controller is the only one doing anything
interesting with API token scopes right now. I'm writing this test
for that functionality to make sure it stays effective through
refactoring.
Brett Smith [Mon, 28 Apr 2014 15:03:22 +0000 (11:03 -0400)]
api: Shorten name of authorized_keys index.
I had trouble running the new TimestampsNotNull migration, because I
ran into the index name limit described in the migration comments.
Running this migration first worked around the problem for me, and I
hope it saves others from tripping over it too.
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.
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.
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.