convert X-Delete-At header from int to time.Time
diff --git a/openstack/objectstorage/v1/objects/results.go b/openstack/objectstorage/v1/objects/results.go
index e29e3a8..ecb2c54 100644
--- a/openstack/objectstorage/v1/objects/results.go
+++ b/openstack/objectstorage/v1/objects/results.go
@@ -4,6 +4,7 @@
"fmt"
"io"
"io/ioutil"
+ "strconv"
"strings"
"time"
@@ -117,7 +118,7 @@
ContentLength int64 `mapstructure:"Content-Length"`
ContentType string `mapstructure:"Content-Type"`
Date time.Time `mapstructure:"-"`
- DeleteAt int `mapstructure:"X-Delete-At"`
+ DeleteAt time.Time `mapstructure:"-"`
ETag string `mapstructure:"Etag"`
LastModified time.Time `mapstructure:"-"`
ObjectManifest string `mapstructure:"X-Object-Manifest"`
@@ -144,7 +145,7 @@
}
if date, ok := dr.Header["Date"]; ok && len(date) > 0 {
- t, err := time.Parse(time.RFC1123, dr.Header["Date"][0])
+ t, err := time.Parse(time.RFC1123, date[0])
if err != nil {
return dh, err
}
@@ -152,13 +153,21 @@
}
if date, ok := dr.Header["Last-Modified"]; ok && len(date) > 0 {
- t, err := time.Parse(time.RFC1123, dr.Header["Last-Modified"][0])
+ t, err := time.Parse(time.RFC1123, date[0])
if err != nil {
return dh, err
}
dh.LastModified = t
}
+ if date, ok := dr.Header["X-Delete-At"]; ok && len(date) > 0 {
+ unix, err := strconv.ParseInt(date[0], 10, 64)
+ if err != nil {
+ return dh, err
+ }
+ dh.DeleteAt = time.Unix(unix, 0)
+ }
+
return dh, nil
}
@@ -186,7 +195,7 @@
ContentLength int64 `mapstructure:"Content-Length"`
ContentType string `mapstructure:"Content-Type"`
Date time.Time `mapstructure:"-"`
- DeleteAt int `mapstructure:"X-Delete-At"`
+ DeleteAt time.Time `mapstructure:"-"`
ETag string `mapstructure:"Etag"`
LastModified time.Time `mapstructure:"-"`
ObjectManifest string `mapstructure:"X-Object-Manifest"`
@@ -227,6 +236,14 @@
gh.LastModified = t
}
+ if date, ok := gr.Header["X-Delete-At"]; ok && len(date) > 0 {
+ unix, err := strconv.ParseInt(date[0], 10, 64)
+ if err != nil {
+ return gh, err
+ }
+ gh.DeleteAt = time.Unix(unix, 0)
+ }
+
return gh, nil
}