Implement vserver operation function 65/8265/2
authorying.yunlong <ying.yunlong@zte.com.cn>
Tue, 22 Aug 2017 11:16:07 +0000 (19:16 +0800)
committerying.yunlong <ying.yunlong@zte.com.cn>
Tue, 22 Aug 2017 11:35:40 +0000 (19:35 +0800)
Add new create_vserver、delete_vserver、
query_vserver function to operate resource
to aai.

Change-Id: Id7ca8e8b35e3a937d900eccb435f0092bb16a600
Issue-ID: VFC-105
Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
lcm/lcm/pub/aaiapi/aai.py

index d97f159..f92ca2d 100644 (file)
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
 # See the License for the specific language governing permissions and\r
 # limitations under the License.\r
+import json\r
 import logging\r
 \r
+from lcm.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWORD\r
+from lcm.pub.exceptions import NFLCMException\r
+from lcm.pub.utils.restcall import call_req_aai, rest_no_auth\r
+\r
 logger = logging.getLogger(__name__)\r
 \r
 \r
@@ -25,4 +30,31 @@ def create_vnf(vnf_id, data):
 \r
 \r
 def create_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
-    pass\r
+    resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
+               "%s/tenants/tenant/%s/vservers/vserver/%s" % \\r
+               (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
+    ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data)\r
+    if ret[0] != 0:\r
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
+        raise NFLCMException("Vserver creation exception in AAI")\r
+    return json.JSONDecoder().decode(ret[1])\r
+\r
+def delete_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
+    resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
+               "%s/tenants/tenant/%s/vservers/vserver/%s" % \\r
+               (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
+    ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data)\r
+    if ret[0] != 0:\r
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
+        raise NFLCMException("Vserver delete exception in AAI")\r
+    return json.JSONDecoder().decode(ret[1])\r
+\r
+def query_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data):\r
+    resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \\r
+               "%s/tenants/tenant/%s/vservers/vserver/%s" % \\r
+               (cloud_owner, cloud_region_id, tenant_id, vserver_id)\r
+    ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data)\r
+    if ret[0] != 0:\r
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])\r
+        raise NFLCMException("Vserver query exception in AAI")\r
+    return json.JSONDecoder().decode(ret[1])\r