From efd0ed5fa583d09f7d272ecc9461ec1684cf0cb4 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Mon, 14 Aug 2017 09:33:00 -0400 Subject: [PATCH] 10349: Working on Python code snippits for manipulating container requests. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- doc/sdk/python/cookbook.html.textile.liquid | 65 +++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 doc/sdk/python/cookbook.html.textile.liquid diff --git a/doc/sdk/python/cookbook.html.textile.liquid b/doc/sdk/python/cookbook.html.textile.liquid new file mode 100644 index 0000000000..2adb986a5e --- /dev/null +++ b/doc/sdk/python/cookbook.html.textile.liquid @@ -0,0 +1,65 @@ +--- +layout: default +navsection: sdk +navmenu: Python +title: Code cookbook +... +{% comment %} +Copyright (C) The Arvados Authors. All rights reserved. + +SPDX-License-Identifier: CC-BY-SA-3.0 +{% endcomment %} + +h2. Cancel a container request + + +import arvados +arvados.api().container_requests().update(uuid=container_request_uuid, body={"priority": 0}).execute() + + +h2. Cancel all container requests + + +import arvados +api = arvados.api() +result = api.container_requests().list(filters=[["state", "=", "Committed"], ["priority", ">", "0"]]).execute()["items"] +for container_request in result: + api.container_requests().update(uuid=container_request["uuid"], body={"priority": 0}).execute() + + +h2. List completed container requests + + +import arvados +api = arvados.api() +result = api.container_requests().list(filters=[["name", "like", name], ["state", "=", "Final"]]).execute()["items"] +container_uuids = [cr["container_uuid"] for cr in result] +containers = api.containers().list(filters=[["uuid", "in", container_uuids]]).execute()["items"] +container_dict = {c["uuid"]: c for c in containers} + +for container_request in result: + container = container_dict[container_request["container_uuid"]] + print("%s, %s, %s" % (container_request["uuid"], container_request["name"], "Success" if container["exit_code"] == 0 else "Failed")) + + +h2. Get input of a CWL workflow + + +import arvados +api = arvados.api() +container_request = arvados.api().container_requests().get(uuid=container_request_uuid).execute() +print(container_request["mounts"]["/var/lib/cwl/cwl.input.json"]) + + +h2. Get output of a CWL workflow + + +import arvados +import arvados.collection +api = arvados.api() +container_request = arvados.api().container_requests().get(uuid=container_request_uuid).execute() +collection = arvados.collection.CollectionReader(container_request["output_uuid"]) +print(collection.open("cwl.output.json").read()) + + +h2. Run a CWL workflow from a workflow record -- 2.30.2