[ARVADOS] updated: 1.1.3-43-g3d6d097
Git user
git at public.curoverse.com
Mon Feb 12 17:36:52 EST 2018
Summary of changes:
.gitignore | 2 +
.../app/assets/javascripts/application.js | 1 +
.../app/assets/javascripts/components/search.js | 23 +-
.../app/assets/javascripts/components/sessions.js | 37 +-
.../app/assets/javascripts/models/session_db.js | 336 ++++++++---
.../controllers/container_requests_controller.rb | 11 +
apps/workbench/app/models/container_work_unit.rb | 36 +-
.../app/models/pipeline_instance_work_unit.rb | 18 +
apps/workbench/app/models/proxy_work_unit.rb | 4 +-
.../container_requests/_show_recent_rows.html.erb | 2 +-
.../_show_components_running.html.erb | 2 +
.../app/views/projects/_show_dashboard.html.erb | 15 +-
apps/workbench/config/application.default.yml | 2 +-
apps/workbench/npm_packages | 1 +
.../container_requests_controller_test.rb | 16 +-
.../test/integration/pipeline_instances_test.rb | 30 +-
apps/workbench/test/unit/work_unit_test.rb | 3 +-
build/libcloud-pin.sh | 2 +-
build/run-tests.sh | 39 +-
doc/Rakefile | 17 +-
doc/_config.yml | 2 +
doc/_includes/_mount_types.liquid | 2 +-
.../R.html.textile.liquid} | 4 +-
doc/sdk/index.html.textile.liquid | 1 +
sdk/R/.Rbuildignore | 4 +
sdk/R/ArvadosR.Rproj | 20 +
sdk/R/DESCRIPTION | 20 +
sdk/R/NAMESPACE | 10 +
sdk/R/R/Arvados.R | 236 ++++++++
sdk/R/R/ArvadosFile.R | 270 +++++++++
sdk/R/R/Collection.R | 228 ++++++++
sdk/R/R/CollectionTree.R | 119 ++++
sdk/R/R/HttpParser.R | 53 ++
sdk/R/R/HttpRequest.R | 98 ++++
sdk/R/R/RESTService.R | 349 ++++++++++++
sdk/R/R/Subcollection.R | 329 +++++++++++
sdk/R/R/util.R | 54 ++
sdk/R/README.Rmd | 298 ++++++++++
sdk/R/man/Arvados.Rd | 62 ++
sdk/R/man/ArvadosFile.Rd | 56 ++
sdk/R/man/Collection.Rd | 51 ++
sdk/R/man/Subcollection.Rd | 47 ++
sdk/R/man/print.Arvados.Rd | 16 +
sdk/R/man/print.ArvadosFile.Rd | 16 +
sdk/R/man/print.Collection.Rd | 16 +
sdk/R/man/print.Subcollection.Rd | 16 +
sdk/R/run_test.R | 7 +
sdk/R/tests/testthat.R | 4 +
sdk/R/tests/testthat/fakes/FakeArvados.R | 35 ++
sdk/R/tests/testthat/fakes/FakeHttpParser.R | 56 ++
sdk/R/tests/testthat/fakes/FakeHttpRequest.R | 166 ++++++
sdk/R/tests/testthat/fakes/FakeRESTService.R | 167 ++++++
sdk/R/tests/testthat/test-Arvados.R | 306 ++++++++++
sdk/R/tests/testthat/test-ArvadosFile.R | 271 +++++++++
sdk/R/tests/testthat/test-Collection.R | 260 +++++++++
sdk/R/tests/testthat/test-CollectionTree.R | 102 ++++
sdk/R/tests/testthat/test-HttpParser.R | 92 +++
sdk/R/tests/testthat/test-HttpRequest.R | 28 +
sdk/R/tests/testthat/test-RESTService.R | 633 +++++++++++++++++++++
sdk/R/tests/testthat/test-Subcollection.R | 356 ++++++++++++
sdk/R/tests/testthat/test-util.R | 85 +++
sdk/cwl/arvados_cwl/__init__.py | 15 +-
sdk/cwl/arvados_cwl/arvcontainer.py | 23 +-
sdk/cwl/arvados_cwl/arvtool.py | 9 +-
sdk/cwl/arvados_cwl/pathmapper.py | 14 +-
sdk/cwl/arvados_cwl/runner.py | 2 +-
sdk/cwl/setup.py | 2 +-
sdk/cwl/tests/arvados-tests.sh | 3 +
sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa | 0
sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa.amb | 0
sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa.ann | 0
sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa.fai | 0
sdk/cwl/tests/test_make_output.py | 2 +
sdk/go/arvadostest/fixtures.go | 1 +
services/api/app/models/container.rb | 24 +-
services/api/app/models/container_request.rb | 13 +-
services/api/test/fixtures/container_requests.yml | 4 +-
services/api/test/fixtures/pipeline_instances.yml | 2 +
services/api/test/fixtures/users.yml | 16 +
services/api/test/unit/container_test.rb | 4 +-
services/crunch-run/crunchrun.go | 293 +++++++---
services/crunch-run/crunchrun_test.go | 84 +--
services/keepstore/azure_blob_volume.go | 16 +-
services/keepstore/azure_blob_volume_test.go | 5 +
.../arvnodeman/computenode/dispatch/slurm.py | 4 +-
.../arvnodeman/computenode/driver/gce.py | 4 +-
services/nodemanager/arvnodeman/jobqueue.py | 4 +-
services/nodemanager/setup.py | 4 +-
services/nodemanager/tests/integration_test.py | 8 +-
.../tests/test_computenode_driver_gce.py | 2 +-
services/nodemanager/tests/test_daemon.py | 9 +-
services/nodemanager/tests/testutil.py | 2 +-
tools/arvbox/bin/arvbox | 5 +-
tools/arvbox/lib/arvbox/docker/Dockerfile.base | 3 +-
tools/arvbox/lib/arvbox/docker/Dockerfile.demo | 5 +-
tools/arvbox/lib/arvbox/docker/common.sh | 1 +
tools/arvbox/lib/arvbox/docker/crunch-setup.sh | 9 +-
tools/arvbox/lib/arvbox/docker/go-setup.sh | 16 +
tools/arvbox/lib/arvbox/docker/keep-setup.sh | 9 +-
.../docker/service/arv-git-httpd/run-service | 9 +-
.../lib/arvbox/docker/service/composer/run-service | 12 +-
.../service/crunch-dispatch-local/run-service | 15 +-
.../lib/arvbox/docker/service/doc/run-service | 16 +
.../lib/arvbox/docker/service/keep-web/run-service | 9 +-
.../arvbox/docker/service/keepproxy/run-service | 9 +-
.../arvbox/lib/arvbox/docker/service/postgres/run | 2 +
.../arvbox/docker/service/websockets/run-service | 8 +-
tools/sync-groups/sync-groups.go | 21 +-
tools/sync-groups/sync-groups_test.go | 33 +-
109 files changed, 5882 insertions(+), 411 deletions(-)
copy doc/sdk/{python/python.html.textile.liquid => R/R.html.textile.liquid} (86%)
create mode 100644 sdk/R/.Rbuildignore
create mode 100644 sdk/R/ArvadosR.Rproj
create mode 100644 sdk/R/DESCRIPTION
create mode 100644 sdk/R/NAMESPACE
create mode 100644 sdk/R/R/Arvados.R
create mode 100644 sdk/R/R/ArvadosFile.R
create mode 100644 sdk/R/R/Collection.R
create mode 100644 sdk/R/R/CollectionTree.R
create mode 100644 sdk/R/R/HttpParser.R
create mode 100644 sdk/R/R/HttpRequest.R
create mode 100644 sdk/R/R/RESTService.R
create mode 100644 sdk/R/R/Subcollection.R
create mode 100644 sdk/R/R/util.R
create mode 100644 sdk/R/README.Rmd
create mode 100644 sdk/R/man/Arvados.Rd
create mode 100644 sdk/R/man/ArvadosFile.Rd
create mode 100644 sdk/R/man/Collection.Rd
create mode 100644 sdk/R/man/Subcollection.Rd
create mode 100644 sdk/R/man/print.Arvados.Rd
create mode 100644 sdk/R/man/print.ArvadosFile.Rd
create mode 100644 sdk/R/man/print.Collection.Rd
create mode 100644 sdk/R/man/print.Subcollection.Rd
create mode 100644 sdk/R/run_test.R
create mode 100644 sdk/R/tests/testthat.R
create mode 100644 sdk/R/tests/testthat/fakes/FakeArvados.R
create mode 100644 sdk/R/tests/testthat/fakes/FakeHttpParser.R
create mode 100644 sdk/R/tests/testthat/fakes/FakeHttpRequest.R
create mode 100644 sdk/R/tests/testthat/fakes/FakeRESTService.R
create mode 100644 sdk/R/tests/testthat/test-Arvados.R
create mode 100644 sdk/R/tests/testthat/test-ArvadosFile.R
create mode 100644 sdk/R/tests/testthat/test-Collection.R
create mode 100644 sdk/R/tests/testthat/test-CollectionTree.R
create mode 100644 sdk/R/tests/testthat/test-HttpParser.R
create mode 100644 sdk/R/tests/testthat/test-HttpRequest.R
create mode 100644 sdk/R/tests/testthat/test-RESTService.R
create mode 100644 sdk/R/tests/testthat/test-Subcollection.R
create mode 100644 sdk/R/tests/testthat/test-util.R
copy sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa (100%)
copy sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa.amb (100%)
copy sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa.ann (100%)
copy sdk/cwl/tests/{secondary/dir => hg19}/hg19.fa.fai (100%)
create mode 100644 tools/arvbox/lib/arvbox/docker/go-setup.sh
via 3d6d097f42128bde90b7bc184057a84e99ea3e0a (commit)
via de70e67d9bd06783f42ba5ab2408b5778e6573ff (commit)
via f35131cad37610298a6cdc52b4b213a29cb1e735 (commit)
via cfb929643f5f5d24fdc9f98c1c83c79ffd708f0e (commit)
via c0a5fa033d0a9bfbeab001f287969756e9e1d16d (commit)
via 3c31a5e643b930d1cdf227d2f5b151df48f20601 (commit)
via 8dd93ce870df1f438fab7fceebe6abdec9763199 (commit)
via 55b80c76014dbcad964b3d9e0956ce93d4cfb00b (commit)
via 5d164d74505c232cfa232d69a56273da2d02b72a (commit)
via f309b872cc064141d9fbf43a15067998603e2204 (commit)
via 0fab8a581c4a711408150ed64ce909d9afda7829 (commit)
via 53e11d8a5dde938b5ade8a1d96b04e039d15a0e2 (commit)
via a4b4dded53cb7056c31f4c55e1cd3fe333f699d1 (commit)
via 06e690a125bf736d39f8994534cd7e75bb8bffad (commit)
via 24e302ceb24fcf9f00340e1896729de45cde45dd (commit)
via 2173fac2d9acd783b9306696ce6857b2c511e0cf (commit)
via 4fca56d2393f754a0f8ff21225fd975ca4b1f782 (commit)
via 80eedd862b4956ed840af233dce0c3608fe627b2 (commit)
via 71e1465f6c7aa20a70bf46e56ac20f8b74423d4a (commit)
via d76c4ddfa1e964a8a1dfdafd127aa7735126caea (commit)
via f7d7147e97751d5a4514443a3dd6a264786c883e (commit)
via cfa10d90137e49008c08bc88bf2b79d1429fd0f8 (commit)
via 2517c98e6835fef0a9e9829773f058d7ced00462 (commit)
via acb392d097b6dc72ce0953d22d245b039b62fccc (commit)
via 47cb4506cc97c701639038a12f08374e8f06c41b (commit)
via 1e00053e7bc962a827ae960c1953ac9bd63d503b (commit)
via 4c7c4c13f51f99de535905ad02fe9239490a7956 (commit)
via 8fb1de64d0caddc9fc533a964470de799b6044ff (commit)
via 067ca04652413e2bacd76e9ac5c5c245aa27a291 (commit)
via 10c8c1871bef6d88ae27797e4b389fbf8649f4b0 (commit)
via 2bae361432ff8f975803495b4fd0acfae02cd3ef (commit)
via 1b350dc780c38740819ff0dbb495557742aabd1a (commit)
via fa9f5461910fede92df37bfce1e46514a59861eb (commit)
via a6228b5228c807fcee897da58d18ee542e930d77 (commit)
via abdc3d88ac10b8f3b634b4f1edd46e3597d54ee2 (commit)
via 0312a5e5aa076fa3458dd83a33e72663d23bb1ba (commit)
via 948c4e583b89e28730f8a0d2ae3f94e459351b30 (commit)
via d20683e4d068d673c481191b56e770f61c3cb208 (commit)
via 6331a6c3edee1fef0dc22eb2e2407f2c60168816 (commit)
via 318d42f0d64cfca262eae5e902ea6fecb724c89a (commit)
via 0e3c1f9c71f537d000459cbd3159ca6c198461c8 (commit)
via 8ca0b1449607ded51e908481cc4660c20f43a777 (commit)
via bf97bb37d38df9d6edd1a6b0c4227ee9846a4905 (commit)
via b3e8a483835334becbef9cba2bebbcf08df47c15 (commit)
via 75fd99e49f880aac55ae568c76c5151857e6beff (commit)
via 5f6738f134e1abb359fc8e8c61751263db88d4b6 (commit)
via aa798e6915bd39296bca8f62fd3476293c25f436 (commit)
via 23baab324564d36322b265c7fd904a0b4548c195 (commit)
via 03c82ef2950a25085e8d8ec0dc5d261fa1ca7963 (commit)
via 2eb85f70168d331e49e9d38bfbd2292d586dfcc1 (commit)
via dac01e1015f4d769a929651a74096e8a13592cf7 (commit)
via 5857ebe3b0e512d76871020f1b08d49a9f4de70b (commit)
via 06237272c9c8b3bfefe00308b2749c8df823ebdf (commit)
via c5795cc6f73d5affc55a332fcddc37fa56636f9a (commit)
via 9359659d79a0c17265ff8a09e896920243a1b800 (commit)
via fd228a5ac00d71170eadef15560ced417b1d3909 (commit)
via d03facf18d724c52c09604710b074d465febfece (commit)
via 086f6cc8645e655f75c84268e7e758856a07be87 (commit)
via bcb86b69fba693af210e82d40d92854e609157c4 (commit)
via 23995e4bd823ff1a9f4986ac2b852fd35d740940 (commit)
via f64238be677ff7f67cb5ac71ecac534d0c4aa488 (commit)
via 294e83e3d69e3da8dbced2059323d8680349f548 (commit)
via 5c6b040cabe60623364f19dc35920a084d6c6fc6 (commit)
via 69b7576df3796887ebe754a71437f6dc3032f119 (commit)
via 62e5b36b38e9da03ea0c84256d433b4d21194da3 (commit)
via d3dd0147fc7c0e344b4cca1fb92d7c500924bd37 (commit)
via e1d26636c385f4c09484673b1b90eec6191ba6c5 (commit)
via 14e0d031833b75c2bbbfe796294934aea2da3d19 (commit)
via 29e4cf39674f54e5607d84d612ff867a4add0347 (commit)
via cd3bab6f91b89073c9b5646a69110a8b1a5e9e66 (commit)
via 913baf3c2d96000ea564821a9ae9163e991105a3 (commit)
via ef2889f20ad25c30abb05c53cc5e08e2c2ed97d3 (commit)
via 6459c61b9cca7d2382d01c20d1f749a7dc8d21e0 (commit)
via c98c533d5c971efd1d3b122076c5abe0736f8423 (commit)
via c8891a5eeec540404c7aff02a200fd95f6dbe64b (commit)
via 3e51fd869e600fd3d60e892346896fd9ce3d8c9c (commit)
via 4da7a9b5c11caf085c14cbf0eacdc16b6f6d7fa5 (commit)
via 4e78fdb8c41ee73a0f14a349fe4edcfdb1523458 (commit)
via bf59702692c89a809f102d8bd4b9caf531f4c9be (commit)
via 76a7dd09a977c109de100884500b531e6bbe2166 (commit)
via 11eda09c7340da2c0a01259e3711758782c9b1c9 (commit)
via bd1378553152e98ffd0e9ecf68dc0f92ea3ff186 (commit)
via 25da01646d0fc0d5b49cdeaa10173beabfd2e8b9 (commit)
via 9482a917eef77ef64fc9fee27b0d107727f765ad (commit)
via b4351d725f01431856cbe1ea0e8faf8d4f91dd4e (commit)
via 3a4434f8b767e05456eea248f645422b1ed670d0 (commit)
via 1178add6cefa51f73dd9a229899ea906d297be5a (commit)
via 44ab8ee44302102a7cd5289ef7336d7a94594558 (commit)
via 5bd7108fed4a87eb7cc5a25844bb8c100977c968 (commit)
via 1b7a6c0ca4fa348c313a0862cfca597319cfe08f (commit)
via 90bffaaf5e537608c3a8d2520544bfdd9b98d286 (commit)
via 7471c3fb9752482dccae508c34874f9b3c77dfb1 (commit)
via 0b869f3fab26c33515cd9b2f44e0ed9c8c542698 (commit)
via 0488e81c85948faa6a14ca437d9e594d91bcbbd8 (commit)
via 14b4a1acc30cf4c84135ec7580d228ad1aacca17 (commit)
via 8137793fcd26eed30004f62a0c9ed0f839a9bd5e (commit)
via 59eb2058e7111581645c960ba868f49f0fed152b (commit)
via 78de557466248e1a193e07ae1945b29a23fc56a8 (commit)
via 3a6a89199e2478454905731ccef0868d5fdd6f8f (commit)
via 5358498e3f2c0dd73231dca8ca82f9ad164854f7 (commit)
via 3f5268c5a8d6a72597a05bba5dd6e0e5e67457a9 (commit)
via 6f1b9ffa9cf4abe9f08455346c917f66b8c5e9a5 (commit)
via 64aee8cfd4164f3c0dae26fe62cc9ee22b16782b (commit)
via c2a07597440e4db06481d2532adc317331df441b (commit)
via 95c228e25cd1a483ec391a9b2c5d6fb048f620f1 (commit)
via 4dda3a5b85afbac450d958d81e2acb013c5bae20 (commit)
via 1499d395e3d2ef62334e349f7bc4ae2cfd0418aa (commit)
via 2d451314078739464fbb754791bf6f1d4a8fad1c (commit)
via f1bde50ee2e8b8fa8533518006f09546a62f7a87 (commit)
via af17604c5a93830380fb50db93ce543926c116cf (commit)
via 539f2b151c57a76c9a8c0d49ef7ee5c0bac39de7 (commit)
via d25be127db660e0c3c97bf53f8488d73e28b86d3 (commit)
via 38ceac30a22ac3c506ca69263ff9e2640e5bd71e (commit)
via 29df5af6f77c1f24593ecda397a56f0632876ce2 (commit)
via defe89ef5c3e8995b275120f060cf85296f6396b (commit)
via b5c2d27b55ff8490818548bc077975fbf37b3a1f (commit)
via 68d1c59bc33df1b002754b958b6887896f2a40d5 (commit)
via b0f36fd28ee29321d368852bd14b61485e758af3 (commit)
via 7f2de2ec1d52c8e5984b610c5930f2d9629bd357 (commit)
via 67b46a6c360a18fee84846d75622539220eca211 (commit)
via 937c64f38ff59f11616ea8932b24116530f2e60f (commit)
via ecb7d4501373a21ae69494beee8252f107ec1b56 (commit)
via 1ece35a0faae97687c2dd370f6b8a61aaac505c2 (commit)
via 2d3726dd11046146731f7f7391659a5eaf44702b (commit)
via 7b76c49887aecdb2bf0be7eecf8f5b271d5f0c38 (commit)
via 8daddfe53514b71ef229e9c2985e116fa6614858 (commit)
via d246f53c1d991f1572d6701569aa8c7eac4d722d (commit)
via b37da0c1488f68491f40bbe5bfbe2e00a12137e9 (commit)
via 3b4520cc6aa20a3db3b469c32c2b29ccee8933c5 (commit)
via ec836ed648758619ed35153e52016079adce99b7 (commit)
via 91801cb4c303db0fbf701aa34e646e0dc4187f05 (commit)
via 76c2e8d11e3c644f1603adbef3222afaacd6a279 (commit)
via d645f41a7f082e92288cb07cfa4527ff3edb408a (commit)
via f4da35a4dc44a18c8371c9e42a03fa5dc96c53d3 (commit)
via 99bec637f6d4384a8d6f3c2cb27eb32d13c14f21 (commit)
via 3d51cb80240a582a901855d7a7e79b70dcf28bab (commit)
via c65dfd0d76b9432b1ca305d2bf39d8bb309124a2 (commit)
via 082df78ff6abc6ecb5fb817649111e7e6ef967a2 (commit)
via 7c8c1719232d0a5b96e6cbfa46c94faeee65cf05 (commit)
via 693b1f491499c33d82c3950aaa8f0b754a50c219 (commit)
via e72f801012e68e7a223a64d4e90bfa2cc66a9254 (commit)
via 074f020c32c55c017433ac5a294a5e0b73b360ad (commit)
via 2fcdd3f845647243517af895d49c812f9c2eaae2 (commit)
via 62a2ccba46cb5b83e510e727afa44eee2e893676 (commit)
via d5cb3c081c0e9a8d7698feb7c04ade6f385a5471 (commit)
via 790a912ff48b90cba284a0a6b5b4e34db7b22078 (commit)
via 9d633e1cc0f3842edf6cef1a9f6d7f4724ab81bf (commit)
via 11b903121f9c9505e529bb4b8965d56c1f8f96e0 (commit)
via f15c8a8ef1af9d823030f4c6383ba2560a78a4fa (commit)
via df8b4a86d08b4da0f5959766257664c9af89343b (commit)
via 7da8eaf51a23ab23369b6e65f0634448cc4aeb3b (commit)
via 05d6f9301e863a2b0aad1178d629354601f14325 (commit)
via 5c5ec11a744d47f7235e5a1862d2d22288ffe90f (commit)
via 8b29c17f3dcbfa2601b6be4921316340967af17b (commit)
via f67c59f3fea793ed3ccea7f5a8106014ec2dc108 (commit)
via 6e2965abc46832a4970b80bce84a64d932426285 (commit)
via a8c3d59c520942c14434cea310c2c8a2fe623a9c (commit)
via 2204a8d9305c85d2f7d65621a66443e7104c5f6b (commit)
via a084df558c2bb054140a2bea08c973fa76209b97 (commit)
via 6c2355d82da1326a125ce7adcb8945a1d8efd671 (commit)
via 60ee2fc214c9712b1db5ad82670eadc534279685 (commit)
via 7ff006ea5351259abe8edc89520996513652c147 (commit)
via f2a79e0cc9bffcbe941d9a05b78f102fa6f09d03 (commit)
via eb95e18a3f2686762a99723ba4d7f0803f9d3c5d (commit)
via aba085a3abd65bc86075839298526ab2f686117c (commit)
via c88643983aeb511eca21e1d9e36b919a63482fb8 (commit)
via c1d564b0e5f95c54d822d39cf1715d93d293c70b (commit)
via d859cab46630d46aa1ae7b1d8de7ec92d0a4b8fa (commit)
via 58838a7cd8e142ce12a90f6cafb80ea0c09797d5 (commit)
via be76fcdd9aa19fbf8982df2543685816a4afb1e0 (commit)
via 2295b8b5c11c0177ff927d147800f6174feb4b9e (commit)
via 2d8d861fadc8f3e0e7d5524c78f980dedc56f759 (commit)
via eb93b9b3b9d05c566f886b9a46bad4043d0a8534 (commit)
via 02ce18b74c42b34a86208a713e00dfa0e0fe39de (commit)
via 723ccdb54a0fc58c3e636481c404ea95b8f38d46 (commit)
via 15eda5715c312d12ec24c24db80448bee90e38ea (commit)
via fbb9221d9de4c4a27e0c8aefc48c7c9c7a80ceab (commit)
via 29659ffa9e00efe7a845aa303c70ba543c23174d (commit)
via 18f8fa743346e5ac2ddc48dfdf6fdb4788c5b271 (commit)
from 20c51bfacc584f54083da0b3317116089e3af6b4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 3d6d097f42128bde90b7bc184057a84e99ea3e0a
Merge: de70e67 c0a5fa0
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date: Mon Feb 12 17:28:22 2018 -0500
12199: Merge branch 'master' into 12199-dispatch-to-node-type
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>
commit de70e67d9bd06783f42ba5ab2408b5778e6573ff
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date: Mon Feb 12 17:06:13 2018 -0500
12199: Improve race handling in busywait.
The previous implementation was "call f() until it's truthy, then
assert f()". The assertion fails if f() returns truthy but then
returns falsy on the next call.
The new implementation doesn't call f() again after it returns truthy
once.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>
diff --git a/services/nodemanager/tests/test_daemon.py b/services/nodemanager/tests/test_daemon.py
index ebe7408..50fa0aa 100644
--- a/services/nodemanager/tests/test_daemon.py
+++ b/services/nodemanager/tests/test_daemon.py
@@ -23,12 +23,13 @@ class NodeManagerDaemonActorTestCase(testutil.ActorTestMixin,
unittest.TestCase):
def busywait(self, f):
- n = 0
- while not f() and n < 200:
+ for n in xrange(200):
+ ok = f()
+ if ok:
+ return
time.sleep(.1)
self.daemon.ping().get(self.TIMEOUT)
- n += 1
- self.assertTrue(f())
+ self.assertTrue(ok) # always falsy, but not necessarily False
def mock_node_start(self, **kwargs):
# Make sure that every time the daemon starts a setup actor,
commit f35131cad37610298a6cdc52b4b213a29cb1e735
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date: Mon Feb 12 16:48:15 2018 -0500
12199: Fix errant uses of size.name that should be size.id.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>
diff --git a/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py b/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py
index e948c51..1cf8f4e 100644
--- a/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py
+++ b/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py
@@ -31,7 +31,7 @@ class SlurmMixin(object):
def _update_slurm_size_attrs(self, nodename, size):
self._update_slurm_node(nodename, [
'Weight=%i' % int(size.price * 1000),
- 'Features=instancetype=' + size.name,
+ 'Features=instancetype=' + size.id,
])
def _get_slurm_state(self, nodename):
@@ -109,7 +109,7 @@ class ComputeNodeUpdateActor(SlurmMixin, UpdateActorBase):
"""Keep SLURM's node properties up to date."""
hostname = arvados_node.get("hostname")
features = arvados_node.get("slurm_node_features", "").split(",")
- sizefeature = "instancetype=" + cloud_node.size.name
+ sizefeature = "instancetype=" + cloud_node.size.id
if hostname and sizefeature not in features:
# This probably means SLURM has restarted and lost our
# dynamically configured node weights and features.
diff --git a/services/nodemanager/arvnodeman/computenode/driver/gce.py b/services/nodemanager/arvnodeman/computenode/driver/gce.py
index 419557f..3f1d575 100644
--- a/services/nodemanager/arvnodeman/computenode/driver/gce.py
+++ b/services/nodemanager/arvnodeman/computenode/driver/gce.py
@@ -38,7 +38,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
super(ComputeNodeDriver, self).__init__(
auth_kwargs, list_kwargs, create_kwargs,
driver_class)
- self._sizes_by_name = {sz.name: sz for sz in self.sizes.itervalues()}
+ self._sizes_by_id = {sz.id: sz for sz in self.sizes.itervalues()}
self._disktype_links = {dt.name: self._object_link(dt)
for dt in self.real.ex_list_disktypes()}
@@ -120,7 +120,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
# and monkeypatch the results when that's the case.
if nodelist and not hasattr(nodelist[0].size, 'id'):
for node in nodelist:
- node.size = self._sizes_by_name[node.size]
+ node.size = self._sizes_by_id[node.size]
return nodelist
@classmethod
diff --git a/services/nodemanager/arvnodeman/jobqueue.py b/services/nodemanager/arvnodeman/jobqueue.py
index ebc90e4..0360bfc 100644
--- a/services/nodemanager/arvnodeman/jobqueue.py
+++ b/services/nodemanager/arvnodeman/jobqueue.py
@@ -75,14 +75,14 @@ class ServerCalculator(object):
return fallback
def cloud_size_for_constraints(self, constraints):
- specified_name = constraints.get('instance_type')
+ specified_size = constraints.get('instance_type')
want_value = lambda key: self.coerce_int(constraints.get(key), 0)
wants = {'cores': want_value('min_cores_per_node'),
'ram': want_value('min_ram_mb_per_node'),
'scratch': want_value('min_scratch_mb_per_node')}
for size in self.cloud_sizes:
if (size.meets_constraints(**wants) and
- (specified_name is None or size.name == specified_name)):
+ (specified_size is None or size.id == specified_size)):
return size
return None
diff --git a/services/nodemanager/tests/test_computenode_driver_gce.py b/services/nodemanager/tests/test_computenode_driver_gce.py
index cfc4add..f0942e9 100644
--- a/services/nodemanager/tests/test_computenode_driver_gce.py
+++ b/services/nodemanager/tests/test_computenode_driver_gce.py
@@ -211,7 +211,7 @@ class GCEComputeNodeDriverTestCase(testutil.DriverTestMixin, unittest.TestCase):
# patches that up in listings.
size = testutil.MockSize(2)
node = testutil.cloud_node_mock(size=size)
- node.size = size.name
+ node.size = size.id
self.driver_mock().list_sizes.return_value = [size]
self.driver_mock().list_nodes.return_value = [node]
driver = self.new_driver()
diff --git a/services/nodemanager/tests/testutil.py b/services/nodemanager/tests/testutil.py
index d13475b..555144c 100644
--- a/services/nodemanager/tests/testutil.py
+++ b/services/nodemanager/tests/testutil.py
@@ -80,7 +80,7 @@ class MockShutdownTimer(object):
class MockSize(object):
def __init__(self, factor):
self.id = 'z{}.test'.format(factor)
- self.name = self.id
+ self.name = 'test size '+self.id
self.ram = 128 * factor
self.disk = factor # GB
self.scratch = 1000 * factor # MB
commit cfb929643f5f5d24fdc9f98c1c83c79ffd708f0e
Author: Tom Clegg <tclegg at veritasgenetics.com>
Date: Mon Feb 12 16:39:23 2018 -0500
12199: Update integration tests.
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg at veritasgenetics.com>
diff --git a/services/nodemanager/tests/integration_test.py b/services/nodemanager/tests/integration_test.py
index 7b129f5..7b8ba39 100755
--- a/services/nodemanager/tests/integration_test.py
+++ b/services/nodemanager/tests/integration_test.py
@@ -84,7 +84,7 @@ def job_cancelled(g):
['event_type', '=', 'stderr'],
]).execute()['items'][0]
if not re.match(
- r"Requirements for a single node exceed the available cloud node size",
+ r"Constraints cannot be satisfied",
log_entry['properties']['text']):
return 1
return 0
@@ -94,7 +94,7 @@ def node_paired(g):
compute_nodes[g.group(1)] = g.group(3)
update_script(os.path.join(fake_slurm, "sinfo"), "#!/bin/sh\n" +
- "\n".join("echo '%s alloc'" % (v) for k,v in compute_nodes.items()))
+ "\n".join("echo '%s|alloc|(null)'" % (v) for k,v in compute_nodes.items()))
for k,v in all_jobs.items():
if v == "ReqNodeNotAvail":
@@ -107,7 +107,7 @@ def node_paired(g):
def remaining_jobs(g):
update_script(os.path.join(fake_slurm, "sinfo"), "#!/bin/sh\n" +
- "\n".join("echo '%s alloc'" % (v) for k,v in compute_nodes.items()))
+ "\n".join("echo '%s|alloc|(null)'" % (v) for k,v in compute_nodes.items()))
for k,v in all_jobs.items():
all_jobs[k] = "Running"
@@ -119,7 +119,7 @@ def remaining_jobs(g):
def node_busy(g):
update_script(os.path.join(fake_slurm, "sinfo"), "#!/bin/sh\n" +
- "\n".join("echo '%s idle'" % (v) for k,v in compute_nodes.items()))
+ "\n".join("echo '%s|idle|(null)'" % (v) for k,v in compute_nodes.items()))
return 0
def node_shutdown(g):
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list