Эх сурвалжийг харах

HUE-6592 [aws] Add more precise exception handling for AWS file handler

Jenny Kim 8 жил өмнө
parent
commit
03ac42e

+ 14 - 3
desktop/libs/aws/src/aws/s3/s3fs.py

@@ -63,7 +63,10 @@ def auth_error_handler(view_fn):
           msg = _('User is not authorized to write or modify path: %s. Check that the user has write permissions.') % path
         raise S3FileSystemException(msg)
       else:
-        raise S3FileSystemException(e.message or e.reason)
+        msg = str(e)
+        if isinstance(e, S3ResponseError):
+          msg = e.message or e.reason
+        raise S3FileSystemException(msg)
     except Exception, e:
       raise e
   return decorator
@@ -78,8 +81,12 @@ class S3FileSystem(object):
     if self._bucket_cache is None:
       try:
         buckets = self._s3_connection.get_all_buckets()
+      except S3FileSystemException, e:
+        raise e
       except S3ResponseError, e:
-        raise S3FileSystemException(e.message or e.reason)
+        raise S3FileSystemException(_('Failed to initialize bucket cache: %s') % e.reason)
+      except Exception, e:
+        raise S3FileSystemException(_('Failed to initialize bucket cache: %s') % e)
       self._bucket_cache = {}
       for bucket in buckets:
         self._bucket_cache[bucket.name] = bucket
@@ -331,8 +338,12 @@ class S3FileSystem(object):
 
     try:
       self._get_or_create_bucket(bucket_name)
-    except Exception, e:
+    except S3FileSystemException, e:
+      raise e
+    except S3ResponseError, e:
       raise S3FileSystemException(_('Failed to create S3 bucket "%s": %s') % (bucket_name, e.reason))
+    except Exception, e:
+      raise S3FileSystemException(_('Failed to create S3 bucket "%s": %s') % (bucket_name, e))
 
     stats = self._stats(path)
     if stats: