From cdb2b13b1330aca1b85d19cbd0e95c7adfa38073 Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Tue, 22 Aug 2017 19:16:07 +0800 Subject: [PATCH] Implement vserver operation function MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- lcm/lcm/pub/aaiapi/aai.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/lcm/lcm/pub/aaiapi/aai.py b/lcm/lcm/pub/aaiapi/aai.py index d97f1594..f92ca2d4 100644 --- a/lcm/lcm/pub/aaiapi/aai.py +++ b/lcm/lcm/pub/aaiapi/aai.py @@ -11,8 +11,13 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +import json import logging +from lcm.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWORD +from lcm.pub.exceptions import NFLCMException +from lcm.pub.utils.restcall import call_req_aai, rest_no_auth + logger = logging.getLogger(__name__) @@ -25,4 +30,31 @@ def create_vnf(vnf_id, data): def create_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): - pass + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "PUT", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vserver creation exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def delete_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "DELETE", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vserver delete exception in AAI") + return json.JSONDecoder().decode(ret[1]) + +def query_vserver(cloud_owner, cloud_region_id, tenant_id, vserver_id, data): + resource = "/cloud-infrastructure/cloud-regions/cloud-region/%s/" \ + "%s/tenants/tenant/%s/vservers/vserver/%s" % \ + (cloud_owner, cloud_region_id, tenant_id, vserver_id) + ret = call_req_aai(AAI_BASE_URL, AAI_USER, AAI_PASSWORD, rest_no_auth, resource, "GET", data) + if ret[0] != 0: + logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) + raise NFLCMException("Vserver query exception in AAI") + return json.JSONDecoder().decode(ret[1]) -- 2.16.6