[pkg-eucalyptus-commits] [SCM] managing cloud instances for Eucalyptus branch, master, updated. 3.0.0-alpha3-257-g1da8e3a

Garrett Holmstrom gholms at fedoraproject.org
Sun Jun 16 02:30:04 UTC 2013


The following commit has been merged in the master branch:
commit d3a1caafd5579105f1f2629860fb81a8950e216a
Author: Garrett Holmstrom <gholms at fedoraproject.org>
Date:   Mon Feb 11 17:32:28 2013 -0800

    Implement walrus-listbuckets

diff --git a/bin/walrus-listbuckets b/bin/walrus-listbuckets
new file mode 100755
index 0000000..197b273
--- /dev/null
+++ b/bin/walrus-listbuckets
@@ -0,0 +1,6 @@
+#!/usr/bin/python -tt
+
+import euca2ools.commands.walrus.listallmybuckets
+
+if __name__ == '__main__':
+    euca2ools.commands.walrus.listallmybuckets.ListAllMyBuckets.run()
diff --git a/bin/euca-bundle-vol b/euca2ools/commands/walrus/__init__.py
old mode 100755
new mode 100644
similarity index 68%
copy from bin/euca-bundle-vol
copy to euca2ools/commands/walrus/__init__.py
index 08a7fa4..7cf9025
--- a/bin/euca-bundle-vol
+++ b/euca2ools/commands/walrus/__init__.py
@@ -1,9 +1,6 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
 # Software License Agreement (BSD License)
 #
-# Copyright (c) 2009-2011, Eucalyptus Systems, Inc.
+# Copyright (c) 2013, Eucalyptus Systems, Inc.
 # All rights reserved.
 #
 # Redistribution and use of this software in source and binary forms, with or
@@ -30,13 +27,22 @@
 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
-#
-# Author: Neil Soman neil at eucalyptus.com
-#         Mitch Garnaat mgarnaat at eucalyptus.com
 
-import euca2ools.commands.bundle.bundlevol
+from requestbuilder import Arg, SERVICE
+import requestbuilder.auth
+import requestbuilder.request
+import requestbuilder.service
+from requestbuilder.xmlparse import parse_aws_xml
+from .. import Euca2oolsRequest
+
+class Walrus(requestbuilder.service.BaseService):
+    NAME = 's3'
+    DESCRIPTION = 'Object storage service'
+    AUTH_CLASS = requestbuilder.auth.S3RestAuth
+    URL_ENVVAR = 'S3_URL'
 
-if __name__ == '__main__':
-    cmd = euca2ools.commands.bundle.bundlevol.BundleVol()
-    cmd.main_cli()
 
+class WalrusRequest(Euca2oolsRequest):
+    SERVICE_CLASS = Walrus
+    ARGS = [Arg('-U', '--url', dest='url', metavar='URL', route_to=SERVICE,
+                help='storage service endpoint URL')]
diff --git a/euca2ools/commands/walrus/listallmybuckets.py b/euca2ools/commands/walrus/listallmybuckets.py
new file mode 100644
index 0000000..08e00d6
--- /dev/null
+++ b/euca2ools/commands/walrus/listallmybuckets.py
@@ -0,0 +1,69 @@
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2013, Eucalyptus Systems, Inc.
+# All rights reserved.
+#
+# Redistribution and use of this software in source and binary forms, with or
+# without modification, are permitted provided that the following conditions
+# are met:
+#
+#   Redistributions of source code must retain the above
+#   copyright notice, this list of conditions and the
+#   following disclaimer.
+#
+#   Redistributions in binary form must reproduce the above
+#   copyright notice, this list of conditions and the
+#   following disclaimer in the documentation and/or other
+#   materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from requestbuilder import Arg
+from requestbuilder.mixins import TabifyingCommand
+from requestbuilder.xmlparse import parse_listdelimited_aws_xml
+from . import WalrusRequest
+
+class ListAllMyBuckets(WalrusRequest, TabifyingCommand):
+    DESCRIPTION = 'List all buckets owned by your account'
+    ARGS = [Arg('-l', dest='long_output', action='store_true', route_to=None,
+                help='list in long format, with creation dates and owner info'),
+            Arg('-n', dest='numeric_output', action='store_true', route_to=None,
+                help=('display account IDs numerically in long (-l) output.  '
+                      'This option turns on the -l option.'))]
+
+    def configure(self):
+        WalrusRequest.configure(self)
+        if self.args['numeric_output']:
+            self.args['long_output'] = True
+
+    def preprocess(self):
+        self.method = 'GET'
+        self.path = ''
+
+    def parse_response(self, response):
+        response_dict = self.log_and_parse_response(response,
+                parse_listdelimited_aws_xml, list_markers=('Buckets',))
+        return response_dict['ListAllMyBucketsResult']
+
+    def print_result(self, result):
+        if self.args['numeric_output'] or 'DisplayName' not in result['Owner']:
+            owner = result.get('Owner', {}).get('ID')
+        else:
+            owner = result.get('Owner', {}).get('DisplayName')
+
+        for bucket in result.get('Buckets', []):
+            if self.args['long_output']:
+                print self.tabify((owner, bucket.get('CreationDate'),
+                                   bucket.get('Name')))
+            else:
+                print bucket.get('Name')

-- 
managing cloud instances for Eucalyptus



More information about the pkg-eucalyptus-commits mailing list