[ARVADOS] updated: 1693dc615e67c1bae3b6b52c0631fc58d8475d8f

git at public.curoverse.com git at public.curoverse.com
Fri Oct 31 13:28:38 EDT 2014


Summary of changes:
 apps/workbench/app/assets/javascripts/dates.js     |   2 +-
 apps/workbench/app/assets/javascripts/tab_panes.js |  48 +-
 .../app/controllers/actions_controller.rb          |   2 +-
 .../app/controllers/collections_controller.rb      |  94 +--
 .../controllers/pipeline_instances_controller.rb   |  12 +-
 apps/workbench/app/helpers/application_helper.rb   |   2 +
 .../app/helpers/pipeline_components_helper.rb      |   2 +-
 .../views/application/_title_and_buttons.html.erb  |   2 +-
 .../app/views/collections/hash_matches.html.erb    |  23 +
 apps/workbench/app/views/collections/show.html.erb |  14 +-
 .../pipeline_instances/_show_components.html.erb   |   2 +-
 .../test/functional/collections_controller_test.rb |   8 +
 .../workbench/test/integration/collections_test.rb |  53 ++
 .../test/integration/pipeline_instances_test.rb    |  53 +-
 apps/workbench/test/integration/projects_test.rb   |  24 +-
 apps/workbench/test/integration/websockets_test.rb |  22 +-
 apps/workbench/test/test_helper.rb                 |  15 +-
 doc/_includes/_skip_sso_server_install.liquid      |   6 +
 doc/api/methods/nodes.html.textile.liquid          |   2 +-
 doc/images/workbench-dashboard.png                 | Bin 44822 -> 94257 bytes
 doc/install/install-api-server.html.textile.liquid |  17 +-
 doc/install/install-keep.html.textile.liquid       |   2 +
 doc/install/install-sso.html.textile.liquid        |  15 +
 .../install-workbench-app.html.textile.liquid      |   9 +-
 ...tutorial-pipeline-workbench.html.textile.liquid |  11 +-
 sdk/cli/bin/arv                                    |   2 +-
 sdk/cli/bin/arv-copy                               |   1 +
 sdk/python/arvados/commands/arv_copy.py            | 665 +++++++++++++++++++++
 sdk/python/arvados/commands/keepdocker.py          |  31 +-
 sdk/python/arvados/config.py                       |  27 +-
 sdk/python/arvados/keep.py                         |   5 +-
 sdk/python/bin/arv-copy                            |   4 +
 sdk/python/setup.py                                |   1 +
 sdk/python/tests/test_keep_client.py               |   7 +
 .../app/controllers/arvados/v1/nodes_controller.rb |   7 -
 services/api/app/models/node.rb                    |  54 --
 services/api/config/application.default.yml        |   9 -
 services/api/lib/eventbus.rb                       | 147 +++--
 services/api/script/crunch-dispatch.rb             | 336 ++++++-----
 services/api/test/fixtures/collections.yml         |  12 +
 services/api/test/fixtures/groups.yml              |   4 +-
 services/api/test/fixtures/jobs.yml                |   4 +-
 services/api/test/fixtures/pipeline_instances.yml  |  26 +-
 services/api/test/fixtures/pipeline_templates.yml  |   1 +
 .../functional/arvados/v1/nodes_controller_test.rb |   2 +-
 services/api/test/integration/websocket_test.rb    |  43 ++
 services/crunchstat/crunchstat.go                  | 483 +++++++++------
 services/crunchstat/crunchstat_test.go             |  50 ++
 services/fuse/tests/test_mount.py                  |   1 +
 services/nodemanager/arvnodeman/clientactor.py     |  38 +-
 .../nodemanager/arvnodeman/computenode/__init__.py | 130 ++--
 services/nodemanager/arvnodeman/daemon.py          |  23 +-
 services/nodemanager/arvnodeman/jobqueue.py        |  17 +-
 services/nodemanager/arvnodeman/timedcallback.py   |   3 +-
 services/nodemanager/tests/test_clientactor.py     |  25 +
 services/nodemanager/tests/test_computenode.py     |   8 +
 services/nodemanager/tests/test_daemon.py          |  97 ++-
 services/nodemanager/tests/test_jobqueue.py        |   9 +-
 58 files changed, 2027 insertions(+), 685 deletions(-)
 create mode 100644 apps/workbench/app/views/collections/hash_matches.html.erb
 create mode 100644 doc/_includes/_skip_sso_server_install.liquid
 create mode 120000 sdk/cli/bin/arv-copy
 create mode 100755 sdk/python/arvados/commands/arv_copy.py
 create mode 100755 sdk/python/bin/arv-copy
 create mode 100644 services/crunchstat/crunchstat_test.go

       via  1693dc615e67c1bae3b6b52c0631fc58d8475d8f (commit)
       via  e6d161cc976f253863c4b0788ce91c5955046972 (commit)
       via  31e1d10eb4a54b13f55b3c9638f46032be633ff9 (commit)
       via  2d244defaaa4f5f663a5ac11cf507d7203f704e3 (commit)
       via  846ac5d419862e2b0051ec0843e71c601b35da44 (commit)
       via  f923effe2e0ae0b704b9236b4165866b171b6e81 (commit)
       via  fff7228b347fd12c15a18d6de47e37c2f72ae795 (commit)
       via  e68bf42e440545bd2b760635039a232c4ef35fae (commit)
       via  8c492b3940f398dddea54792f67a7a0e9d2383a6 (commit)
       via  af2ca91daa4cb9550226be5fad80da24ee426fb7 (commit)
       via  2776ad1bd8f05cf58a2bab436db932289d80549a (commit)
       via  a3db87c5a23f3a1e72ea82304d24db8c1757c095 (commit)
       via  6ed159925434818e3da1f7ff9f6a777815f2a5a4 (commit)
       via  f1eb092c311510b60b8c9b00b64407780e2a0302 (commit)
       via  ef56ac56a0bac0710a486c0e5e9cdd3199eddc61 (commit)
       via  fb01e30424d20a3430f45826e57410b8e2e5440d (commit)
       via  35ade8a042094a27e2ca5cfd5e9754aa3513410c (commit)
       via  0862d7206c66e8cc435de1d379c1a3ed389c1c87 (commit)
       via  cf1097ef1225c05eb4431093a4971739a3ee5a37 (commit)
       via  563b588da606aa38cdfd8a35fbc70c7414678747 (commit)
       via  e3fe23ff86e3f5f19c0a76779f957adf1310b949 (commit)
       via  87b2e5da50efa25671f1368e6cb162a5584fe030 (commit)
       via  7086db26dce2ed43098daf1198a37412a5e42e48 (commit)
       via  587fcc936d7b5b0b8c16220a5932cf9441e02ab0 (commit)
       via  6a40678734cd727a4c3be41f06bb4019fc1c6222 (commit)
       via  358045151388f4c5d4078a96e1391b7f02e4ce88 (commit)
       via  016ecd4c969e5bfa560702843c8e381eb3a33060 (commit)
       via  091d56d4e04e5b1051787fdfcc27dd1d5a6f0ec7 (commit)
       via  22db612b913e6b4d68b3600c04d06e4898a2f1a9 (commit)
       via  fcfd4428e2889ceb847b64b0819207c421de1abd (commit)
       via  ae4948ee3a6e2d55a44a31272d1f67b669b0345f (commit)
       via  140012f16cc5945a8c469db3e11f13cc4493cc22 (commit)
       via  4a774fdb7a95a241d4b95649ea57b505784f3362 (commit)
       via  95b0d8142d04199eae27eea17e4a5353d6e3f141 (commit)
       via  7149ee5d616b932a73fb7a311136e6db75020666 (commit)
       via  1ed38089f9d9969abde1849743f0fdf52d3d2d93 (commit)
       via  0311a59f177bd18fb46fc0ceefde5fc9ad07af63 (commit)
       via  34471863720a9e301be1604c2bd546627d435606 (commit)
       via  1a20f5f5423dfab4e03d267680da30125487425a (commit)
       via  4265a54aa0d505c5c35b9b290e2c6600a2766709 (commit)
       via  de3bb6cb95b9699ff6eea6ac836c4598cec331a5 (commit)
       via  93ffb7c3e8c369a1ee7d5f8da08c92ee478f5ea4 (commit)
       via  fdaaff3165642f03d46a628050d6dfb04cd37565 (commit)
       via  9feeea1226399a9fc28acc53eafc45d884f7db65 (commit)
       via  351895cf665a1cc26ab0f39fed696909331c99c4 (commit)
       via  91738b3c2331a102e4aefd4be580e0e979bc514f (commit)
       via  789e479916a89e57cdf1d65c49923449c4fb1bcf (commit)
       via  ea80735a2ea4067d682cde533565dc42920f8d5c (commit)
       via  21ccdae70baaca0c7aeca8542f2a0a431f06c313 (commit)
       via  74e7f636d3ec2f3a20640b721a3fd76fd23cd788 (commit)
       via  21d6720325e567f78329662c286fa693a8688ff4 (commit)
       via  2def202591164c9ade2c2b7ab6f67dc892d10557 (commit)
       via  e8451457c28477a5c3716e878d09d0be147186d6 (commit)
       via  11085f87c952c7e46a15c88e144190cac32b95a8 (commit)
       via  34a9171fa5b01bb206543576947c3300faac280a (commit)
       via  81cb0b6ac320caf7098c735ee06c610d73953ab5 (commit)
       via  c6056f6f1bb99fa10bc2046266accc4a85f66aad (commit)
       via  a008743d5471a30c96159b68ea60371a86ef4c0c (commit)
       via  789e1eb86b5286f3d34b112e0ab802bd3a2793b2 (commit)
       via  a124a5350d31001a7c66381fa853dfcd78dddd06 (commit)
       via  3ca013aedeae5b2085b8fb37ca80501117f0f918 (commit)
       via  3bf2514da60ab2e0b7639959b650cc4d93784080 (commit)
       via  d3dbc2c0557801f0e269a035e257beb09fd53618 (commit)
       via  f2ba19f987bfe7de245176e9fb4ea5e783564494 (commit)
       via  a8b3df3d2c5fa8fa66484d6bb0d20a37a0863d90 (commit)
       via  6eaaae29a7af005e417673d79e0951122065e685 (commit)
       via  ff36aa7e753a28cb36bd13e3cd3bbbe4c6617265 (commit)
       via  83fc1e7b7e621be38e43d3d97bd32447ef846eae (commit)
       via  58ead50fe4b7014562c0697290cf933a956ab852 (commit)
       via  5870334b03237f04df6de35193f78b838f7ac7dc (commit)
       via  99ad159b229c312ef6625e6ef042c33d0db524b9 (commit)
       via  e6359fe13c6b3b4558d703fecdd2f5f1713dc0e9 (commit)
       via  89f38df7ce6e3af8e6119a111cdf985de6e0a0e9 (commit)
       via  fe5ee2e37364330b4a58c0c41e8a0b627e8cb1f2 (commit)
       via  1aabac3cbaf0d701696ffabceb992826abeea8c5 (commit)
       via  8d2639525417aaa02240777454405f2249d505b0 (commit)
       via  ca1ddb913b35eaa4aea43a88501c5b7c6ab95e2c (commit)
       via  3ff1b002f559933d5856fb260a7381ba4fb44e6b (commit)
       via  a15315b96439f2971d4ac6f6868c9de05877cd7c (commit)
       via  06686c47a0f99f5b5f292cde2d391024bf107514 (commit)
       via  7d6bf71834622c22fd65faecbff29ba8a333c636 (commit)
       via  6ad9adc1224f1c45a652258d43b7b4b92898e2d1 (commit)
       via  b25d2ec2950f6e2ffa9943a15c87441ebd6672b2 (commit)
       via  0c6f7b227f95394fd4fffadfe7cfa022e32e5fae (commit)
       via  e102efba3f46986b6a2abaee2cc222db8c85198a (commit)
       via  86e8d9a338e3947337898256479fc904b36949c7 (commit)
       via  b5c04e9b23c7292ea8b976d3614a172241eabaad (commit)
       via  9362030c75c09e363f95dcf742f79570107928d1 (commit)
       via  4fb27993c2989648fab6fa29e2073a65b395379d (commit)
       via  15f367505326b375b17f03e4c54a751337155df0 (commit)
       via  183df814d5cb49d11614acb73b07e4e2809524e2 (commit)
       via  de79b73c55c5b1c469766ac8f930f335ac3fc246 (commit)
       via  6d3a88841b58eb02f6f6aedd38a40ed02cc42d1f (commit)
       via  19c0f65c05c4a4d01bc69d98a33cab6ce61b806b (commit)
       via  3254f0a981f72decc49f2fbd43d4cffb47dfb4b4 (commit)
       via  972974d7f305426854ad6c2e271c33730905dee1 (commit)
       via  cef5c3f1b3bf267aedc3ff6ed92778040efb3882 (commit)
       via  2e76e6ae877fb528d666071075afe2bf4ab21035 (commit)
       via  81c3241d08ced11ea118c7f68db62032ad5bc469 (commit)
       via  8bd432b7fe67766d6f92902e20b5e63c9f18146d (commit)
       via  cdaf5c71016d2cad54d54e9b4b87bafe4554d376 (commit)
       via  2556bf9a17d39e658f91cd9b180848526415ce92 (commit)
       via  41887dd213cfa165925e94d4f3bb120edeb1a30d (commit)
       via  c744c6cecd4f049ce5a2f6e922ca9f74b03fa3a3 (commit)
       via  06d0338d638ce74b51ca3cfe10523e5515269fdf (commit)
       via  ae670519e4075b75346d6152abedf87d41e2cea7 (commit)
       via  85c6c9ee95ce15f6a12b987fe611e917f043e589 (commit)
       via  d599adb390dddea375cd8f79626678d0db5c2027 (commit)
       via  59807e4ab334f7aec9772bf63f186974fba96821 (commit)
       via  12df2994c114b62b0d07a267fdeeaea389e5adb1 (commit)
       via  b81c434401a503746ec54e53bf7058cf42beaa2f (commit)
       via  36bf949652cf8544f6176f77e07273cd3bf9df77 (commit)
       via  41c5cc5a3731417a31c8db685e78cb795bbbe91b (commit)
       via  db0472215ce261406503d7336006bcd64c9feacd (commit)
       via  b7f67c80916c2efa0c234ab5f4e92c24d47223c5 (commit)
       via  a5ec4164873e4972aaaf943e48603daa61a044b7 (commit)
       via  75b8b796ee88196ca1b99dcfed0533565c52dce7 (commit)
       via  90057cfa2c19091b0d627a1df978014998e187c6 (commit)
       via  becd16125599abeefa3d2d1203279bf7eee69669 (commit)
       via  2b08ab24b496f14d2ef97167a2e78e92b179f226 (commit)
       via  5de6c0630a455eb29d83f97e6787a83c8332b1e5 (commit)
       via  b435064a0085044993c5c0f5b8156a61b3e32c54 (commit)
       via  8aeba61dc1cf17b680d6cd3e6bcc4c01f40ff5a3 (commit)
       via  5bce0483011b58a97dded8874491c7b266a850fc (commit)
       via  fd8ed1da05708932eb3e654e333053e1940dc29c (commit)
       via  ee45ddfb506f72a021f772af6477bfeab1204b3a (commit)
       via  c83d732301d7f192895db6c112e0bee29614e314 (commit)
       via  41270a7c0897f2183b6e58674c450a34b65818e9 (commit)
       via  d7e558d103f5620c3c0243c0590dd80b470226ed (commit)
       via  548683db5343421b9abf3ad629054c6da6237928 (commit)
       via  d12f645c2be4e9fd6f89689852efe668bc7d1d83 (commit)
       via  4be40a40a509d1eaad11c442d137f5ecdeb45e25 (commit)
       via  3e4c6eab6c4ed13071fd665aaec8a626a180e6f5 (commit)
       via  7b2a3050d98153329e7a51c3b4fdfdde0859a555 (commit)
       via  1e43af7e01b61945d94ef26c25a1a14b231d605b (commit)
       via  3b0de2173e005deacc22d083a4aea23f9a648865 (commit)
       via  e69a5874b880b9b591e533e2c5f4bc4c3e2ff5d1 (commit)
       via  d0b0a2baec96a678284e3004b13dce85f36ba190 (commit)
       via  edf8405b6a3bbce4a7e11118bb9c706d36856460 (commit)
       via  d8bfa56903897394775f39b612f8dd84372c5433 (commit)
       via  91a44b10f8c7eb1bee8fcd23a577a1969bcdb2e4 (commit)
       via  f4008e9c662be5b576f5e785a4c90cc1e2cfb5fa (commit)
       via  153020da61fa3ca2341aaf5d279e56d8c489aaaa (commit)
       via  a7f12322bab34a27863d90de9ddb95f69697bf29 (commit)
       via  72d24b26cac507988ba6583064451b81d1854d78 (commit)
       via  12d990a6590e5f23a5998d29a2d8efdb0f733688 (commit)
       via  ab7c97818a088e7205d4d01db1e8a0c0709b9aa0 (commit)
       via  8c5f7a869e1d7a7c8f6338d1836987567c32f626 (commit)
       via  9cff4a0bf758ebb2e1a63df6a25c83f11752f8d8 (commit)
       via  fdbf1d6a692ae5991346e352916e8b37bd62cf19 (commit)
       via  518e0fab098eb8e025e72b67d7b2ccd75f3deec9 (commit)
       via  ac22ee15271c0d0c144d9ec42e17da965168e213 (commit)
       via  677eebc84a20221287c22b196dd81cf6ddb22fe1 (commit)
       via  04a4fa5843c3511260a750065cf79203ae1663ee (commit)
       via  963c9e8f87f09ff798e23e0c9ddca6eb7bbec796 (commit)
       via  f2170ad3c6c0f390d427c6b885527b1d1b09ffa3 (commit)
       via  e09e57378e5f98235e472a35c18a3e3a2bac97fb (commit)
       via  1ecc9b7b0b0f88a4e1a96b9bcb77aa580f68cc89 (commit)
       via  044d3d29476a8e59821ca4ebb7144f6c6b0b24ce (commit)
       via  b23bcfdc041fa9459d2beb423eea35e3ad34e64a (commit)
       via  bc59a822ddb8e55739fdbdb04e6fbd78d5116450 (commit)
       via  6d84b6c8ebeaf59a40cd9e4db1a7e897bf76511c (commit)
       via  a0e2de21d7c0cb7d38a3fbfa279e2f8278c5280d (commit)
       via  565198b9c115b5f9b5b190d76ca7a7a0901c9cc6 (commit)
       via  4dac4271e852a29ea23f0fd8efb7db417b444f29 (commit)
       via  c18a47461c7515e46967b9621af01a6699d036cb (commit)
       via  9fe1eb15e54fb07ba90f74043ecb044ce3c198f7 (commit)
       via  b056c28bcb5090bed22d78b84ac9a688dee27577 (commit)
       via  ee52a6f8505cc86e01a5488f8bbb954a676fb5fa (commit)
       via  34aac296f4a0d2df0e369a9169924ef7849d6e85 (commit)
       via  4b34d2584324664897467bb902599938710c9650 (commit)
       via  3bbfa6d0fc44e8f9baf67ca9179bef84f92d35be (commit)
       via  155c3adfcde63fcc40d6a1474cb14c73285703f6 (commit)
       via  379f500eb5304c7a5a0550de567c04f047cc54eb (commit)
       via  651dc72cbcadcbeba7012f835c945f15acb3606c (commit)
       via  ccc1d433b03a5b2d78bccfda15361abc0bdc88ed (commit)
       via  be5ce81414f6849ce50880bdc629600415d0f604 (commit)
       via  6f793d4da23db743b1833c43ccdc006b9bfe7468 (commit)
       via  d613d109dd067be0161380b0c911204e6b47312b (commit)
       via  d7e750680bbf5e655d7c986ce0cff550c8022ca4 (commit)
       via  1fbefb983066a6237664c883e8aa3d45e9f735f9 (commit)
       via  6bb1e16453ba2464a8739d754b61bf69a6c5c581 (commit)
       via  e1ce0f420a72a205a81ee0b52ea04eaf2fb047d8 (commit)
       via  5fcf5ebe7b89517edcb610bf1f1df8abf99df9ae (commit)
       via  1f3035cfe645741753e45ff8d3cf43a3fc5b2385 (commit)
       via  143bbe8d10d826b05357a531de6aa2a14f4cffb9 (commit)
      from  ab874e9d6cd3313ce827dc4d4d574913575ad095 (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 1693dc615e67c1bae3b6b52c0631fc58d8475d8f
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Oct 31 13:28:09 2014 -0400

    4084: Change $(this) to this and add comments.  Refactor @pidfile in test_helper slightly.

diff --git a/apps/workbench/app/assets/javascripts/tab_panes.js b/apps/workbench/app/assets/javascripts/tab_panes.js
index 0430ca9..6356055 100644
--- a/apps/workbench/app/assets/javascripts/tab_panes.js
+++ b/apps/workbench/app/assets/javascripts/tab_panes.js
@@ -23,27 +23,32 @@ $(document).on('shown.bs.tab', '[data-toggle="tab"]', function(event) {
 });
 
 // Ask a refreshable pane to reload via ajax.
-// Target of this event is the anchoring element that manages the pane.
 //
-// Panes can be in one of three primary states, managed by setting CSS classes
-// on the object: not loaded (no pane-* state classes), pane-loading, pane-loaded
+// Target of this event is the anchor element that manages the pane.  A reload
+// consists of an AJAX call to load the "data-pane-content-url" and replace the
+// contents of the DOM node pointed to by "href".
 //
-// not loaded means the pane needs to be loaded when the pane becomes active
+// There are four CSS classes set on the object to indicate its state:
+// pane-loading, pane-stale, pane-loaded, pane-reload-pending
 //
-// pane-loading means there is a current AJAX call outstanding to reload the pane
+// There are five states based on the presence or absence of css classes:
 //
-// pane-loaded means the pane is believe to be up to date
+// 1. no pane-* states means the pane must be loaded when the pane becomes active
 //
-// There are two additional states: pane-stale and pane-reload-pending
+// 2. "pane-loading" means an AJAX call has been made to reload the pane and we are
+// waiting on a result
 //
-// pane-stale indicates a pane that is already loading has been invalidated and
-// should schedule a reload immediately when the current load completes.  (This
-// happens if there are clusters of events, where the reload is trigged by the
-// first event, but we actually want to display the state after the final event
-// has been processed.)
+// 3. "pane-loading pane-stale" indicates a pane that is already loading has
+// been invalidated and should schedule a reload immediately when the current
+// load completes.  (This happens when there is a cluster of events, where the
+// reload is triggered by the first event, but we want ensure that we
+// eventually load the final quiescent state).
+//
+// 4. "pane-loaded" means the pane is up to date
+//
+// 5. "pane-loaded pane-reload-pending" indicates a reload is scheduled (but has
+// not started yet), suppressing scheduling of any further reloads.
 //
-// pane-reload-pending indicates a reload is scheduled, to suppress
-// scheduling any additional reloads.
 $(document).on('arv:pane:reload', function(e) {
     e.stopPropagation();
 
@@ -96,7 +101,7 @@ $(document).on('arv:pane:reload', function(e) {
             done(function(data, status, jqxhr) {
                 // Preserve collapsed state
                 var collapsable = {};
-                $(".collapse", $(this)).each(function(i, c) {
+                $(".collapse", this).each(function(i, c) {
                     collapsable[c.id] = $(c).hasClass('in');
                 });
                 var tmp = $(data);
@@ -107,11 +112,11 @@ $(document).on('arv:pane:reload', function(e) {
                         $(c).removeClass('in');
                     }
                 });
-                $(this).html(tmp);
+                this.html(tmp);
                 $anchor.removeClass('pane-loading');
                 $anchor.addClass('pane-loaded');
                 $anchor.attr('data-loaded-at', (new Date()).getTime());
-                $(this).trigger('arv:pane:loaded');
+                this.trigger('arv:pane:loaded');
 
                 if ($anchor.hasClass('pane-stale')) {
                     $anchor.trigger('arv:pane:reload');
@@ -133,12 +138,12 @@ $(document).on('arv:pane:reload', function(e) {
                         replace(/</g, '<').
                         replace(/>/g, '>');
                 }
-                $(this).html('<div><p>' +
+                this.html('<div><p>' +
                         '<a href="#" class="btn btn-primary tab_reload">' +
                         '<i class="fa fa-fw fa-refresh"></i> ' +
                         'Reload tab</a></p><iframe style="width: 100%"></iframe></div>');
-                $('.tab_reload', $(this)).click(function() {
-                    $(this).html('<div class="spinner spinner-32px spinner-h-center"></div>');
+                $('.tab_reload', this).click(function() {
+                    this.html('<div class="spinner spinner-32px spinner-h-center"></div>');
                     $anchor.trigger('arv:pane:reload');
                 });
                 // We want to render the error in an iframe, in order to
@@ -146,11 +151,12 @@ $(document).on('arv:pane:reload', function(e) {
                 // In order to do that dynamically, we have to set a
                 // timeout on the iframe window to load our HTML *after*
                 // the default source (e.g., about:blank) has loaded.
-                var iframe = $('iframe', $(this))[0];
+                var iframe = $('iframe', this)[0];
                 iframe.contentWindow.setTimeout(function() {
                     $('body', iframe.contentDocument).html(errhtml);
                     iframe.height = iframe.contentDocument.body.scrollHeight + "px";
                 }, 1);
+                $anchor.removeClass('pane-loading');
                 $anchor.addClass('pane-loaded');
             });
     } else {
diff --git a/apps/workbench/test/test_helper.rb b/apps/workbench/test/test_helper.rb
index e365487..d1d63e2 100644
--- a/apps/workbench/test/test_helper.rb
+++ b/apps/workbench/test/test_helper.rb
@@ -128,11 +128,6 @@ class ApiServerForTests
 
   def find_server_pid
     pid = nil
-    @pidfile = if @websocket
-                 WEBSOCKET_PID_PATH
-               else
-                 SERVER_PID_PATH
-               end
     begin
       pid = IO.read(@pidfile).to_i
       $stderr.puts "API server is running, pid #{pid.inspect}"
@@ -148,6 +143,12 @@ class ApiServerForTests
 
     @websocket = args.include?("--websockets")
 
+    @pidfile = if @websocket
+                 WEBSOCKET_PID_PATH
+               else
+                 SERVER_PID_PATH
+               end
+
     # Kill server left over from previous test run
     self.kill_server
 
@@ -156,13 +157,13 @@ class ApiServerForTests
       ENV["NO_COVERAGE_TEST"] = "1"
       if @websocket
         _system('bundle', 'exec', 'passenger', 'start', '-d', '-p3333',
-                '--pid-file', WEBSOCKET_PID_PATH)
+                '--pid-file', @pidfile)
       else
         make_ssl_cert
         _system('bundle', 'exec', 'rake', 'db:test:load')
         _system('bundle', 'exec', 'rake', 'db:fixtures:load')
         _system('bundle', 'exec', 'passenger', 'start', '-d', '-p3000',
-                '--pid-file', SERVER_PID_PATH,
+                '--pid-file', @pidfile,
                 '--ssl',
                 '--ssl-certificate', 'self-signed.pem',
                 '--ssl-certificate-key', 'self-signed.key')

commit e6d161cc976f253863c4b0788ce91c5955046972
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Oct 31 11:47:52 2014 -0400

    4084: Fix workbench tests.

diff --git a/apps/workbench/app/helpers/pipeline_components_helper.rb b/apps/workbench/app/helpers/pipeline_components_helper.rb
index 9fead2c..8f5dba1 100644
--- a/apps/workbench/app/helpers/pipeline_components_helper.rb
+++ b/apps/workbench/app/helpers/pipeline_components_helper.rb
@@ -3,7 +3,7 @@ module PipelineComponentsHelper
     begin
       render(partial: "pipeline_instances/show_components_#{template_suffix}",
              locals: locals)
-    rescue Exception => e
+    rescue => e
       logger.error "#{e.inspect}"
       logger.error "#{e.backtrace.join("\n\t")}"
       case fallback
diff --git a/apps/workbench/app/views/pipeline_instances/_show_components.html.erb b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
index 71cee77..f77379a 100644
--- a/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
+++ b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
@@ -1,6 +1,6 @@
 <% if !@object.state.in? ['New', 'Ready'] %>
 
-<% job_uuids = @object.components.map { |k,j| j[:job].andand[:uuid] }.compact %>
+<% job_uuids = @object.components.map { |k,j| j.is_a? Hash and j[:job].andand[:uuid] }.compact %>
 
 <div id="pipeline-instance-components"
      class="pane-anchor arv-log-event-listener arv-refresh-on-log-event"
diff --git a/apps/workbench/test/integration/websockets_test.rb b/apps/workbench/test/integration/websockets_test.rb
index 87dd835..7211adb 100644
--- a/apps/workbench/test/integration/websockets_test.rb
+++ b/apps/workbench/test/integration/websockets_test.rb
@@ -11,20 +11,20 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "test page" do
-    visit(page_with_token("active", "/websockets"))
+    visit(page_with_token("admin", "/websockets"))
     fill_in("websocket-message-content", :with => "Stuff")
     click_button("Send")
     assert page.has_text? '"status":400'
   end
 
   test "test live logging" do
-    visit(page_with_token("active", "/pipeline_instances/zzzzz-d1hrv-9fm8l10i9z2kqc6"))
+    visit(page_with_token("admin", "/pipeline_instances/zzzzz-d1hrv-9fm8l10i9z2kqc6"))
     click_link("Log")
     assert page.has_no_text? '123 hello'
 
     api = ArvadosApiClient.new
 
-    Thread.current[:arvados_api_token] = @@API_AUTHS["active"]['api_token']
+    Thread.current[:arvados_api_token] = @@API_AUTHS["admin"]['api_token']
     api.api("logs", "", {log: {
                 object_uuid: "zzzzz-d1hrv-9fm8l10i9z2kqc6",
                 event_type: "stderr",
@@ -34,7 +34,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "test live logging scrolling" do
-    visit(page_with_token("active", "/pipeline_instances/zzzzz-d1hrv-9fm8l10i9z2kqc6"))
+    visit(page_with_token("admin", "/pipeline_instances/zzzzz-d1hrv-9fm8l10i9z2kqc6"))
     click_link("Log")
     assert page.has_no_text? '123 hello'
 
@@ -45,7 +45,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
       text << "#{i} hello\n"
     end
 
-    Thread.current[:arvados_api_token] = @@API_AUTHS["active"]['api_token']
+    Thread.current[:arvados_api_token] = @@API_AUTHS["admin"]['api_token']
     api.api("logs", "", {log: {
                 object_uuid: "zzzzz-d1hrv-9fm8l10i9z2kqc6",
                 event_type: "stderr",
@@ -82,7 +82,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "pipeline instance arv-refresh-on-log-event" do
-    Thread.current[:arvados_api_token] = @@API_AUTHS["active"]['api_token']
+    Thread.current[:arvados_api_token] = @@API_AUTHS["admin"]['api_token']
     # Do something and check that the pane reloads.
     p = PipelineInstance.create({state: "RunningOnServer",
                                   components: {
@@ -93,7 +93,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
                                   }
                                 })
 
-    visit(page_with_token("active", "/pipeline_instances/#{p.uuid}"))
+    visit(page_with_token("admin", "/pipeline_instances/#{p.uuid}"))
 
     assert page.has_text? 'Active'
     assert page.has_link? 'Pause'
@@ -112,11 +112,11 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "job arv-refresh-on-log-event" do
-    Thread.current[:arvados_api_token] = @@API_AUTHS["active"]['api_token']
+    Thread.current[:arvados_api_token] = @@API_AUTHS["admin"]['api_token']
     # Do something and check that the pane reloads.
     p = Job.where(uuid: api_fixture('jobs')['running_will_be_completed']['uuid']).results.first
 
-    visit(page_with_token("active", "/jobs/#{p.uuid}"))
+    visit(page_with_token("admin", "/jobs/#{p.uuid}"))
 
     assert page.has_no_text? 'complete'
     assert page.has_no_text? 'Re-run same version'
@@ -131,9 +131,9 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "dashboard arv-refresh-on-log-event" do
-    Thread.current[:arvados_api_token] = @@API_AUTHS["active"]['api_token']
+    Thread.current[:arvados_api_token] = @@API_AUTHS["admin"]['api_token']
 
-    visit(page_with_token("active", "/"))
+    visit(page_with_token("admin", "/"))
 
     assert page.has_no_text? 'test dashboard arv-refresh-on-log-event'
 
diff --git a/services/api/test/fixtures/jobs.yml b/services/api/test/fixtures/jobs.yml
index bf58c12..9026e59 100644
--- a/services/api/test/fixtures/jobs.yml
+++ b/services/api/test/fixtures/jobs.yml
@@ -310,7 +310,7 @@ running_will_be_completed:
   output: ~
   priority: 0
   log: ~
-  is_locked_by_uuid: zzzzz-tpzed-xurymjxw79nv3jz
+  is_locked_by_uuid: zzzzz-tpzed-d9tiejq69daie8f
   tasks_summary:
     failed: 0
     todo: 3

commit 31e1d10eb4a54b13f55b3c9638f46032be633ff9
Merge: ab874e9 2d244de
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Oct 28 15:36:48 2014 -0400

    Merge remote-tracking branch 'origin/master' into 4084-log-pane-refresh


-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list