XL/DeleteObject: delete call on a prefix should not delete the entire tree structure. (#1916)

fixes #1915
This commit is contained in:
Krishna Srinivas
2016-06-17 10:48:43 +05:30
committed by Harshavardhana
parent f51d34cedd
commit 365f80efa3
3 changed files with 34 additions and 6 deletions
+19 -3
View File
@@ -369,7 +369,7 @@ func (s *MyAPIXLSuite) TestDeleteObject(c *C) {
c.Assert(err, IsNil)
c.Assert(response.StatusCode, Equals, http.StatusOK)
request, err = s.newRequest("PUT", testAPIXLServer.URL+"/deletebucketobject/myobject", 0, nil)
request, err = s.newRequest("PUT", testAPIXLServer.URL+"/deletebucketobject/prefix/myobject", 0, nil)
c.Assert(err, IsNil)
client = http.Client{}
@@ -377,7 +377,15 @@ func (s *MyAPIXLSuite) TestDeleteObject(c *C) {
c.Assert(err, IsNil)
c.Assert(response.StatusCode, Equals, http.StatusOK)
request, err = s.newRequest("HEAD", testAPIXLServer.URL+"/deletebucketobject/myobject", 0, nil)
// Should not delete "prefix/myobject"
request, err = s.newRequest("DELETE", testAPIXLServer.URL+"/deletebucketobject/prefix", 0, nil)
c.Assert(err, IsNil)
client = http.Client{}
response, err = client.Do(request)
c.Assert(err, IsNil)
c.Assert(response.StatusCode, Equals, http.StatusNoContent)
request, err = s.newRequest("HEAD", testAPIXLServer.URL+"/deletebucketobject/prefix/myobject", 0, nil)
c.Assert(err, IsNil)
client = http.Client{}
@@ -385,7 +393,15 @@ func (s *MyAPIXLSuite) TestDeleteObject(c *C) {
c.Assert(err, IsNil)
c.Assert(response.StatusCode, Equals, http.StatusOK)
request, err = s.newRequest("DELETE", testAPIXLServer.URL+"/deletebucketobject/myobject", 0, nil)
request, err = s.newRequest("DELETE", testAPIXLServer.URL+"/deletebucketobject/prefix/myobject", 0, nil)
c.Assert(err, IsNil)
client = http.Client{}
response, err = client.Do(request)
c.Assert(err, IsNil)
c.Assert(response.StatusCode, Equals, http.StatusNoContent)
// Delete of non-existant data should return success.
request, err = s.newRequest("DELETE", testAPIXLServer.URL+"/deletebucketobject/prefix/myobject1", 0, nil)
c.Assert(err, IsNil)
client = http.Client{}
response, err = client.Do(request)