Procházet zdrojové kódy

Network association & adding missing zone parameter

almahmoud před 7 roky
rodič
revize
8043592507

+ 1 - 1
cloudbridge/cloud/base/services.py

@@ -217,7 +217,7 @@ class BaseSubnetService(
         # No provider-default Subnet exists, try to create it (net + subnets)
         network = self.provider.networking.networks.get_or_create_default()
         subnet = self.create(BaseSubnet.CB_DEFAULT_SUBNET_LABEL, network,
-                             default_cidr)
+                             default_cidr, zone)
         return subnet
 
 

+ 17 - 2
cloudbridge/cloud/providers/openstack/resources.py

@@ -1203,6 +1203,7 @@ class OpenStackKeyPair(BaseKeyPair):
 
 
 class OpenStackVMFirewall(BaseVMFirewall):
+    _network_id_tag = "CB-AUTO-associated-network-id: "
 
     def __init__(self, provider, vm_firewall):
         super(OpenStackVMFirewall, self).__init__(provider, vm_firewall)
@@ -1217,11 +1218,25 @@ class OpenStackVMFirewall(BaseVMFirewall):
         """
         # Best way would be to use regex, but using this hacky way to avoid
         # importing the re package
-        desc = self.description
-        net_id = desc.split("[CB-AUTO-associated-network-id: ")[-1]\
+        net_id = self._description\
+                     .split(" [{}".format(self._network_id_tag))[-1]\
                      .split(']')[0]
         return net_id
 
+    @property
+    def _description(self):
+        return self._vm_firewall.description or ""
+
+    @property
+    def description(self):
+        desc_fragment = " [{}{}]".format(self._network_id_tag,
+                                         self.network_id)
+        desc = self._description
+        if desc:
+            return desc.replace(desc_fragment, "")
+        else:
+            return None
+
     @property
     def name(self):
         """

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

@@ -220,9 +220,8 @@ class OpenStackVMFirewallService(BaseVMFirewallService):
         net = network.id if isinstance(network, Network) else network
         if not description:
             description = ""
-        else:
-            description += "   "
-        description += "[CB-AUTO-associated-network-id: {}]".format(net)
+        description += "[{}{}]".format(OpenStackVMFirewall._network_id_tag,
+                                       net)
         sg = self.provider.os_conn.network.create_security_group(
             name=label, description=description or label)
         if sg: