for b in buckets:
try:
zone_conn.get_bucket(b)
- except:
- log.critical('zone %s does not contain bucket %s', zone_conn.zone.name, b)
+ except ClientError as e:
+ errcode = e.response['Error']['Code']
+ if errcode in ['404', 'NoSuchBucket']:
+ log.critical('zone %s does not contain bucket %s', zone_conn.zone.name, b)
+ else:
+ log.critical('zone %s unexpected error checking bucket %s: %s', zone_conn.zone.name, b, errcode)
return False
return True
if not zone_conn.zone.has_buckets():
return True
+ remaining = []
for b in buckets:
try:
zone_conn.get_bucket(b)
- except:
- continue
-
+ except ClientError as e:
+ errcode = e.response['Error']['Code']
+ if errcode in ['404', 'NoSuchBucket']:
+ continue
+ log.critical('zone %s unexpected error checking bucket %s: %s', zone_conn.zone, b, errcode)
+ return False
log.critical('zone %s contains bucket %s', zone_conn.zone, b)
- return False
+ remaining.append(b)
- return True
+ return len(remaining) == 0
def get_topics(zone):
log.info("Checking zone=%s for deleted buckets", zone.name)
result = check_all_buckets_dont_exist(zone, buckets)
if not result:
- log.error("Zone %s still has buckets: %s", zone.name, buckets)
+ log.error("Zone %s still has buckets", zone.name)
assert result
def check_bucket_eq(zone_conn1, zone_conn2, bucket):
super(RadosZone.Conn, self).__init__(zone, credentials)
def get_bucket(self, name):
- try:
- self.s3_client.head_bucket(Bucket=name)
- # if no exception, bucket exists
- return self.s3_resource.Bucket(name)
- except ClientError as e:
- error_code = e.response['Error']['Code']
- if error_code in ['404', 'NoSuchBucket']:
- return None
- raise
+ self.s3_client.head_bucket(Bucket=name)
+ return self.s3_resource.Bucket(name)
def create_bucket(self, name):
try: