[ARVADOS] updated: 676ca01c9fe02da07c140ac07d746c3d1e326527
Git user
git at public.curoverse.com
Mon May 16 11:45:38 EDT 2016
Summary of changes:
services/keepstore/azure_blob_volume.go | 38 +++++++++-------------------
services/keepstore/azure_blob_volume_test.go | 11 +++++---
2 files changed, 20 insertions(+), 29 deletions(-)
via 676ca01c9fe02da07c140ac07d746c3d1e326527 (commit)
from 22db012b60f3501a38ca1b78dc00407f6edd8311 (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 676ca01c9fe02da07c140ac07d746c3d1e326527
Author: radhika <radhika at curoverse.com>
Date: Mon May 16 11:44:25 2016 -0400
8556: EmptyTrash gets metadata along with List response using Include parameter.
diff --git a/services/keepstore/azure_blob_volume.go b/services/keepstore/azure_blob_volume.go
index 9e76332..6274f0d 100644
--- a/services/keepstore/azure_blob_volume.go
+++ b/services/keepstore/azure_blob_volume.go
@@ -322,7 +322,8 @@ func (v *AzureBlobVolume) Mtime(loc string) (time.Time, error) {
// container.
func (v *AzureBlobVolume) IndexTo(prefix string, writer io.Writer) error {
params := storage.ListBlobsParameters{
- Prefix: prefix,
+ Prefix: prefix,
+ Include: "metadata",
}
for {
resp, err := v.bsClient.ListBlobs(v.containerName, params)
@@ -387,12 +388,9 @@ func (v *AzureBlobVolume) Trash(loc string) error {
}
// Otherwise, mark as trash
- metadata, err := v.bsClient.GetBlobMetadata(v.containerName, loc)
- if err != nil {
- return err
- }
- metadata["expires_at"] = fmt.Sprintf("%d", time.Now().Add(trashLifetime).Unix())
- return v.bsClient.SetBlobMetadata(v.containerName, loc, metadata, map[string]string{
+ return v.bsClient.SetBlobMetadata(v.containerName, loc, map[string]string{
+ "expires_at": fmt.Sprintf("%d", time.Now().Add(trashLifetime).Unix()),
+ }, map[string]string{
"If-Match": props.Etag,
})
}
@@ -466,7 +464,7 @@ func (v *AzureBlobVolume) isKeepBlock(s string) bool {
func (v *AzureBlobVolume) EmptyTrash() {
var bytesDeleted, bytesInTrash int64
var blocksDeleted, blocksInTrash int
- params := storage.ListBlobsParameters{}
+ params := storage.ListBlobsParameters{Include: "metadata"}
for {
resp, err := v.bsClient.ListBlobs(v.containerName, params)
@@ -475,35 +473,23 @@ func (v *AzureBlobVolume) EmptyTrash() {
break
}
for _, b := range resp.Blobs {
- blocksInTrash++
-
- // Get the Etag before checking expires_at, and use it to delete blob
- props, err := v.bsClient.GetBlobProperties(v.containerName, b.Name)
- if err != nil {
- log.Printf("EmptyTrash: GetBlobProperties(%v): %v", b.Name, err)
- continue
- }
-
// Check if it is expired
- metadata, err := v.bsClient.GetBlobMetadata(v.containerName, b.Name)
- if err != nil {
- log.Printf("EmptyTrash: GetBlobMetadata(%v): %v", b.Name, err)
- continue
- }
-
- expiresAtMetadata := metadata["expires_at"]
+ expiresAtMetadata := b.Metadata["expires_at"]
if expiresAtMetadata == "" {
continue
}
+
+ blocksInTrash++
+
expiresAt, err := strconv.ParseInt(expiresAtMetadata, 10, 64)
if err != nil {
log.Printf("EmptyTrash: ParseInt(%v): %v", expiresAtMetadata, err)
continue
}
- if expiresAt <= time.Now().Add(-1*trashLifetime).Unix() {
+ if expiresAt <= time.Now().Unix() {
err = v.bsClient.DeleteBlob(v.containerName, b.Name, map[string]string{
- "If-Match": props.Etag,
+ "If-Match": b.Properties.Etag,
})
if err != nil {
log.Printf("EmptyTrash: DeleteBlob(%v): %v", b.Name, err)
diff --git a/services/keepstore/azure_blob_volume_test.go b/services/keepstore/azure_blob_volume_test.go
index af5b283..429c15e 100644
--- a/services/keepstore/azure_blob_volume_test.go
+++ b/services/keepstore/azure_blob_volume_test.go
@@ -285,15 +285,20 @@ func (h *azStubHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
}
if len(resp.Blobs) > 0 || marker == "" || marker == hash {
blob := h.blobs[container+"|"+hash]
- resp.Blobs = append(resp.Blobs, storage.Blob{
+ bmeta := map[string]string(nil)
+ if r.Form.Get("include") == "metadata" {
+ bmeta = blob.Metadata
+ }
+ b := storage.Blob{
Name: hash,
Properties: storage.BlobProperties{
LastModified: blob.Mtime.Format(time.RFC1123),
ContentLength: int64(len(blob.Data)),
Etag: blob.Etag,
},
- Metadata: blob.Metadata,
- })
+ Metadata: bmeta,
+ }
+ resp.Blobs = append(resp.Blobs, b)
}
}
buf, err := xml.Marshal(resp)
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list