almahmoud 7 лет назад
Родитель
Сommit
ec20e62a63

+ 3 - 3
cloudbridge/cloud/interfaces/services.py

@@ -1274,12 +1274,12 @@ class VMFirewallService(PageableObjectMixin, CloudService):
         pass
 
     @abstractmethod
-    def delete(self, firewall):
+    def delete(self, vm_firewall):
         """
         Delete an existing VMFirewall.
 
-        :type firewall: ``str`` or :class:`.VMFirewall`
-        :param firewall: The object or VM firewall ID to be deleted.
+        :type vm_firewall: ``str`` or :class:`.VMFirewall`
+        :param vm_firewall: The object or VM firewall ID to be deleted.
         """
         pass
 

+ 0 - 8
cloudbridge/cloud/providers/aws/resources.py

@@ -1116,14 +1116,6 @@ class AWSInternetGateway(BaseInternetGateway):
             return self._gateway.attachments[0].get('VpcId')
         return None
 
-    def delete(self):
-        try:
-            if self.network_id:
-                self._gateway.detach_from_vpc(VpcId=self.network_id)
-            self._gateway.delete()
-        except ClientError as e:
-            log.warn("Error deleting gateway {0}: {1}".format(self.id, e))
-
     @property
     def floating_ips(self):
         return self._fips_container

+ 23 - 18
cloudbridge/cloud/providers/aws/services.py

@@ -137,8 +137,9 @@ class AWSKeyPairService(BaseKeyPairService):
 
     @dispatch(event="provider.security.key_pairs.delete",
               priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY)
-    def delete(self, kp):
-        key_pair = kp if isinstance(kp, AWSKeyPair) else self.get(kp)
+    def delete(self, key_pair):
+        key_pair = (key_pair if isinstance(key_pair, AWSKeyPair) else
+                    self.get(key_pair))
         if key_pair:
             # pylint:disable=protected-access
             key_pair._key_pair.delete()
@@ -191,8 +192,9 @@ class AWSVMFirewallService(BaseVMFirewallService):
 
     @dispatch(event="provider.security.vm_firewalls.delete",
               priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY)
-    def delete(self, vmf):
-        firewall = vmf if isinstance(vmf, AWSVMFirewall) else self.get(vmf)
+    def delete(self, vm_firewall):
+        firewall = (vm_firewall if isinstance(vm_firewall, AWSVMFirewall)
+                    else self.get(vm_firewall))
         if firewall:
             # pylint:disable=protected-access
             firewall._vm_firewall.delete()
@@ -402,8 +404,9 @@ class AWSSnapshotService(BaseSnapshotService):
 
     @dispatch(event="provider.storage.snapshots.delete",
               priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY)
-    def delete(self, snap):
-        snapshot = snap if isinstance(snap, AWSSnapshot) else self.get(snap)
+    def delete(self, snapshot):
+        snapshot = (snapshot if isinstance(snapshot, AWSSnapshot) else
+                    self.get(snapshot))
         if snapshot:
             # pylint:disable=protected-access
             snapshot._snapshot.delete()
@@ -773,8 +776,9 @@ class AWSInstanceService(BaseInstanceService):
 
     @dispatch(event="provider.compute.instances.delete",
               priority=BaseInstanceService.STANDARD_EVENT_PRIORITY)
-    def delete(self, inst):
-        aws_inst = inst if isinstance(inst, AWSInstance) else self.get(inst)
+    def delete(self, instance):
+        aws_inst = (instance if isinstance(instance, AWSInstance) else
+                    self.get(instance))
         if aws_inst:
             # pylint:disable=protected-access
             aws_inst._ec2_instance.terminate()
@@ -905,8 +909,9 @@ class AWSNetworkService(BaseNetworkService):
 
     @dispatch(event="provider.networking.networks.delete",
               priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
-    def delete(self, net):
-        network = net if isinstance(net, AWSNetwork) else self.get(net)
+    def delete(self, network):
+        network = (network if isinstance(network, AWSNetwork)
+                   else self.get(network))
         if network:
             # pylint:disable=protected-access
             network._vpc.delete()
@@ -1158,8 +1163,6 @@ class AWSGatewayService(BaseGatewayService):
                                   boto_collection_name='internet_gateways')
 
     def get_or_create_inet_gateway(self, network):
