Parcourir la source

Merge branch 'master' of https://github.com/gvlproject/cloudbridge

Nuwan Goonasekera il y a 8 ans
Parent
commit
1f8f1436df

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

@@ -1053,7 +1053,10 @@ class AWSFloatingIP(BaseFloatingIP):
         self._ip.release()
         self._ip.release()
 
 
     def refresh(self):
     def refresh(self):
-        fip = self._provider.networking.floating_ips.get(self.id)
+        net = self._provider.networking.networks.list()[0] # Any net will work
+        gw = self._provider.networking.gateways.get_or_create_inet_gateway(
+            net)
+        fip = gw.floating_ips.get(self.id)
         # pylint:disable=protected-access
         # pylint:disable=protected-access
         self._ip = fip._ip
         self._ip = fip._ip
 
 

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

@@ -810,7 +810,8 @@ class AWSGatewayService(BaseGatewayService):
 
 
     def get_or_create_inet_gateway(self, network, name=None):
     def get_or_create_inet_gateway(self, network, name=None):
         log.debug("Get or create inet gateway %s on net %s", name, network)
         log.debug("Get or create inet gateway %s on net %s", name, network)
-        AWSInternetGateway.assert_valid_resource_name(name)
+        if name:
+            AWSInternetGateway.assert_valid_resource_name(name)
 
 
         network_id = network.id if isinstance(network, AWSNetwork) else network
         network_id = network.id if isinstance(network, AWSNetwork) else network
         # Don't filter by name because it may conflict with at least the
         # Don't filter by name because it may conflict with at least the
@@ -822,7 +823,8 @@ class AWSGatewayService(BaseGatewayService):
             return gtw[0]  # There can be only one gtw attached to a VPC
             return gtw[0]  # There can be only one gtw attached to a VPC
         # Gateway does not exist so create one and attach to the supplied net
         # Gateway does not exist so create one and attach to the supplied net
         cb_gateway = self.svc.create('create_internet_gateway')
         cb_gateway = self.svc.create('create_internet_gateway')
-        cb_gateway.name = name
+        if name:
+            cb_gateway.name = name
         cb_gateway._gateway.attach_to_vpc(VpcId=network_id)
         cb_gateway._gateway.attach_to_vpc(VpcId=network_id)
         return cb_gateway
         return cb_gateway
 
 

+ 4 - 2
cloudbridge/cloud/providers/azure/resources.py

@@ -1037,9 +1037,11 @@ class AzureFloatingIP(BaseFloatingIP):
             return False
             return False
 
 
     def refresh(self):
     def refresh(self):
-        fip = self._provider.networking.floating_ips.get(self.id)
+        # TODO: Update to reflect FIP layout changes under a gateway
+        # fip = self._provider.networking.floating_ips.get(self.id)
         # pylint:disable=protected-access
         # pylint:disable=protected-access
-        self._ip = fip._ip
+        # self._ip = fip._ip
+        pass
 
 
 
 
 class AzureRegion(BaseRegion):
 class AzureRegion(BaseRegion):

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

@@ -1087,10 +1087,12 @@ class AzureGatewayService(BaseGatewayService):
         # Singleton returned by the list method
         # Singleton returned by the list method
         self.gateway_singleton = AzureInternetGateway(self.provider, None)
         self.gateway_singleton = AzureInternetGateway(self.provider, None)
 
 
-    def get_or_create_inet_gateway(self, name):
-        AzureInternetGateway.assert_valid_resource_name(name)
+    def get_or_create_inet_gateway(self, network, name=None):
+        if name:
+            AzureInternetGateway.assert_valid_resource_name(name)
         gateway = AzureInternetGateway(self.provider, None)
         gateway = AzureInternetGateway(self.provider, None)
-        gateway.name = name
+        if name:
+            gateway.name = name
         return gateway
         return gateway
 
 
     def list(self, limit=None, marker=None):
     def list(self, limit=None, marker=None):

+ 5 - 1
cloudbridge/cloud/providers/openstack/resources.py

@@ -910,7 +910,11 @@ class OpenStackFloatingIP(BaseFloatingIP):
         self._ip.delete(self._provider.os_conn.session)
         self._ip.delete(self._provider.os_conn.session)
 
 
     def refresh(self):
     def refresh(self):
-        fip = self._provider.networking.floating_ips.get(self.id)
+        net = self._provider.networking.networks.get(
+            self._ip.floating_network_id)
+        gw = self._provider.networking.gateways.get_or_create_inet_gateway(
+            net)
+        fip = gw.floating_ips.get(self.id)
         # pylint:disable=protected-access
         # pylint:disable=protected-access
         self._ip = fip._ip
         self._ip = fip._ip
 
 

+ 2 - 1
cloudbridge/cloud/providers/openstack/services.py

@@ -964,7 +964,8 @@ class OpenStackGatewayService(BaseGatewayService):
 
 
     def get_or_create_inet_gateway(self, network, name=None):
     def get_or_create_inet_gateway(self, network, name=None):
         """For OS, inet gtw is any net that has `external` property set."""
         """For OS, inet gtw is any net that has `external` property set."""
-        OpenStackInternetGateway.assert_valid_resource_name(name)
+        if name:
+            OpenStackInternetGateway.assert_valid_resource_name(name)
 
 
         for n in self.provider.networking.networks:
         for n in self.provider.networking.networks:
             if n.external:
             if n.external:

+ 0 - 1
test/test_compute_service.py

@@ -296,7 +296,6 @@ class CloudComputeServiceTestCase(ProviderTestBase):
                         # correspond to requested mappings
                         # correspond to requested mappings
 
 
     @helpers.skipIfNoService(['compute.instances', 'networking.networks',
     @helpers.skipIfNoService(['compute.instances', 'networking.networks',
-                              'networking.floating_ips',
                               'security.vm_firewalls'])
                               'security.vm_firewalls'])
     def test_instance_methods(self):
     def test_instance_methods(self):
         name = "cb_instmethods-{0}".format(helpers.get_uuid())
         name = "cb_instmethods-{0}".format(helpers.get_uuid())

+ 2 - 2
test/test_security_service.py

@@ -49,10 +49,10 @@ class CloudSecurityServiceTestCase(ProviderTestBase):
 
 
         public_key, _ = cb_helpers.generate_key_pair()
         public_key, _ = cb_helpers.generate_key_pair()
         kp = self.provider.security.key_pairs.create(
         kp = self.provider.security.key_pairs.create(
-            name=name, public_key=public_key)
+            name=name, public_key_material=public_key)
         with helpers.cleanup_action(lambda: kp.delete()):
         with helpers.cleanup_action(lambda: kp.delete()):
             self.assertIsNone(kp.material, "Private KeyPair material should"
             self.assertIsNone(kp.material, "Private KeyPair material should"
-                              " be none when key is imported.")
+                              " be None when key is imported.")
 
 
     @helpers.skipIfNoService(['security.vm_firewalls'])
     @helpers.skipIfNoService(['security.vm_firewalls'])
     def test_crud_vm_firewall(self):
     def test_crud_vm_firewall(self):