summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Saryerwinnie <js@jamesls.com>2012-09-06 09:25:43 -0700
committerJames Saryerwinnie <js@jamesls.com>2012-09-06 09:33:00 -0700
commitf85bc3c5a6b3c27002d6c91514c11d7cfee800be (patch)
tree65d6f26e47005f1bad0d4b8d6652cd4ad27931b4
parentc8da962f22029d9ae84bedd884973fa2dbefa2c0 (diff)
downloadboto-f85bc3c5a6b3c27002d6c91514c11d7cfee800be.tar.gz
Add Layer2.delete_vault
This allow layer2 to be used to both create and delete vaults. I've also added the start of integration tests for layer2 that will create, retrieve, and delete a vault.
-rw-r--r--boto/glacier/layer2.py19
-rw-r--r--tests/integration/glacier/__init__.py0
-rw-r--r--tests/integration/glacier/test_layer2.py45
3 files changed, 64 insertions, 0 deletions
diff --git a/boto/glacier/layer2.py b/boto/glacier/layer2.py
index 00b98f09..84e3d56a 100644
--- a/boto/glacier/layer2.py
+++ b/boto/glacier/layer2.py
@@ -45,6 +45,25 @@ class Layer2(object):
self.layer1.create_vault(name)
return self.get_vault(name)
+ def delete_vault(self, name):
+ """Delete a vault.
+
+ This operation deletes a vault. Amazon Glacier will delete a
+ vault only if there are no archives in the vault as per the
+ last inventory and there have been no writes to the vault
+ since the last inventory. If either of these conditions is not
+ satisfied, the vault deletion fails (that is, the vault is not
+ removed) and Amazon Glacier returns an error.
+
+ This operation is idempotent, you can send the same request
+ multiple times and it has no further effect after the first
+ time Amazon Glacier delete the specified vault.
+
+ :type vault_name: str
+ :param vault_name: The name of the vault to delete.
+ """
+ return self.layer1.delete_vault(name)
+
def get_vault(self, name):
"""
Get an object representing a named vault from Glacier. This
diff --git a/tests/integration/glacier/__init__.py b/tests/integration/glacier/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/integration/glacier/__init__.py
diff --git a/tests/integration/glacier/test_layer2.py b/tests/integration/glacier/test_layer2.py
new file mode 100644
index 00000000..caa44fa5
--- /dev/null
+++ b/tests/integration/glacier/test_layer2.py
@@ -0,0 +1,45 @@
+# Copyright (c) 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish, dis-
+# tribute, sublicense, and/or sell copies of the Software, and to permit
+# persons to whom the Software is furnished to do so, subject to the fol-
+# lowing conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+import time
+from tests.unit import unittest
+
+from boto.glacier.layer2 import Layer1, Layer2
+
+
+class TestGlacierLayer2(unittest.TestCase):
+ glacier = True
+
+ def setUp(self):
+ self.layer2 = Layer2()
+ self.vault_name = 'testvault%s' % int(time.time())
+
+ def test_create_delete_vault(self):
+ vault = self.layer2.create_vault(self.vault_name)
+ retrieved_vault = self.layer2.get_vault(self.vault_name)
+ self.layer2.delete_vault(self.vault_name)
+ self.assertEqual(vault.name, retrieved_vault.name)
+ self.assertEqual(vault.arn, retrieved_vault.arn)
+ self.assertEqual(vault.creation_date, retrieved_vault.creation_date)
+ self.assertEqual(vault.last_inventory_date,
+ retrieved_vault.last_inventory_date)
+ self.assertEqual(vault.number_of_archives,
+ retrieved_vault.number_of_archives)