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

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

xref #75
Enis Afgan 8 лет назад
Родитель
Сommit
e7365ba9d9
2 измененных файлов с 8 добавлено и 1 удалено
  1. 4 0
      cloudbridge/cloud/providers/aws/provider.py
  2. 4 1
      cloudbridge/cloud/providers/aws/services.py

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

@@ -102,6 +102,10 @@ class AWSCloudProvider(BaseCloudProvider):
     def storage(self):
     def storage(self):
         return self._storage
         return self._storage
 
 
+    @property
+    def account_id(self):
+        return self.session.client('sts').get_caller_identity()['Account']
+
     def _connect_ec2(self):
     def _connect_ec2(self):
         """
         """
         Get a boto ec2 connection object.
         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)
                              limit=limit, marker=marker)
 
 
     def list(self, limit=None, marker=None):
     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):
 class AWSComputeService(BaseComputeService):