-        log.debug("Get or create inet gateway on net %s",
-                  network)
         network_id = network.id if isinstance(
             network, AWSNetwork) else network
         # Don't filter by label because it may conflict with at least the
@@ -1179,12 +1182,14 @@ class AWSGatewayService(BaseGatewayService):
         return cb_gateway
 
     def delete(self, network, gateway):
-        log.debug("Service deleting AWS Gateway %s", gateway)
-        gateway_id = gateway.id if isinstance(
-            gateway, AWSInternetGateway) else gateway
-        gateway = self.svc.get(gateway_id)
-        if gateway:
-            gateway.delete()
+        gw = (gateway if isinstance(gateway, AWSInternetGateway)
+              else self.get(gateway))
+        try:
+            if gw.network_id:
+                gw._gateway.detach_from_vpc(VpcId=gw.network_id)
+            gw._gateway.delete()
+        except ClientError as e:
+            log.warn("Error deleting gateway {0}: {1}".format(self.id, e))
 
     def list(self, network, limit=None, marker=None):
         log.debug("Listing current AWS internet gateways for net %s.",

+ 16 - 12
cloudbridge/cloud/providers/azure/services.py

@@ -143,8 +143,9 @@ class AzureVMFirewallService(BaseVMFirewallService):
 
     @dispatch(event="provider.security.vm_firewalls.delete",
               priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY)
-    def delete(self, vmf):
-        fw_id = vmf.id if isinstance(vmf, AzureVMFirewall) else vmf
+    def delete(self, vm_firewall):
+        fw_id = (vm_firewall.id if isinstance(vm_firewall, AzureVMFirewall)
+                 else vm_firewall)
         self.provider.azure_client.delete_vm_firewall(fw_id)
 
 
@@ -213,11 +214,12 @@ class AzureVMFirewallRuleService(BaseVMFirewallRuleService):
         return AzureVMFirewallRule(firewall, result)
 
     def delete(self, firewall, rule):
-        vm_firewall = firewall.name
+        rule_id = rule.id if isinstance(rule, AzureVMFirewallRule) else rule
+        fw_name = firewall.name
         self.provider.azure_client. \
-            delete_vm_firewall_rule(rule.id, vm_firewall)
+            delete_vm_firewall_rule(rule_id, fw_name)
         for i, o in enumerate(firewall._vm_firewall.security_rules):
-            if o.id == rule.id:
+            if o.id == rule_id:
                 del firewall._vm_firewall.security_rules[i]
                 break
 
@@ -300,8 +302,9 @@ class AzureKeyPairService(BaseKeyPairService):
 
     @dispatch(event="provider.security.key_pairs.delete",
               priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY)
-    def delete(self, kp):
-        key_pair = kp if isinstance(kp, AzureKeyPair) else self.get(kp)
+    def delete(self, key_pair):
+        key_pair = (key_pair if isinstance(key_pair, AzureKeyPair) else
+                    self.get(key_pair))
         if key_pair:
             # pylint:disable=protected-access
             self.provider.azure_client.delete_public_key(key_pair._key_pair)
@@ -982,15 +985,16 @@ class AzureInstanceService(BaseInstanceService):
 
     @dispatch(event="provider.compute.instances.delete",
               priority=BaseInstanceService.STANDARD_EVENT_PRIORITY)
-    def delete(self, inst):
+    def delete(self, instance):
         """
         Permanently terminate this instance.
         After deleting the VM. we are deleting the network interface
         associated to the instance, and also removing OS disk and data disks
         where tag with name 'delete_on_terminate' has value True.
         """
-        ins = inst if isinstance(inst, AzureInstance) else self.get(inst)
-        if not inst:
+        ins = (instance if isinstance(instance, AzureInstance) else
+               self.get(instance))
+        if not instance:
             return
 
         # Remove IPs first to avoid a network interface conflict
@@ -1114,8 +1118,8 @@ class AzureNetworkService(BaseNetworkService):
 
     @dispatch(event="provider.networking.networks.delete",
               priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
-    def delete(self, net):
-        net_id = net.id if isinstance(net, AzureNetwork) else net
+    def delete(self, network):
+        net_id = network.id if isinstance(network, AzureNetwork) else network
         if net_id:
             self.provider.azure_client.delete_network(net_id)
 

+ 19 - 14
cloudbridge/cloud/providers/gce/services.py

@@ -147,11 +147,12 @@ class GCEKeyPairService(BaseKeyPairService):
 
     @dispatch(event="provider.security.key_pairs.delete",
               priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY)
-    def delete(self, kp):
-        kp = kp if isinstance(kp, GCEKeyPair) else self.get(kp)
-        if kp:
+    def delete(self, key_pair):
+        key_pair = (key_pair if isinstance(key_pair, GCEKeyPair) else
+                    self.get(key_pair))
+        if key_pair:
             helpers.remove_metadata_item(
-                self.provider, GCEKeyPair.KP_TAG_PREFIX + kp.name)
+                self.provider, GCEKeyPair.KP_TAG_PREFIX + key_pair.name)
 
 
 class GCEVMFirewallService(BaseVMFirewallService):
@@ -199,8 +200,9 @@ class GCEVMFirewallService(BaseVMFirewallService):
 
     @dispatch(event="provider.security.vm_firewalls.delete",
               priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY)
-    def delete(self, vmf):
-        fw_id = vmf.id if isinstance(vmf, GCEVMFirewall) else vmf
+    def delete(self, vm_firewall):
+        fw_id = (vm_firewall.id if isinstance(vm_firewall, GCEVMFirewall)
+                 else vm_firewall)
         return self._delegate.delete_tag_network_with_id(fw_id)
 
     def find_by_network_and_tags(self, network_name, tags):
@@ -280,6 +282,7 @@ class GCEVMFirewallRuleService(BaseVMFirewallRuleService):
                                          to_port, cidr, src_dest_fw)
 
     def delete(self, firewall, rule):
