[ARVADOS] updated: 0315f11bafce076830fdde121c2567020b5be241
Git user
git at public.curoverse.com
Wed May 25 10:29:53 EDT 2016
Summary of changes:
build/run-build-packages.sh | 4 +-
crunch_scripts/cwl-runner | 16 ++-
sdk/cwl/arvados_cwl/__init__.py | 124 ++++++++++++++---------
sdk/cwl/setup.py | 2 +-
sdk/cwl/tests/test_job.py | 11 ++-
sdk/cwl/tests/test_submit.py | 12 +--
sdk/cwl/tests/tool/submit_tool.cwl | 1 +
sdk/cwl/tests/wf/inputs_test.cwl | 1 +
sdk/cwl/tests/wf/submit_wf.cwl | 1 +
sdk/go/dispatch/dispatch.go | 16 ++-
services/datamanager/collection/collection.go | 14 +--
services/keepstore/azure_blob_volume.go | 137 +++++++++++++++++++++++---
services/keepstore/azure_blob_volume_test.go | 33 ++++++-
services/keepstore/s3_volume.go | 4 +-
services/keepstore/volume_generic_test.go | 62 +++++++++++-
services/keepstore/volume_unix.go | 4 +-
16 files changed, 352 insertions(+), 90 deletions(-)
via 0315f11bafce076830fdde121c2567020b5be241 (commit)
via b3ea09708bc16ae8b24d49532383b3600631c9ff (commit)
via d3bd05e221e5b7bf516bb1043bee96ab363c0af8 (commit)
via fedd51d0c04895951920d75147e3640f706653f6 (commit)
via aa1d6f9c5e1e21ceedf855bdb2f6db9154f26669 (commit)
via 25be2534e8746475ddc799042fefa08bd0548e9d (commit)
via cffa542e4cb069b40764c889613c249e88af62d0 (commit)
via 7a430017d745cab4458aa03f620e7925a50b7d06 (commit)
via 08cc91f0493dd8dfe27046faf02c2c907e50443e (commit)
via 3c8c81609c8e9b3b422477002e8a348aabafb3b9 (commit)
via ece22330313613cf4ce8f2b0bd6db4f00bdd08fc (commit)
via e0fac5213f40fc00946f8ec5e4df42bebdf756d2 (commit)
via 5011827dbbe6b17606bf83338b99dd53789ae9cc (commit)
via 0bce01f575822851da09f252b38d7009ed7a5ab0 (commit)
via df8d0badeb97036564a80e89569c8e62ede22163 (commit)
via 1cde74c26fd6a7793a7bb1a9bd748ce06e37c455 (commit)
via 53deed9cb00b94a69a3be1f959cbfda342646718 (commit)
via c8d9a898cde654b53200bda0b0ef8b406dd71739 (commit)
from 11d484489c21487074ecb6d15b086c02b13e326f (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 0315f11bafce076830fdde121c2567020b5be241
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Wed May 25 10:29:49 2016 -0400
9187: Add comments to dispatch.go
diff --git a/sdk/go/dispatch/dispatch.go b/sdk/go/dispatch/dispatch.go
index 9ce7bf8..9491f96 100644
--- a/sdk/go/dispatch/dispatch.go
+++ b/sdk/go/dispatch/dispatch.go
@@ -10,6 +10,7 @@ import (
"time"
)
+// Constants for container states
const (
Queued = "Queued"
Locked = "Locked"
@@ -41,6 +42,7 @@ type ContainerList struct {
Items []Container `json:"items"`
}
+// DispatcherState holds the state of the dispatcher framework
type DispatcherState struct {
mineMutex sync.Mutex
mineMap map[string]chan Container
@@ -121,7 +123,7 @@ func (dispatcher *DispatcherState) pollContainers() {
dispatcher.getContainers(paramsP, touched)
dispatcher.mineMutex.Lock()
var monitored []string
- for k, _ := range dispatcher.mineMap {
+ for k := range dispatcher.mineMap {
if _, ok := touched[k]; !ok {
monitored = append(monitored, k)
}
@@ -177,6 +179,7 @@ func (dispatcher *DispatcherState) handleContainers() {
}
}
+// UpdateState makes an API call to change the state of a container.
func (dispatcher *DispatcherState) UpdateState(uuid, newState string) error {
err := dispatcher.Arv.Update("containers", uuid,
arvadosclient.Dict{
@@ -188,6 +191,9 @@ func (dispatcher *DispatcherState) UpdateState(uuid, newState string) error {
return err
}
+// RunDispatcher runs the main loop of the dispatcher until receiving a message
+// on the dispatcher.DoneProcessing channel. It also installs a signal handler
+// to terminate gracefully on SIGINT, SIGTERM or SIGQUIT.
func (dispatcher *DispatcherState) RunDispatcher() {
// Graceful shutdown on signal
sigChan := make(chan os.Signal)
@@ -207,6 +213,14 @@ func (dispatcher *DispatcherState) RunDispatcher() {
dispatcher.handleContainers()
}
+// MakeDispatcher creates a new dispatcher framework struct. When a new queued
+// containers appears and is successfully locked, the dispatcher will call
+// runContainer() followed by monitorContainer(). If a container appears that
+// is Locked or Running but not known to the dispatcher, it will only call
+// monitorContainer(). The monitorContainer() callback is passed a channel
+// over which it will receive updates to the container state. The callback is
+// responsible for draining the channel, if it fails to do so it will deadlock
+// the dispatcher.
func MakeDispatcher(arv arvadosclient.ArvadosClient,
pollInterval time.Duration,
runContainer func(*DispatcherState, Container),
commit b3ea09708bc16ae8b24d49532383b3600631c9ff
Merge: 11d4844 d3bd05e
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Wed May 25 09:30:24 2016 -0400
Merge branch 'master' into 9187-crunchv2-dispatching
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list