bulk delete; finish updating common.Result structs
diff --git a/rackspace/objectstorage/v1/bulk/requests.go b/rackspace/objectstorage/v1/bulk/requests.go
index 6585a14..7a08869 100644
--- a/rackspace/objectstorage/v1/bulk/requests.go
+++ b/rackspace/objectstorage/v1/bulk/requests.go
@@ -1,14 +1,7 @@
package bulk
import (
- "archive/tar"
- "compress/gzip"
- "compress/bzip2"
- "errors"
- "io"
"net/url"
- "os"
- "path/filepath"
"strings"
"github.com/racker/perigee"
@@ -43,10 +36,10 @@
return res
}
- reqBody := strings.NewReader(reqString)
+ reqBody := strings.NewReader(reqString)
resp, err := perigee.Request("DELETE", deleteURL(c), perigee.Options{
- ContentType: "text/plain",
+ ContentType: "text/plain",
MoreHeaders: c.Provider.AuthenticatedHeaders(),
OkCodes: []int{200},
ReqBody: reqBody,
@@ -56,52 +49,3 @@
res.Err = err
return res
}
-
-// Extract will extract the files in `file` and create objects in object storage
-// from them.
-func Extract(c *gophercloud.ServiceClient, file string) ExtractResult {
- var res ExtractResult
-
- if file == ""{
- res.Err = errors.New("Missing required field 'f'.")
- return res
- }
-
- var ext string
- var reqBody io.Reader
- f, err := os.Open(file)
- if err != nil {
- res.Err = errors.New("Error opening file.")
- return res
- }
- defer f.Close()
-
- switch filepath.Ext(file) {
- case "tar":
- ext = "tar"
- reqBody = tar.NewReader(f)
- case "gz":
- ext = "tar.gz"
- reqBody, err = gzip.NewReader(f)
- if err != nil {
- res.Err = err
- return res
- }
- case "bz2":
- ext = "tar.bz2"
- reqBody = bzip2.NewReader(f)
- default:
- res.Err = errors.New("Unsupported extension type.")
- return res
- }
-
- resp, err := perigee.Request("PUT", extractURL(c, ext), perigee.Options{
- MoreHeaders: c.Provider.AuthenticatedHeaders(),
- OkCodes: []int{200},
- ReqBody: reqBody,
- Results: &res.Body,
- })
- res.Header = resp.HttpResponse.Header
- res.Err = err
- return res
-}
diff --git a/rackspace/objectstorage/v1/bulk/requests_test.go b/rackspace/objectstorage/v1/bulk/requests_test.go
index 8598f30..8b5578e 100644
--- a/rackspace/objectstorage/v1/bulk/requests_test.go
+++ b/rackspace/objectstorage/v1/bulk/requests_test.go
@@ -15,7 +15,7 @@
th.Mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "DELETE")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
- th.AssertEquals(t, r.URL.RawQuery, "bulk-delete")
+ th.AssertEquals(t, r.URL.RawQuery, "bulk-delete")
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, `
@@ -29,7 +29,7 @@
`)
})
- options := &DeleteOpts{"gophercloud-testcontainer1", "gophercloud-testcontainer2"}
+ options := DeleteOpts{"gophercloud-testcontainer1", "gophercloud-testcontainer2"}
actual, err := Delete(fake.ServiceClient(), options).ExtractBody()
th.AssertNoErr(t, err)
th.AssertEquals(t, actual.NumberDeleted, 1)
diff --git a/rackspace/objectstorage/v1/bulk/results.go b/rackspace/objectstorage/v1/bulk/results.go
index 9c7a9a4..fddc125 100644
--- a/rackspace/objectstorage/v1/bulk/results.go
+++ b/rackspace/objectstorage/v1/bulk/results.go
@@ -1,31 +1,28 @@
package bulk
import (
- "github.com/rackspace/gophercloud"
+ "github.com/rackspace/gophercloud"
- "github.com/mitchellh/mapstructure"
+ "github.com/mitchellh/mapstructure"
+)
- )
-
-// DeleteResult represents the result of a delete operation.
+// DeleteResult represents the result of a bulk delete operation.
type DeleteResult struct {
gophercloud.Result
}
-type DeleteBody struct {
- NumberNotFound int `mapstructure:"Number Not Found"`
- ResponseStatus string `mapstructure:"Response Status"`
- Errors []string `mapstructure:"Errors"`
- NumberDeleted int `mapstructure:"Number Deleted"`
- ResponseBody string `mapstructure:"Response Body"`
+// DeleteRespBody is the form of the response body returned by a bulk delete request.
+type DeleteRespBody struct {
+ NumberNotFound int `mapstructure:"Number Not Found"`
+ ResponseStatus string `mapstructure:"Response Status"`
+ Errors []string `mapstructure:"Errors"`
+ NumberDeleted int `mapstructure:"Number Deleted"`
+ ResponseBody string `mapstructure:"Response Body"`
}
-func (dr DeleteResult) ExtractBody() (DeleteBody, error) {
- var resp DeleteBody
- err := mapstructure.Decode(dr.Body, &resp)
- return resp, err
-}
-
-type ExtractResult struct {
- gophercloud.Result
+// ExtractBody will extract the body returned by the bulk extract request.
+func (dr DeleteResult) ExtractBody() (DeleteRespBody, error) {
+ var resp DeleteRespBody
+ err := mapstructure.Decode(dr.Body, &resp)
+ return resp, err
}