+        rule = rule if isinstance(rule, GCEVMFirewallRule) else self.get(rule)
         if rule.is_dummy_rule():
             return True
         firewall.delegate.delete_firewall_id(rule._rule)
@@ -653,8 +656,9 @@ class GCEInstanceService(BaseInstanceService):
 
     @dispatch(event="provider.compute.instances.delete",
               priority=BaseInstanceService.STANDARD_EVENT_PRIORITY)
-    def delete(self, inst):
-        instance = inst if isinstance(inst, GCEInstance) else self.get(inst)
+    def delete(self, instance):
+        instance = (instance if isinstance(instance, GCEInstance) else
+                    self.get(instance))
         if instance:
             (self._provider
              .gce_compute
@@ -1207,8 +1211,8 @@ class GCEVolumeService(BaseVolumeService):
 
     @dispatch(event="provider.storage.volumes.delete",
               priority=BaseVolumeService.STANDARD_EVENT_PRIORITY)
-    def delete(self, vol):
-        volume = vol if isinstance(vol, GCEVolume) else self.get(vol)
+    def delete(self, volume):
+        volume = volume if isinstance(volume, GCEVolume) else self.get(volume)
         if volume:
             (self._provider.gce_compute
                            .disks()
@@ -1307,8 +1311,9 @@ class GCESnapshotService(BaseSnapshotService):
 
     @dispatch(event="provider.storage.snapshots.delete",
               priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY)
-    def delete(self, snap):
-        snapshot = snap if isinstance(snap, GCESnapshot) else self.get(snap)
+    def delete(self, snapshot):
+        snapshot = (snapshot if isinstance(snapshot, GCESnapshot)
+                    else self.get(snapshot))
         if snapshot:
             (self.provider
                  .gce_compute
@@ -1550,8 +1555,8 @@ class GCEFloatingIPService(BaseFloatingIPService):
         return self.get(ip_name)
 
     def delete(self, gateway, fip):
-        fip = fip if isinstance(fip, GCEFloatingIP) else \
-            gateway.floating_ips.get(fip)
+        fip = (fip if isinstance(fip, GCEFloatingIP)
+               else gateway.floating_ips.get(fip))
         project_name = self.provider.project_name
         # First, delete the forwarding rule, if there is any.
         if fip._rule:

+ 0 - 4
cloudbridge/cloud/providers/openstack/resources.py

@@ -1059,10 +1059,6 @@ class OpenStackInternetGateway(BaseInternetGateway):
         return self.GATEWAY_STATE_MAP.get(
             self._gateway_net.state, GatewayState.UNKNOWN)
 
-    def delete(self):
-        """Do nothing on openstack"""
-        pass
-
     @property
     def floating_ips(self):
         return self._fips_container

+ 22 - 15
cloudbridge/cloud/providers/openstack/services.py

@@ -191,8 +191,9 @@ class OpenStackKeyPairService(BaseKeyPairService):
 
     @dispatch(event="provider.security.key_pairs.delete",
               priority=BaseKeyPairService.STANDARD_EVENT_PRIORITY)
-    def delete(self, kp):
-        keypair = kp if isinstance(kp, OpenStackKeyPair) else self.get(kp)
+    def delete(self, key_pair):
+        keypair = (key_pair if isinstance(key_pair, OpenStackKeyPair)
+                   else self.get(key_pair))
         if keypair:
             # pylint:disable=protected-access
             keypair._key_pair.delete()
@@ -249,8 +250,9 @@ class OpenStackVMFirewallService(BaseVMFirewallService):
 
     @dispatch(event="provider.security.vm_firewalls.delete",
               priority=BaseVMFirewallService.STANDARD_EVENT_PRIORITY)
-    def delete(self, vmf):
-        fw = vmf if isinstance(vmf, OpenStackVMFirewall) else self.get(vmf)
+    def delete(self, vm_firewall):
+        fw = (vm_firewall if isinstance(vm_firewall, OpenStackVMFirewall)
+              else self.get(vm_firewall))
         if fw:
             # pylint:disable=protected-access
             fw._vm_firewall.delete(self.provider.os_conn.session)
@@ -304,7 +306,9 @@ class OpenStackVMFirewallRuleService(BaseVMFirewallRuleService):
                 raise e
 
     def delete(self, firewall, rule):
-        self.provider.os_conn.network.delete_security_group_rule(rule.id)
+        rule_id = (rule.id if isinstance(rule, OpenStackVMFirewallRule)
+                   else rule)
+        self.provider.os_conn.network.delete_security_group_rule(rule_id)
         firewall.refresh()
 
 
@@ -399,8 +403,9 @@ class OpenStackVolumeService(BaseVolumeService):
 
     @dispatch(event="provider.storage.volumes.delete",
               priority=BaseVolumeService.STANDARD_EVENT_PRIORITY)
-    def delete(self, vol):
-        volume = vol if isinstance(vol, OpenStackVolume) else self.get(vol)
+    def delete(self, volume):
+        volume = (volume if isinstance(volume, OpenStackVolume)
+                  else self.get(volume))
         if volume:
             # pylint:disable=protected-access
             volume._volume.delete()
@@ -470,8 +475,9 @@ class OpenStackSnapshotService(BaseSnapshotService):
 
     @dispatch(event="provider.storage.snapshots.delete",
               priority=BaseSnapshotService.STANDARD_EVENT_PRIORITY)
-    def delete(self, snap):
-        s = snap if isinstance(snap, OpenStackSnapshot) else self.get(snap)
+    def delete(self, snapshot):
+        s = (snapshot if isinstance(snapshot, OpenStackSnapshot) else
+             self.get(snapshot))
         if s:
             # pylint:disable=protected-access
             s._snapshot.delete()
@@ -853,8 +859,9 @@ class OpenStackInstanceService(BaseInstanceService):
 
     @dispatch(event="provider.compute.instances.delete",
               priority=BaseInstanceService.STANDARD_EVENT_PRIORITY)
-    def delete(self, inst):
-        ins = inst if isinstance(inst, OpenStackInstance) else self.get(inst)
+    def delete(self, instance):
+        ins = (instance if isinstance(instance, OpenStackInstance) else
+               self.get(instance))
         if ins:
             # pylint:disable=protected-access
             os_instance = ins._os_instance
@@ -987,8 +994,9 @@ class OpenStackNetworkService(BaseNetworkService):
 
     @dispatch(event="provider.networking.networks.delete",
               priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
-    def delete(self, net):
-        network = net if isinstance(net, OpenStackNetwork) else self.get(net)
+    def delete(self, network):
+        network = (network if isinstance(network, OpenStackNetwork) else
+                   self.get(network))
         if not network:
             return
         if not network.external and network.id in str(
@@ -1149,8 +1157,7 @@ class OpenStackGatewayService(BaseGatewayService):
         return None
 
     def delete(self, network, gateway):
-        log.debug("Deleting OpenStack Gateway: %s", gateway)
-        gateway.delete()
+        pass
 
     def list(self, network, limit=None, marker=None):
         log.debug("OpenStack listing of all current internet gateways")