Idea #10290
closed[Crunch2] Move "partitions" out of runtime_constraints
Description
runtime_constraints has the following semantics:
Restrict the container's access to compute resources and the outside world (in addition to its explicitly stated inputs and output). -- Each key is the name of a capability, like "internet" or "API" or "clock". The corresponding value is true (the capability must be available in the container's runtime environment) or false (must not) or a value or an array of two numbers indicating an inclusive range. Numeric values are given in basic units (e.g., RAM is given in bytes, not KB or MB or MiB). If a key is omitted, availability of the corresponding capability is acceptable but not necessary.
The "partitions" field of Container/ContainerRequest does not fit these semantics. It should move to the new scheduling_parameters hash.
See Containers API
API server, arvados-cwl-runner and crunch-dispatch-slurm need to be updated accordingly.
Updated by Tom Morris about 8 years ago
- Story points set to 1.0
Add a new hash scheduling_parameters and move "partitions" to it. Value remains array of strings.
Update tests.
Document new field.
Updated by Radhika Chippada about 8 years ago
- Assigned To set to Radhika Chippada
Updated by Radhika Chippada about 8 years ago
- Status changed from New to In Progress
Updated by Radhika Chippada about 8 years ago
At 5cd2757a
- Added scheduling_parameters map to containers and container_requests. Added test(s) to container_requests test. Updated arvados-cwl-runner and crunch_dispatch_slurm and tests.
- Documentation is not updated since major updates are happening in #10346. Will add a subtask and handle it after 10346 is completed.
- Test passed at @ https://ci.curoverse.com/job/developer-run-tests/65/
Updated by Peter Amstutz about 8 years ago
test_container.py:146
for key in call_args: self.assertEqual(call_args[key], call_kwargs[key])
This doesn't seem right, it declares call_body
above but doesn't use it for comparison. Shouldn't it be doing something like self.assertEqual(call_body, call_kwargs["body"])
?
rest LGTM.
Updated by Radhika Chippada about 8 years ago
Peter said:
test_container.py -- This doesn't seem right, it declares call_body above but doesn't use it for comparison. Shouldn't it be doing something like self.assertEqual(call_body, call_kwargs["body"]) ?
Oops, that's silly. Updated the test assertions to compare call body. Thanks.
Updated by Radhika Chippada about 8 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Applied in changeset arvados|commit:02010431f52911a6ff908e673c534291beb929ac.
Updated by Peter Amstutz about 8 years ago
- Status changed from Resolved to Feedback
When submitting a container request:
<HttpError 422 when requesting https://192.168.5.2:8000/arvados/v1/container_requests?alt=json returned "#<ActiveRecord::RecordInvalid: Validation failed: Scheduling parameters must be a Hash, not a ActiveSupport::HashWithIndifferentAccess>">
Updated by Radhika Chippada about 8 years ago
Updated container_requests_controller and added a controller test at ddce4f6de. Thanks.
Updated by Peter Amstutz about 8 years ago
Radhika Chippada wrote:
Updated container_requests_controller and added a controller test at ddce4f6de. Thanks.
LGTM please merge
Updated by Radhika Chippada about 8 years ago
- Status changed from Feedback to Resolved
- % Done changed from 50 to 100
Applied in changeset arvados|commit:b6bc9bbe45a68a07b1ea8139e1f4d698873739a7.