[ARVADOS] updated: f77d63e6cfaf7278c1cb0fb05e5a4e3f45320e3a

Git user git at public.curoverse.com
Thu Jun 15 17:26:31 EDT 2017


Summary of changes:
 build/package-build-dockerfiles/Makefile           |  2 +-
 build/package-build-dockerfiles/centos7/Dockerfile |  2 +-
 build/package-build-dockerfiles/debian8/Dockerfile |  2 +-
 .../ubuntu1204/Dockerfile                          |  2 +-
 .../ubuntu1404/Dockerfile                          |  2 +-
 .../ubuntu1604/Dockerfile                          |  2 +-
 build/run-tests.sh                                 |  4 +--
 sdk/go/arvados/collection_fs.go                    |  2 --
 services/keep-web/handler.go                       | 34 ++++++++++++++++------
 9 files changed, 33 insertions(+), 19 deletions(-)

       via  f77d63e6cfaf7278c1cb0fb05e5a4e3f45320e3a (commit)
       via  a7240d9ad7e1bd676097665fe3fdc1727cbc2e1b (commit)
       via  312b1a86d1ec886f4baec15034ba1600a9cf1ec2 (commit)
       via  490895ac6ab70a5340b80e734b81a2250412635c (commit)
       via  c40b0299b306f2b508e178b2df210f8a3d9d10e7 (commit)
      from  1a86e126dcc5d60666d8233a1b458591a6632190 (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 f77d63e6cfaf7278c1cb0fb05e5a4e3f45320e3a
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Jun 15 17:24:07 2017 -0400

    8784: Update to Go 1.8.3.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curoverse.com>

diff --git a/build/package-build-dockerfiles/Makefile b/build/package-build-dockerfiles/Makefile
index 75f75ca..34e9095 100644
--- a/build/package-build-dockerfiles/Makefile
+++ b/build/package-build-dockerfiles/Makefile
@@ -20,7 +20,7 @@ ubuntu1604/generated: common-generated-all
 	test -d ubuntu1604/generated || mkdir ubuntu1604/generated
 	cp -rlt ubuntu1604/generated common-generated/*
 
-GOTARBALL=go1.7.5.linux-amd64.tar.gz
+GOTARBALL=go1.8.3.linux-amd64.tar.gz
 
 common-generated-all: common-generated/$(GOTARBALL)
 
diff --git a/build/package-build-dockerfiles/centos7/Dockerfile b/build/package-build-dockerfiles/centos7/Dockerfile
index 08bd473..162cf79 100644
--- a/build/package-build-dockerfiles/centos7/Dockerfile
+++ b/build/package-build-dockerfiles/centos7/Dockerfile
@@ -5,7 +5,7 @@ MAINTAINER Brett Smith <brett at curoverse.com>
 RUN yum -q -y install make automake gcc gcc-c++ libyaml-devel patch readline-devel zlib-devel libffi-devel openssl-devel bzip2 libtool bison sqlite-devel rpm-build git perl-ExtUtils-MakeMaker libattr-devel nss-devel libcurl-devel which tar unzip scl-utils centos-release-scl postgresql-devel python-devel python-setuptools fuse-devel xz-libs git
 
 # Install golang binary
-ADD generated/go1.7.5.linux-amd64.tar.gz /usr/local/
+ADD generated/go1.8.3.linux-amd64.tar.gz /usr/local/
 RUN ln -s /usr/local/go/bin/go /usr/local/bin/
 
 # Install RVM
diff --git a/build/package-build-dockerfiles/debian8/Dockerfile b/build/package-build-dockerfiles/debian8/Dockerfile
index d4e77c9..0e4f696 100644
--- a/build/package-build-dockerfiles/debian8/Dockerfile
+++ b/build/package-build-dockerfiles/debian8/Dockerfile
@@ -13,7 +13,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
     /usr/local/rvm/bin/rvm-exec default gem install cure-fpm --version 1.6.0b
 
 # Install golang binary
-ADD generated/go1.7.5.linux-amd64.tar.gz /usr/local/
+ADD generated/go1.8.3.linux-amd64.tar.gz /usr/local/
 RUN ln -s /usr/local/go/bin/go /usr/local/bin/
 
 ENV WORKSPACE /arvados
diff --git a/build/package-build-dockerfiles/ubuntu1204/Dockerfile b/build/package-build-dockerfiles/ubuntu1204/Dockerfile
index daeabc9..ef0414a 100644
--- a/build/package-build-dockerfiles/ubuntu1204/Dockerfile
+++ b/build/package-build-dockerfiles/ubuntu1204/Dockerfile
@@ -13,7 +13,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
     /usr/local/rvm/bin/rvm-exec default gem install cure-fpm --version 1.6.0b
 
 # Install golang binary
-ADD generated/go1.7.5.linux-amd64.tar.gz /usr/local/
+ADD generated/go1.8.3.linux-amd64.tar.gz /usr/local/
 RUN ln -s /usr/local/go/bin/go /usr/local/bin/
 
 ENV WORKSPACE /arvados
diff --git a/build/package-build-dockerfiles/ubuntu1404/Dockerfile b/build/package-build-dockerfiles/ubuntu1404/Dockerfile
index aa92ad2..0d4be78 100644
--- a/build/package-build-dockerfiles/ubuntu1404/Dockerfile
+++ b/build/package-build-dockerfiles/ubuntu1404/Dockerfile
@@ -13,7 +13,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
     /usr/local/rvm/bin/rvm-exec default gem install cure-fpm --version 1.6.0b
 
 # Install golang binary
-ADD generated/go1.7.5.linux-amd64.tar.gz /usr/local/
+ADD generated/go1.8.3.linux-amd64.tar.gz /usr/local/
 RUN ln -s /usr/local/go/bin/go /usr/local/bin/
 
 ENV WORKSPACE /arvados
diff --git a/build/package-build-dockerfiles/ubuntu1604/Dockerfile b/build/package-build-dockerfiles/ubuntu1604/Dockerfile
index 265141c..b1ec7ce 100644
--- a/build/package-build-dockerfiles/ubuntu1604/Dockerfile
+++ b/build/package-build-dockerfiles/ubuntu1604/Dockerfile
@@ -13,7 +13,7 @@ RUN gpg --keyserver pool.sks-keyservers.net --recv-keys D39DC0E3 && \
     /usr/local/rvm/bin/rvm-exec default gem install cure-fpm --version 1.6.0b
 
 # Install golang binary
-ADD generated/go1.7.5.linux-amd64.tar.gz /usr/local/
+ADD generated/go1.8.3.linux-amd64.tar.gz /usr/local/
 RUN ln -s /usr/local/go/bin/go /usr/local/bin/
 
 ENV WORKSPACE /arvados
diff --git a/build/run-tests.sh b/build/run-tests.sh
index dffbe32..453a953 100755
--- a/build/run-tests.sh
+++ b/build/run-tests.sh
@@ -168,8 +168,8 @@ sanity_checks() {
     echo -n 'go: '
     go version \
         || fatal "No go binary. See http://golang.org/doc/install"
-    [[ $(go version) =~ go1.([0-9]+) ]] && [[ ${BASH_REMATCH[1]} -ge 7 ]] \
-        || fatal "Go >= 1.7 required. See http://golang.org/doc/install"
+    [[ $(go version) =~ go1.([0-9]+) ]] && [[ ${BASH_REMATCH[1]} -ge 8 ]] \
+        || fatal "Go >= 1.8 required. See http://golang.org/doc/install"
     echo -n 'gcc: '
     gcc --version | egrep ^gcc \
         || fatal "No gcc. Try: apt-get install build-essential"

commit a7240d9ad7e1bd676097665fe3fdc1727cbc2e1b
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Jun 15 17:18:59 2017 -0400

    8784: Remove useless condition.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curoverse.com>

diff --git a/sdk/go/arvados/collection_fs.go b/sdk/go/arvados/collection_fs.go
index 89b296e..83ed192 100644
--- a/sdk/go/arvados/collection_fs.go
+++ b/sdk/go/arvados/collection_fs.go
@@ -188,8 +188,6 @@ func (c *collectionFS) Open(name string) (http.File, error) {
 	// entries below it.
 	children := map[string]collectionDirent{}
 	for fnm, size := range filesizes {
-		if fnm == name {
-		}
 		if !strings.HasPrefix(fnm, name+"/") {
 			continue
 		}

commit 312b1a86d1ec886f4baec15034ba1600a9cf1ec2
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Jun 15 17:15:34 2017 -0400

    8784: Show "no files" note if the collection is empty.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curoverse.com>

diff --git a/services/keep-web/handler.go b/services/keep-web/handler.go
index 3e1a97e..4b17e86 100644
--- a/services/keep-web/handler.go
+++ b/services/keep-web/handler.go
@@ -389,9 +389,13 @@ the entire collection with wget, try:</P>
 
 <H2>File Listing</H2>
 
+{{if .Files}}
 <UL>
 {{range .Files}}  <LI>{{.Size | printf "%15d  " | nbsp}}<A href="{{.Name}}">{{.Name}}</A></LI>{{end}}
 </UL>
+{{else}}
+<P>(No files; this collection is empty.)</P>
+{{end}}
 
 <HR noshade>
 <DIV class="footer">

commit 490895ac6ab70a5340b80e734b81a2250412635c
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Jun 15 17:02:20 2017 -0400

    8784: Improve comments. Fix fake error on range requests.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curoverse.com>

diff --git a/services/keep-web/handler.go b/services/keep-web/handler.go
index ecc6982..3e1a97e 100644
--- a/services/keep-web/handler.go
+++ b/services/keep-web/handler.go
@@ -165,7 +165,7 @@ func (h *handler) ServeHTTP(wOrig http.ResponseWriter, r *http.Request) {
 		h.serveStatus(w, r)
 		return
 	} else if len(pathParts) >= 1 && strings.HasPrefix(pathParts[0], "c=") {
-		// /c=ID/PATH...
+		// /c=ID[/PATH...]
 		targetID = parseCollectionIDFromURL(pathParts[0][2:])
 		stripParts = 1
 	} else if len(pathParts) >= 2 && pathParts[0] == "collections" {
@@ -321,18 +321,30 @@ func (h *handler) ServeHTTP(wOrig http.ResponseWriter, r *http.Request) {
 	}, kc)
 	openPath := "/" + strings.Join(targetPath, "/")
 	if f, err := fs.Open(openPath); os.IsNotExist(err) {
+		// Requested non-existent path
 		statusCode = http.StatusNotFound
 	} else if err != nil {
+		// Some other (unexpected) error
 		statusCode, statusText = http.StatusInternalServerError, err.Error()
 	} else if stat, err := f.Stat(); err != nil {
+		// Can't get Size/IsDir (shouldn't happen with a collectionFS!)
 		statusCode, statusText = http.StatusInternalServerError, err.Error()
 	} else if stat.IsDir() && !strings.HasSuffix(r.URL.Path, "/") {
+		// If client requests ".../dirname", redirect to
+		// ".../dirname/". This way, relative links in the
+		// listing for "dirname" can always be "fnm", never
+		// "dirname/fnm".
 		h.seeOtherWithCookie(w, r, basename+"/", credentialsOK)
 	} else if stat.IsDir() {
 		h.serveDirectory(w, r, collection.Name, fs, openPath, stripParts)
 	} else {
 		http.ServeContent(w, r, basename, stat.ModTime(), f)
-		if int64(w.WroteBodyBytes()) != stat.Size() {
+		if r.Header.Get("Range") == "" && int64(w.WroteBodyBytes()) != stat.Size() {
+			// If we wrote fewer bytes than expected, it's
+			// too late to change the real response code
+			// or send an error message to the client, but
+			// at least we can try to put some useful
+			// debugging info in the logs.
 			n, err := f.Read(make([]byte, 1024))
 			statusCode, statusText = http.StatusInternalServerError, fmt.Sprintf("f.Size()==%d but only wrote %d bytes; read(1024) returns %d, %s", stat.Size(), w.WroteBodyBytes(), n, err)
 

commit c40b0299b306f2b508e178b2df210f8a3d9d10e7
Author: Tom Clegg <tom at curoverse.com>
Date:   Thu Jun 15 17:01:28 2017 -0400

    8784: Just pass collection name to serveDirectory, not whole record.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curoverse.com>

diff --git a/services/keep-web/handler.go b/services/keep-web/handler.go
index 17be603..ecc6982 100644
--- a/services/keep-web/handler.go
+++ b/services/keep-web/handler.go
@@ -329,7 +329,7 @@ func (h *handler) ServeHTTP(wOrig http.ResponseWriter, r *http.Request) {
 	} else if stat.IsDir() && !strings.HasSuffix(r.URL.Path, "/") {
 		h.seeOtherWithCookie(w, r, basename+"/", credentialsOK)
 	} else if stat.IsDir() {
-		h.serveDirectory(w, r, collection, fs, openPath, stripParts)
+		h.serveDirectory(w, r, collection.Name, fs, openPath, stripParts)
 	} else {
 		http.ServeContent(w, r, basename, stat.ModTime(), f)
 		if int64(w.WroteBodyBytes()) != stat.Size() {
@@ -367,7 +367,7 @@ var dirListingTemplate = `<!DOCTYPE HTML>
   </STYLE>
 </HEAD>
 <BODY>
-<H1>{{ .Collection.Name }}</H1>
+<H1>{{ .CollectionName }}</H1>
 
 <P>This collection of data files is being shared with you through
 Arvados.  You can download individual files listed below.  To download
@@ -399,7 +399,7 @@ type fileListEnt struct {
 	Size int64
 }
 
-func (h *handler) serveDirectory(w http.ResponseWriter, r *http.Request, collection *arvados.Collection, fs http.FileSystem, base string, stripParts int) {
+func (h *handler) serveDirectory(w http.ResponseWriter, r *http.Request, collectionName string, fs http.FileSystem, base string, stripParts int) {
 	var files []fileListEnt
 	var walk func(string) error
 	if !strings.HasSuffix(base, "/") {
@@ -453,10 +453,10 @@ func (h *handler) serveDirectory(w http.ResponseWriter, r *http.Request, collect
 	})
 	w.WriteHeader(http.StatusOK)
 	tmpl.Execute(w, map[string]interface{}{
-		"Collection": collection,
-		"Files":      files,
-		"Request":    r,
-		"StripParts": stripParts,
+		"CollectionName": collectionName,
+		"Files":          files,
+		"Request":        r,
+		"StripParts":     stripParts,
 	})
 }
 

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list