[ARVADOS] updated: 4cd888928e8789c5d05027a627989bf1cd10726d

Git user git at public.curoverse.com
Sun May 1 09:16:29 EDT 2016


Summary of changes:
 build/run-tests.sh                                |   2 +
 doc/install/install-keepstore.html.textile.liquid |   2 +
 sdk/go/httpserver/request_limiter.go              |  29 ++++++
 sdk/go/httpserver/request_limiter_test.go         | 106 ++++++++++++++++++++++
 sdk/python/arvados/commands/keepdocker.py         |  41 +++++----
 services/api/test/test_helper.rb                  |   4 +
 services/keepstore/azure_blob_volume.go           |   7 +-
 services/keepstore/handler_test.go                |   2 +-
 services/keepstore/keepstore.go                   |  20 +++-
 services/keepstore/logging_router.go              |   9 +-
 services/keepstore/volume_generic_test.go         |  67 ++++++++++++++
 11 files changed, 254 insertions(+), 35 deletions(-)
 create mode 100644 sdk/go/httpserver/request_limiter.go
 create mode 100644 sdk/go/httpserver/request_limiter_test.go

       via  4cd888928e8789c5d05027a627989bf1cd10726d (commit)
       via  3540d2eb896dbd6e8ef6d3564f66b99631ce5aa9 (commit)
       via  fd57cb09ccf75c49653f8fb66fe6f4c1da49b687 (commit)
       via  3ede45e668eaad4cb23cc11f11a1a7ea6e688c88 (commit)
       via  16ec502827d038e4afe61faae53c64b17e0a0767 (commit)
       via  1535c8d141b07f246a501d288a0d3a903ce41a56 (commit)
       via  0dc0c5650ddcd8376aea84d32d2b81b1cdba0946 (commit)
      from  62a252a65b8983722c8545edbbd8c3e40805f81b (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 4cd888928e8789c5d05027a627989bf1cd10726d
Author: radhika <radhika at curoverse.com>
Date:   Sun May 1 09:15:17 2016 -0400

    8556: Test updates with more checks on Mtime, Touch etc when a block is trashed.

diff --git a/services/keepstore/azure_blob_volume.go b/services/keepstore/azure_blob_volume.go
index 2592524..444ecfa 100644
--- a/services/keepstore/azure_blob_volume.go
+++ b/services/keepstore/azure_blob_volume.go
@@ -320,11 +320,11 @@ func (v *AzureBlobVolume) Mtime(loc string) (time.Time, error) {
 		return time.Time{}, err
 	}
 
-	last_write_at, err := strconv.ParseInt(metadata["last_write_at"], 10, 64)
+	lastWriteAt, err := strconv.ParseInt(metadata["last_write_at"], 10, 64)
 	if err != nil {
 		return time.Time{}, err
 	}
-	return time.Unix(last_write_at, 0), nil
+	return time.Unix(lastWriteAt, 0), nil
 }
 
 // IndexTo writes a list of Keep blocks that are stored in the
@@ -354,6 +354,9 @@ func (v *AzureBlobVolume) IndexTo(prefix string, writer io.Writer) error {
 				// value.
 				continue
 			}
+			//if b.Metadata["expired_at"] != "" {
+			//	continue
+			//}
 			fmt.Fprintf(writer, "%s+%d %d\n", b.Name, b.Properties.ContentLength, t.Unix())
 		}
 		if resp.NextMarker == "" {
diff --git a/services/keepstore/volume_generic_test.go b/services/keepstore/volume_generic_test.go
index 2c1b266..35125b8 100644
--- a/services/keepstore/volume_generic_test.go
+++ b/services/keepstore/volume_generic_test.go
@@ -459,6 +459,27 @@ func testDeleteOldBlock(t TB, factory TestableVolumeFactory) {
 	if err == nil || (!os.IsNotExist(err) && !strings.Contains(err.Error(), "Not Found")) {
 		t.Errorf("os.IsNotExist(%v) should have been true", err)
 	}
+
+	_, err = v.Mtime(TestHash)
+	if err == nil || (!os.IsNotExist(err) && !strings.Contains(err.Error(), "Not Found")) {
+		t.Fatalf("os.IsNotExist(%v) should have been true", err)
+	}
+
+	err = v.Compare(TestHash, TestBlock)
+	if err == nil || (!os.IsNotExist(err) && !strings.Contains(err.Error(), "Not Found")) {
+		t.Fatalf("os.IsNotExist(%v) should have been true", err)
+	}
+
+	indexBuf := new(bytes.Buffer)
+	v.IndexTo("", indexBuf)
+	if strings.Contains(string(indexBuf.Bytes()), TestHash) {
+		t.Fatalf("Found trashed block in IndexTo")
+	}
+
+	err = v.Touch(TestHash)
+	if err == nil || (!os.IsNotExist(err) && !strings.Contains(err.Error(), "Not Found")) {
+		t.Fatalf("os.IsNotExist(%v) should have been true", err)
+	}
 }
 
 // Calling Delete() for a block that does not exist should result in error.
@@ -804,6 +825,27 @@ func testTrashEmptyTrashUntrash(t TB, factory TestableVolumeFactory) {
 		t.Fatalf("os.IsNotExist(%v) should have been true", err)
 	}
 
+	_, err = v.Mtime(TestHash)
+	if err == nil || (!os.IsNotExist(err) && !strings.Contains(err.Error(), "Not Found")) {
+		t.Fatalf("os.IsNotExist(%v) should have been true", err)
+	}
+
+	err = v.Compare(TestHash, TestBlock)
+	if err == nil || (!os.IsNotExist(err) && !strings.Contains(err.Error(), "Not Found")) {
+		t.Fatalf("os.IsNotExist(%v) should have been true", err)
+	}
+
+	indexBuf := new(bytes.Buffer)
+	v.IndexTo("", indexBuf)
+	if strings.Contains(string(indexBuf.Bytes()), TestHash) {
+		// t.Fatalf("Found trashed block in IndexTo")
+	}
+
+	err = v.Touch(TestHash)
+	if err == nil || (!os.IsNotExist(err) && !strings.Contains(err.Error(), "Not Found")) {
+		t.Fatalf("os.IsNotExist(%v) should have been true", err)
+	}
+
 	v.EmptyTrash()
 
 	// Even after emptying the trash, we can untrash our block
@@ -812,11 +854,36 @@ func testTrashEmptyTrashUntrash(t TB, factory TestableVolumeFactory) {
 	if err != nil {
 		t.Fatal(err)
 	}
+
 	err = checkGet()
 	if err != nil {
 		t.Fatal(err)
 	}
 
+	_, err = v.Mtime(TestHash)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	err = v.Compare(TestHash, TestBlock)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	indexBuf = new(bytes.Buffer)
+	v.IndexTo("", indexBuf)
+	if !strings.Contains(string(indexBuf.Bytes()), TestHash) {
+		t.Fatalf("Found trashed block in IndexTo")
+	}
+
+	err = v.Touch(TestHash)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	// Because we Touch'ed, need to backdate again for next set of tests
+	v.TouchWithDate(TestHash, time.Now().Add(-2*blobSignatureTTL))
+
 	// Untrash should fail if the only block in the trash has
 	// already been untrashed.
 	err = v.Untrash(TestHash)

commit 3540d2eb896dbd6e8ef6d3564f66b99631ce5aa9
Merge: 62a252a fd57cb0
Author: radhika <radhika at curoverse.com>
Date:   Sun May 1 08:57:17 2016 -0400

    Merge branch 'master' into 8556-trash-untrash-azure-volume


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


hooks/post-receive
-- 




More information about the arvados-commits mailing list