Nuwan Goonasekera 8 лет назад
Родитель
Сommit
b6759701b8

+ 5 - 3
cloudbridge/cloud/providers/aws/services.py

@@ -778,14 +778,16 @@ class AWSSubnetService(BaseSubnetService):
             return AWSSubnet(self.provider, subnets[0])
             return AWSSubnet(self.provider, subnets[0])
         return None
         return None
 
 
-    def list(self, network=None):
+    def list(self, network=None, limit=None, marker=None):
         fltr = None
         fltr = None
         if network:
         if network:
             network_id = (network.id if isinstance(network, AWSNetwork) else
             network_id = (network.id if isinstance(network, AWSNetwork) else
                           network)
                           network)
             fltr = {'vpc-id': network_id}
             fltr = {'vpc-id': network_id}
-        subnets = self.provider.vpc_conn.get_all_subnets(filters=fltr)
-        return [AWSSubnet(self.provider, subnet) for subnet in subnets]
+        subnets = [AWSSubnet(self.provider, subnet) for subnet in
+                   self.provider.vpc_conn.get_all_subnets(filters=fltr)]
+        return ClientPagedResultList(self.provider, subnets,
+                                     limit=limit, marker=marker)
 
 
     def create(self, network, cidr_block, name=None, zone=None):
     def create(self, network, cidr_block, name=None, zone=None):
         network_id = network.id if isinstance(network, AWSNetwork) else network
         network_id = network.id if isinstance(network, AWSNetwork) else network

+ 3 - 3
cloudbridge/cloud/providers/openstack/resources.py

@@ -787,9 +787,9 @@ class OpenStackSubnet(BaseSubnet):
         Set the subnet name.
         Set the subnet name.
         """
         """
         if self.is_valid_resource_name(value):
         if self.is_valid_resource_name(value):
-            self._provider.neutron.update_subnet(self.id,
-                                                 {'subnet': {'name': value}})
-            self.refresh()
+            self._provider.neutron.update_subnet(
+                self.id, {'subnet': {'name': value}})
+            self._subnet['name'] = value
         else:
         else:
             raise InvalidNameException(value)
             raise InvalidNameException(value)
 
 

+ 9 - 7
cloudbridge/cloud/providers/openstack/services.py

@@ -759,18 +759,20 @@ class OpenStackSubnetService(BaseSubnetService):
         super(OpenStackSubnetService, self).__init__(provider)
         super(OpenStackSubnetService, self).__init__(provider)
 
 
     def get(self, subnet_id):
     def get(self, subnet_id):
-        subnet = (s for s in self.list() if s.id == subnet_id)
+        subnet = (s for s in self if s.id == subnet_id)
         return next(subnet, None)
         return next(subnet, None)
 
 
-    def list(self, network=None):
+    def list(self, network=None, limit=None, marker=None):
         if network:
         if network:
             network_id = (network.id if isinstance(network, OpenStackNetwork)
             network_id = (network.id if isinstance(network, OpenStackNetwork)
                           else network)
                           else network)
-            subnets = self.list()
-            return [subnet for subnet in subnets if network_id in
-                    subnet.network_id]
-        subnets = self.provider.neutron.list_subnets().get('subnets', [])
-        return [OpenStackSubnet(self.provider, subnet) for subnet in subnets]
+            subnets = [subnet for subnet in self.list() if network_id ==
+                       subnet.network_id]
+        else:
+            subnets = [OpenStackSubnet(self.provider, subnet) for subnet in
+                       self.provider.neutron.list_subnets().get('subnets', [])]
+        return ClientPagedResultList(self.provider, subnets,
+                                     limit=limit, marker=marker)
 
 
     def create(self, network, cidr_block, name='', zone=None):
     def create(self, network, cidr_block, name='', zone=None):
         """zone param is ignored."""
         """zone param is ignored."""