5440: remove all links to /start temporarily to avoid confusing user
Put in quickstart sections on docs homepage for both 1) public pipeline 2) pipeline developers
Revert changes made in #5090 (home title back to "Arvados Docs", topnav link to "arvados.org")
Refactor /user/index.html, removing references to /start and directing new users to homepage quickstart section
* Get links with API list calls, instead of fetching each one
individually.
* Get a list mapping portable data hashes to UUIDs, and add a single
UUID per portable data hash to the fetch list. This helps us avoid
downloading multiple copies the same manifest text, and is probably
the single-biggest win in this entire commit for most use cases.
* Use the Ruby SDK to build the new collection. This lets us avoid
spawning new arv-normalize processes, and piping large manifests to
them. It also lets us build the entire collection and normalize
only when we're done.
Peter Amstutz [Mon, 13 Apr 2015 14:18:16 +0000 (10:18 -0400)]
5692: Add flush flag to manifest_text() which calls commit_all(). Added
portable_manifest_text() which returns the stripped, normalized manifest text
free of side effects. Fixed tests.
Peter Amstutz [Fri, 10 Apr 2015 19:27:05 +0000 (15:27 -0400)]
5692: Collection.manifest_text(strip=False) will flush open files and wait for
all blocks to be committed in order to return a manifest text with valid
authorization tokens. Fix tests affected by the change.
Tom Clegg [Sun, 29 Mar 2015 00:26:00 +0000 (20:26 -0400)]
5414: Add client support for Keep service hints.
Also, some incidental improvements in nearby code:
* Consistent logging in keepproxy, with one reusable logging statement
instead of a different statement/format for each outcome.
* In sdk/go/keepclient, remove public AuthorizedGet and AuthorizedAsk
methods. Instead, Get() and Ask() accept a locator (with or without
a permission token) and do the right thing. Callers don't have to
parse locators to decide which method to call.
* In sdk/go/keepclient, use an RWMutex instead of atomic.LoadPointer()
and unsafe.Pointer() to update KeepClient root maps safely.
* In sdk/go/keepclient, DiscoverKeepServers() doesn't return the new
root maps, just an error. In normal usage, the caller only cares
whether discovery was successful.
Also, some Go style fixes in nearby code:
* Use pointer receivers for all KeepClient methods.
https://golang.org/doc/faq#methods_on_values_or_pointers
* Use receiver name "kc", not "this".
https://github.com/golang/go/wiki/CodeReviewComments#receiver-names
* Handle errors first, use minimal indentation for normal code path.
https://github.com/golang/go/wiki/CodeReviewComments#indent-error-flow
Brett Smith [Wed, 8 Apr 2015 13:46:23 +0000 (09:46 -0400)]
5642: Explicitly make all swap available under Docker in crunch-job.
Without this, Docker 1.2 through 1.5 send subprocesses SIGKILL if they
exceed the memory limit. Refer to #5642 for an example.
--memory-swap is pretty new (newer than 1.3.3), so we don't want to
require it. At the same time, we don't want to impose any memory
limits if we can't use it, because killing subprocesses that exceed a
--memory limit is too strict. This commit arranges to use both
--memory and --memory-swap only if the latter is available.
Brett Smith [Mon, 6 Apr 2015 18:27:21 +0000 (14:27 -0400)]
5653: arv-copy copies multiple commits from the same repository+pipeline.
arv-copy previously used the repository name alone to determine which
job scripts it had already copied to the destination. If a pipeline
used unrelated commits from the same repository, it would skip copying
over all but the first. Track script versions throughout the copy
process and make sure all of them are copied to the destination
repository.
Brett Smith [Sun, 5 Apr 2015 21:10:22 +0000 (17:10 -0400)]
5352: crunch-dispatch treats node allocation failure as temporary.
Imagine a scenario where multiple crunch-dispatch processes are
sitting idle, then suddenly a new job appears in the queue. They will
all race to dispatch the job. When this happens, we frequently see
that salloc fails for most of them, because they all requested the
same node(s) and only the winner will get them. crunch-dispatch has
no way to know the exit code "came from" salloc and not crunch-job,
and so marks the job failed.
This patch sets the SLURM_EXIT_IMMEDIATE environment variable to make
salloc use exit code 75 when the allocation fails. crunch-dispatch
already recognizes this exit code as a temporary failure, and will
leave the Arvados job record unchanged. Refer to salloc(1) and the
long comment in Dispatch#reap_children.