# Copyright 2013 Eucalyptus Systems, Inc.
#
# 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 euca2ools.commands.s3 import S3Request
from requestbuilder import Arg


class CheckBucket(S3Request):
    DESCRIPTION = 'Return successfully if a bucket exists'
    ARGS = [Arg('bucket', route_to=None, help='name of the bucket to check')]

    def preprocess(self):
        # We use GET instead of HEAD so we can get redirections when we talk
        # to the wrong region.
        self.method = 'GET'
        self.path = self.args['bucket']
        self.params['max-keys'] = 0

@@ -9,16 +9,21 @@
 ght 2013
+-2014
  Eucalyp
@@ -1340,16 +1340,48 @@
 AMAGE.%0A%0A
+from requestbuilder import Arg%0A%0A
 from euc
@@ -1420,39 +1420,8 @@
 est%0A
-from requestbuilder import Arg%0A
 %0A%0Acl
@@ -1584,16 +1584,36 @@
 check')%5D
+%0A    METHOD = 'HEAD'
 %0A%0A    de
@@ -1636,144 +1636,8 @@
 f):%0A
-        # We use GET instead of HEAD so we can get redirections when we talk%0A        # to the wrong region.%0A        self.method = 'GET'%0A
     
@@ -1676,40 +1676,4 @@
 t'%5D%0A
-        self.params%5B'max-keys'%5D = 0%0A

Make CheckBucket 90% cheaper