Просмотр исходного кода

When listing images on AWS, filter only the ones by current account owner

xref #75
Enis Afgan 8 лет назад
Родитель
Сommit
e7365ba9d9

+ 4 - 0
cloudbridge/cloud/providers/aws/provider.py

@@ -102,6 +102,10 @@ class AWSCloudProvider(BaseCloudProvider):
     def storage(self):
         return self._storage
 
+    @property
+    def account_id(self):
+        return self.session.client('sts').get_caller_identity()['Account']
+
     def _connect_ec2(self):
         """
         Get a boto ec2 connection object.

+ 4 - 1
cloudbridge/cloud/providers/aws/services.py

@@ -294,7 +294,10 @@ class AWSImageService(BaseImageService):
                              limit=limit, marker=marker)
 
     def list(self, limit=None, marker=None):
-        return self.svc.list(limit=limit, marker=marker)
+        # Filter images by current account owner; otherwise, the call is
+        # very slow
+        return self.svc.find('owner-id', self.provider.account_id,
+                             limit=limit, marker=marker)
 
 
 class AWSComputeService(BaseComputeService):