Update create vl logic
[vfc/nfvo/lcm.git] / lcm / ns / vls / create_vls.py
index 18abfa2..06ef78b 100644 (file)
@@ -40,6 +40,7 @@ class CreateVls(object):
         self.owner_type = OWNER_TYPE.NS
         self.vld_id = ""
         self.vl_properties = ""
+        self.vl_profile = ""
         self.vl_inst_name = ""
         self.related_network_id = ""
         self.related_subnetwork_id = ""
@@ -77,7 +78,8 @@ class CreateVls(object):
         self.vld_id = ignore_case_get(vl_info, "vl_id")
         self.description = ignore_case_get(vl_info, "description")
         self.vl_properties = ignore_case_get(vl_info, "properties")
-        self.vl_inst_name = ignore_case_get(self.vl_properties, "name")
+        self.vl_profile = ignore_case_get(self.vl_properties, "vl_profile")
+        self.vl_inst_name = ignore_case_get(self.vl_profile, "networkName")
         self.route_external = ignore_case_get(vl_info, "route_external")
         ns_info = NSInstModel.objects.filter(id=self.owner_id)
         self.ns_name = ns_info[0].name if ns_info else ""
@@ -92,23 +94,23 @@ class CreateVls(object):
         self.tenant = ignore_case_get(self.vl_properties["location_info"], "tenant")
         network_data = {
             "tenant": self.tenant,
-            "network_name": self.vl_properties.get("network_name", ""),
+            "network_name": self.vl_profile.get("networkName", ""),
             "shared": const.SHARED_NET,
-            "network_type": self.vl_properties.get("network_type", ""),
-            "segmentation_id": self.vl_properties.get("segmentation_id", ""),
-            "physical_network": self.vl_properties.get("physical_network", ""),
-            "mtu": self.vl_properties.get("mtu", const.DEFAULT_MTU),
-            "vlan_transparent": self.vl_properties.get("vlan_transparent", False),
+            "network_type": self.vl_profile.get("networkType", ""),
+            "segmentation_id": self.vl_profile.get("segmentationId", ""),
+            "physical_network": self.vl_profile.get("physicalNetwork", ""),
+            "mtu": self.vl_profile.get("mtu", const.DEFAULT_MTU),
+            "vlan_transparent": self.vl_profile.get("vlanTransparent", False),
             "subnet_list": [{
-                "subnet_name": self.vl_properties.get("name", ""),
-                "cidr": self.vl_properties.get("cidr", "192.168.0.0/24"),
-                "ip_version": self.vl_properties.get("ip_version", const.IPV4),
-                "enable_dhcp": self.vl_properties.get("dhcp_enabled", False),
-                "gateway_ip": self.vl_properties.get("gateway_ip", ""),
-                "dns_nameservers": self.vl_properties.get("dns_nameservers", ""),
-                "host_routes": self.vl_properties.get("host_routes", "")}]}
-        startip = self.vl_properties.get("start_ip", "")
-        endip = self.vl_properties.get("end_ip", "")
+                "subnet_name": self.vl_profile.get("initiationParameters").get("name", ""),
+                "cidr": self.vl_profile.get("cidr", "192.168.0.0/24"),
+                "ip_version": self.vl_profile.get("ip_version", const.IPV4),
+                "enable_dhcp": self.vl_profile.get("dhcpEnabled", False),
+                "gateway_ip": self.vl_profile.get("gatewayIp", ""),
+                "dns_nameservers": self.vl_profile.get("dns_nameservers", ""),
+                "host_routes": self.vl_profile.get("host_routes", "")}]}
+        startip = self.vl_profile.get("startIp", "")
+        endip = self.vl_profile.get("endIp", "")
         if startip and endip:
             network_data["subnet_list"][0]["allocation_pools"] = [
                 {"start": startip, "end": endip}]
@@ -139,31 +141,31 @@ class CreateVls(object):
     def create_vl_to_resmgr(self):
         req_param = {
             "vlInstanceId": self.vl_inst_id,
-            "name": self.vl_properties.get("network_name", ""),
+            "name": self.vl_profile.get("networkName", ""),
             "backendId": str(self.related_network_id),
             "isPublic": "True",
             "dcName": "",
             "vimId": str(self.vim_id),
             "vimName": self.vim_name,
-            "physicialNet": self.vl_properties.get("physical_network", ""),
+            "physicialNet": self.vl_profile.get("physicalNetwork", ""),
             "nsId": self.owner_id,
             "nsName": self.ns_name,
             "description": self.description,
-            "networkType": self.vl_properties.get("network_type", ""),
-            "segmentation": str(self.vl_properties.get("segmentation_id", "")),
-            "mtu": str(self.vl_properties.get("mtu", "")),
-            "vlanTransparent": str(self.vl_properties.get("vlan_transparent", "")),
+            "networkType": self.vl_profile.get("networkType", ""),
+            "segmentation": str(self.vl_profile.get("segmentationId", "")),
+            "mtu": str(self.vl_profile.get("mtu", "")),
+            "vlanTransparent": str(self.vl_profile.get("vlanTransparent", "")),
             "routerExternal": self.route_external,
             "resourceProviderType": "",
             "resourceProviderId": "",
             "subnet_list": [{
-                "subnet_name": self.vl_properties.get("name", ""),
-                "cidr": self.vl_properties.get("cidr", "192.168.0.0/24"),
-                "ip_version": self.vl_properties.get("ip_version", const.IPV4),
-                "enable_dhcp": self.vl_properties.get("dhcp_enabled", False),
-                "gateway_ip": self.vl_properties.get("gateway_ip", ""),
-                "dns_nameservers": self.vl_properties.get("dns_nameservers", ""),
-                "host_routes": self.vl_properties.get("host_routes", "")
+                "subnet_name": self.vl_profile.get("initiationParameters").get("name", ""),
+                "cidr": self.vl_profile.get("cidr", "192.168.0.0/24"),
+                "ip_version": self.vl_profile.get("ip_version", const.IPV4),
+                "enable_dhcp": self.vl_profile.get("dhcpEnabled", False),
+                "gateway_ip": self.vl_profile.get("gatewayIp", ""),
+                "dns_nameservers": self.vl_profile.get("dns_nameservers", ""),
+                "host_routes": self.vl_profile.get("host_routes", "")
             }]
         }
         resmgr.create_vl(req_param)
@@ -197,6 +199,9 @@ class CreateVls(object):
     def create_network_and_subnet_in_aai(self):
         logger.debug("CreateVls::create_network_in_aai::report network[%s] to aai." % self.vl_inst_id)
         try:
+            ns_insts = NSInstModel.objects.filter(id=self.owner_id)
+            self.global_customer_id = ns_insts[0].global_customer_id
+            self.service_type = ns_insts[0].service_type
             data = {
                 "network-id": self.vl_inst_id,
                 "network-name": self.vl_inst_name,
@@ -215,10 +220,18 @@ class CreateVls(object):
                 "relationship-list": {
                     "relationship": [
                         {
-                            "related-to": "generic-vnf",
+                            "related-to": "service-instance",
                             "relationship-data": [
                                 {
-                                    "relationship-key": "generic-vnf.vnf-id",
+                                    "relationship-key": "customer.global-customer-id",
+                                    "relationship-value": self.global_customer_id
+                                },
+                                {
+                                    "relationship-key": "service-subscription.service-type",
+                                    "relationship-value": self.service_type
+                                },
+                                {
+                                    "relationship-key": "service-instance.service-instance-id",
                                     "relationship-value": self.owner_id
                                 }
                             ]