Implement VNF interface APIs 50/107650/3
authorYuanHong Deng <dengyuanhong@chinamobile.com>
Thu, 14 May 2020 01:38:06 +0000 (09:38 +0800)
committerYuanhong Deng <dengyuanhong@chinamobile.com>
Mon, 18 May 2020 07:04:09 +0000 (07:04 +0000)
Issue-ID: VFC-1671
Change-Id: I7b9e37113991b637f60c68c08c71ba54a527fdc8
Signed-off-by: YuanHong Deng <dengyuanhong@chinamobile.com>
lcm/pub/msapi/aai.py

index e6fe545..a78a395 100644 (file)
@@ -259,6 +259,48 @@ def delete_vserver_relationship(cloud_owner, cloud_region_id, tenant_id, vserver
     return json.JSONDecoder().decode(ret[1]) if ret[1] else ret[1], ret[2]
 
 
+def create_l_interface_aai(vnf_id, interface_name):
+    resource = "/network/generic-vnfs/generic-vnf/%s/l-interfaces/l-interface/%s" % (vnf_id, interface_name)
+    ret = call_aai(resource, "PUT")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("l-interface creation exception in AAI")
+    return json.JSONDecoder().decode(ret[1]) if ret[1] else ret[1], ret[2]
+
+
+def query_l_interface_aai(vnf_id, interface_name):
+    resource = "/network/generic-vnfs/generic-vnf/%s/l-interfaces/l-interface/%s" % (vnf_id, interface_name)
+    ret = call_aai(resource, "GET")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Get l-interface info exception in AAI")
+    return json.JSONDecoder().decode(ret[1]) if ret[1] else ret[1], ret[2]
+
+
+def delete_l_interface_aai(vnf_id, interface_name, resource_version=""):
+    resource = "/network/generic-vnfs/generic-vnf/%s/l-interfaces/l-interface/%s" % (vnf_id, interface_name)
+    if resource_version:
+        resource = resource + "?resource-version=%s" % resource_version
+    ret = call_aai(resource, "DELETE")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("l_interface delete exception in AAI")
+    if ret[2] == 404:
+        logger.error("No l_interface %s in AAI" % interface_name)
+        raise RequestException("No l_interface %s in AAI" % interface_name)
+    return json.JSONDecoder().decode(ret[1]) if ret[1] else ret[1], ret[2]
+
+
+def create_l3_interface_ipv4_address_list_aai(vnf_id, interface_name, ipv4_addr):
+    resource = "/network/generic-vnfs/generic-vnf/%s/l-interfaces/l-interface/%s/" \
+               "l3-interface-ipv4-address-list/%s" % (vnf_id, interface_name, ipv4_addr)
+    ret = call_aai(resource, "PUT")
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise NSLCMException("Ip address list creation exception in AAI")
+    return json.JSONDecoder().decode(ret[1]) if ret[1] else ret[1], ret[2]
+
+
 def create_network_aai(network_id, data):
     resource = "/network/l3-networks/l3-network/%s" % network_id
     data = json.JSONEncoder().encode(data)