Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(925)

Unified Diff: third_party/gsutil/boto/boto/glacier/layer2.py

Issue 12042069: Scripts to download files from google storage based on sha1 sums (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Review fixes, updated gsutil Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/boto/boto/glacier/layer2.py
diff --git a/third_party/gsutil/boto/boto/glacier/layer2.py b/third_party/gsutil/boto/boto/glacier/layer2.py
new file mode 100644
index 0000000000000000000000000000000000000000..e519ca896c26db10dd6c21ced6ed8068d7a3bbd5
--- /dev/null
+++ b/third_party/gsutil/boto/boto/glacier/layer2.py
@@ -0,0 +1,93 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2012 Thomas Parslow http://almostobsolete.net/
+#
+# 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.
+#
+
+from .layer1 import Layer1
+from .vault import Vault
+
+
+class Layer2(object):
+ """
+ Provides a more pythonic and friendly interface to Glacier based on Layer1
+ """
+
+ def __init__(self, *args, **kwargs):
+ # Accept a passed in layer1, mainly to allow easier testing
+ if "layer1" in kwargs:
+ self.layer1 = kwargs["layer1"]
+ else:
+ self.layer1 = Layer1(*args, **kwargs)
+
+ def create_vault(self, name):
+ """Creates a vault.
+
+ :type name: str
+ :param name: The name of the vault
+
+ :rtype: :class:`boto.glacier.vault.Vault`
+ :return: A Vault object representing the vault.
+ """
+ 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
+ operation does not check if the vault actually exists.
+
+ :type name: str
+ :param name: The name of the vault
+
+ :rtype: :class:`boto.glacier.vault.Vault`
+ :return: A Vault object representing the vault.
+ """
+ response_data = self.layer1.describe_vault(name)
+ return Vault(self.layer1, response_data)
+
+ def list_vaults(self):
+ """
+ Return a list of all vaults associated with the account ID.
+
+ :rtype: List of :class:`boto.glacier.vault.Vault`
+ :return: A list of Vault objects.
+ """
+ response_data = self.layer1.list_vaults()
+ return [Vault(self.layer1, rd) for rd in response_data['VaultList']]

Powered by Google App Engine
This is Rietveld 408576698