diff options
author | James Saryerwinnie <js@jamesls.com> | 2012-09-06 09:25:43 -0700 |
---|---|---|
committer | James Saryerwinnie <js@jamesls.com> | 2012-09-06 09:33:00 -0700 |
commit | f85bc3c5a6b3c27002d6c91514c11d7cfee800be (patch) | |
tree | 65d6f26e47005f1bad0d4b8d6652cd4ad27931b4 | |
parent | c8da962f22029d9ae84bedd884973fa2dbefa2c0 (diff) | |
download | boto-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.py | 19 | ||||
-rw-r--r-- | tests/integration/glacier/__init__.py | 0 | ||||
-rw-r--r-- | tests/integration/glacier/test_layer2.py | 45 |
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) |