aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuanHong Deng <dengyuanhong@chinamobile.com>2020-05-14 09:38:06 +0800
committerYuanhong Deng <dengyuanhong@chinamobile.com>2020-05-18 07:04:09 +0000
commitb4722c4b672a1415b37a3a7a00811d637819c48c (patch)
tree59aa5279ce8736ae13da69c5d4c83da1364c0405
parent8cfa32e6b48fc50d1e0540240c79d1db64426196 (diff)
Implement VNF interface APIs
Issue-ID: VFC-1671 Change-Id: I7b9e37113991b637f60c68c08c71ba54a527fdc8 Signed-off-by: YuanHong Deng <dengyuanhong@chinamobile.com>
-rw-r--r--lcm/pub/msapi/aai.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/lcm/pub/msapi/aai.py b/lcm/pub/msapi/aai.py
index e6fe545f..a78a3953 100644
--- a/lcm/pub/msapi/aai.py
+++ b/lcm/pub/msapi/aai.py
@@ -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)