[ARVADOS] updated: 30012ed996dd5336cbfa7394234d1cbbf08a2b78
git at public.curoverse.com
git at public.curoverse.com
Thu Aug 27 16:04:16 EDT 2015
Summary of changes:
.gitignore | 3 +
doc/install/install-api-server.html.textile.liquid | 8 +-
.../install-arv-git-httpd.html.textile.liquid | 16 +-
doc/install/install-keepproxy.html.textile.liquid | 38 +++--
.../install-shell-server.html.textile.liquid | 95 ++++++++++++
.../install-workbench-app.html.textile.liquid | 46 +++---
.../arvados/v1/virtual_machines_controller.rb | 18 ++-
services/api/lib/salvage_collection.rb | 94 ++++++++++++
services/api/script/salvage_collection.rb | 26 ++++
.../arvados/v1/virtual_machines_controller_test.rb | 7 +
services/api/test/unit/salvage_collection_test.rb | 165 +++++++++++++++++++++
services/arv-git-httpd/auth_handler.go | 7 +-
services/arv-git-httpd/doc.go | 26 ++--
services/arv-git-httpd/git_handler.go | 59 ++++++++
services/arv-git-httpd/git_handler_test.go | 56 +++++++
services/arv-git-httpd/main.go | 2 +-
services/arv-git-httpd/server.go | 13 +-
{sdk/ruby => services/login-sync}/.gitignore | 2 +-
services/login-sync/Gemfile | 7 +
{sdk/ruby => services/login-sync}/Rakefile | 0
.../login-sync/arvados-login-sync.gemspec | 18 +--
services/login-sync/bin/arvados-login-sync | 111 ++++++++++++++
services/login-sync/test/binstub_new_user/useradd | 9 ++
services/login-sync/test/stubs.rb | 52 +++++++
services/login-sync/test/test_add_user.rb | 37 +++++
25 files changed, 827 insertions(+), 88 deletions(-)
create mode 100755 services/api/lib/salvage_collection.rb
create mode 100755 services/api/script/salvage_collection.rb
create mode 100644 services/api/test/unit/salvage_collection_test.rb
create mode 100644 services/arv-git-httpd/git_handler.go
create mode 100644 services/arv-git-httpd/git_handler_test.go
copy {sdk/ruby => services/login-sync}/.gitignore (52%)
create mode 100644 services/login-sync/Gemfile
copy {sdk/ruby => services/login-sync}/Rakefile (100%)
copy sdk/ruby/arvados.gemspec => services/login-sync/arvados-login-sync.gemspec (51%)
create mode 100755 services/login-sync/bin/arvados-login-sync
create mode 100755 services/login-sync/test/binstub_new_user/useradd
create mode 100644 services/login-sync/test/stubs.rb
create mode 100644 services/login-sync/test/test_add_user.rb
discards 7c4d45b996b744d582ccdfcc635d04c2a4bc2241 (commit)
discards 687d75720ae2340f7907ff718ef778cf88cc63e2 (commit)
via 30012ed996dd5336cbfa7394234d1cbbf08a2b78 (commit)
via 7d972883c71002a4ef11a7f85b47311b48847fa3 (commit)
via 42c4ef158ac51f01f071a285e4a131acbf753ab9 (commit)
via deaf93e06ddfb5346f0492f99f441aa4734e6bf5 (commit)
via 9259c169b6254ea581fcdcb18e1cdbe9b9fbea1e (commit)
via 8e17ce539b4a90711f4a8059a0eff11b9c64207b (commit)
via 4b8da3c9e3a48820ae3b1538103eda0282118392 (commit)
via bb7be2d3e49876a74fddb76260f3eac07bf0a431 (commit)
via 7fc67e3f9bfd12058e6f3d86d995704ed8962a8b (commit)
via a1379fdd1f825c22a3ada0a2c085a1b0121ce89a (commit)
via f2afe64c25d1b3e79b38972e69104431a2587935 (commit)
via cf2d5c1b966cae7d5023ff482891c4ea7e767de4 (commit)
via a9359cd6ff10866acc943889ee77ab3f971dfa4e (commit)
via 51a185e0f13ec3b2c376d3229c56d012dc91a04a (commit)
via 51e6fbab8d08a5a92fc08c552f841a84bccbe0d6 (commit)
via 8c1005ef92cffff5a4a9321f3b62da715b141c3d (commit)
via f71873ca6ec9969a90242a1c4d391770cabce1c2 (commit)
via ef8f43b830273dd54ae75f6a3823a946a455c2b3 (commit)
via 1ca973446ddf0094cd563a7af63f4e3078f5b772 (commit)
via a8b431b5cfccd36995514560f965b4943ac93c6b (commit)
via 36b1667a9b2ab888a80e84b6ecd75403c8f6782c (commit)
via 2a6a3720271a12bc8a47928ade5b2c641514ca44 (commit)
via d78a90009ca25da4f8cfa75672df0b5bd77cabfe (commit)
via 54819dd75fb929acfab581890dd1c8ee17cccf3e (commit)
via 2656de63a9531f23aea840f6cb92e0cdc803599f (commit)
via 2c9b40bdc8acd7fdd906c80e2c7f44abfb720de3 (commit)
via e513251f7b0f6acdc0c0d6df5792c18358030221 (commit)
via 6feefc59c459d778046a83cb29178afc04acdf1c (commit)
via b5a7183d43ca4607fdc259267087e7f795d14de2 (commit)
via 9f277b55034436e3a4ed251e4e86ea088adef20e (commit)
via a99c7bb0683175f2e8d365b7439e64a21f6cdb31 (commit)
via 9494d7df964f24d7d8d53a09233d696d4ffcc234 (commit)
via a53d5ecd720cebfe1d81c077996cd2107ed80359 (commit)
via 6e5158294c7e19af9031fc43fefc21275e758911 (commit)
via 1de4f2fbc12c840726bc340792a73814818f3faa (commit)
via b20aa99b4356a2afa092bb355a0db78b0b8f711f (commit)
via 647c3bac741b56ce16c7e22ab2d462725a34198d (commit)
via 96b2b2fef69eaad2da73c1c5a0ee01f939089e15 (commit)
via 381951637e6688e1868fae9b0642411f5cd1c223 (commit)
via 65f76d01b775c944d2ef6c1673633adb6229d9d8 (commit)
via 21f6342de550d985db7e2d6964af2ad0f8405406 (commit)
via 3c068341659783d0d7132f92b14c05c07830d5b2 (commit)
via a25971cae157b6bc40037e391db226da36dc9b30 (commit)
via 446868283108deda5510f4419b4065d254a4c5a8 (commit)
via 3987bcc3f5f6acf9207e94049561c632b454f38a (commit)
via 42e27f90df96881d22e365af7069f36c4538cf07 (commit)
via 749b308236ab70cd15088fcb81d093c9c5e8d30b (commit)
via 636d833ed4206ffe44e5e9b9b9100ac9d82bc603 (commit)
via 08a10afd0681a04e5bae019870d636d49c3dc223 (commit)
via a0daf49f4231d5b4ec6a8a00bfa0aac1ce69cde8 (commit)
via ca35c58c19b28dcdbbff71fe3da0ee16ca760673 (commit)
via 07f2ff368aa089e4f128578c49287d40d84dfcdf (commit)
via 687a5246e161ef1d191264d3b579271bc834223c (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (7c4d45b996b744d582ccdfcc635d04c2a4bc2241)
\
N -- N -- N (30012ed996dd5336cbfa7394234d1cbbf08a2b78)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
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 30012ed996dd5336cbfa7394234d1cbbf08a2b78
Author: Tom Clegg <tom at curoverse.com>
Date: Sun Aug 23 20:05:43 2015 -0400
6997: Avoid unnecessarily inefficient dirent sorting (and a mismatch between index and store/fetch logic) by doing a custom traversal.
diff --git a/services/keepstore/volume_unix.go b/services/keepstore/volume_unix.go
index 7c8e40c..a7ad6f9 100644
--- a/services/keepstore/volume_unix.go
+++ b/services/keepstore/volume_unix.go
@@ -9,6 +9,7 @@ import (
"log"
"os"
"path/filepath"
+ "regexp"
"strconv"
"strings"
"sync"
@@ -167,6 +168,8 @@ func (v *UnixVolume) Status() *VolumeStatus {
return &VolumeStatus{v.root, devnum, free, used}
}
+var blockDirRe = regexp.MustCompile(`^[0-9a-f]+$`)
+
// IndexTo writes (to the given Writer) a list of blocks found on this
// volume which begin with the specified prefix. If the prefix is an
// empty string, IndexTo writes a complete list of blocks.
@@ -182,31 +185,54 @@ func (v *UnixVolume) Status() *VolumeStatus {
// e4de7a2810f5554cd39b36d8ddb132ff+67108864 1388701136
//
func (v *UnixVolume) IndexTo(prefix string, w io.Writer) error {
- return filepath.Walk(v.root,
- func(path string, info os.FileInfo, err error) error {
- if err != nil {
- log.Printf("%s: IndexTo Walk error at %s: %s",
- v, path, err)
- return nil
- }
- basename := filepath.Base(path)
- if info.IsDir() &&
- !strings.HasPrefix(basename, prefix) &&
- !strings.HasPrefix(prefix, basename) {
- // Skip directories that do not match
- // prefix. We know there is nothing
- // interesting inside.
- return filepath.SkipDir
+ var lastErr error = nil
+ rootdir, err := os.Open(v.root)
+ if err != nil {
+ return err
+ }
+ defer rootdir.Close()
+ for {
+ names, err := rootdir.Readdirnames(1)
+ if err == io.EOF {
+ return lastErr
+ } else if err != nil {
+ return err
+ }
+ if !strings.HasPrefix(names[0], prefix) && !strings.HasPrefix(prefix, names[0]) {
+ // prefix excludes all blocks stored in this dir
+ continue
+ }
+ if !blockDirRe.MatchString(names[0]) {
+ continue
+ }
+ blockdirpath := filepath.Join(v.root, names[0])
+ blockdir, err := os.Open(blockdirpath)
+ if err != nil {
+ log.Print("Error reading ", blockdirpath, ": ", err)
+ lastErr = err
+ continue
+ }
+ for {
+ fileInfo, err := blockdir.Readdir(1)
+ if err == io.EOF {
+ break
+ } else if err != nil {
+ log.Print("Error reading ", blockdirpath, ": ", err)
+ lastErr = err
+ break
}
- if info.IsDir() ||
- !IsValidLocator(basename) ||
- !strings.HasPrefix(basename, prefix) {
- return nil
+ name := fileInfo[0].Name()
+ if !strings.HasPrefix(name, prefix) {
+ continue
}
- _, err = fmt.Fprintf(w, "%s+%d %d\n",
- basename, info.Size(), info.ModTime().Unix())
- return err
- })
+ _, err = fmt.Fprint(w,
+ name,
+ "+", fileInfo[0].Size(),
+ " ", fileInfo[0].ModTime().Unix(),
+ "\n")
+ }
+ blockdir.Close()
+ }
}
func (v *UnixVolume) Delete(loc string) error {
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list