From dd0ba443be71964a454c29010dc6f1e554165290 Mon Sep 17 00:00:00 2001 From: yangyan Date: Fri, 6 Sep 2019 15:56:49 +0800 Subject: Update test scripts of ns_instance Change-Id: I18f50db83568b80037c70b7adc1b9b653d265fc2 Issue-ID: VFC-1510 Signed-off-by: yangyan --- resources/testscripts/ns_instance/Instrutions | 48 ++++++++++++++++++++++++++ resources/testscripts/ns_instance/create.py | 30 ++++++++++++++++ resources/testscripts/ns_instance/delete.py | 17 +++++++++ resources/testscripts/ns_instance/get.py | 14 ++++++++ resources/testscripts/ns_instance/get_one.py | 17 +++++++++ resources/testscripts/ns_instance/instance.py | 35 +++++++++++++++++++ resources/testscripts/ns_instance/terminate.py | 27 +++++++++++++++ 7 files changed, 188 insertions(+) create mode 100644 resources/testscripts/ns_instance/Instrutions create mode 100644 resources/testscripts/ns_instance/create.py create mode 100644 resources/testscripts/ns_instance/delete.py create mode 100644 resources/testscripts/ns_instance/get.py create mode 100644 resources/testscripts/ns_instance/get_one.py create mode 100644 resources/testscripts/ns_instance/instance.py create mode 100644 resources/testscripts/ns_instance/terminate.py diff --git a/resources/testscripts/ns_instance/Instrutions b/resources/testscripts/ns_instance/Instrutions new file mode 100644 index 00000000..02a1637e --- /dev/null +++ b/resources/testscripts/ns_instance/Instrutions @@ -0,0 +1,48 @@ +This process is ns instantiation process +When the NS and vnf packages are uploaded and the MSB is registered successfully. +the instantiation operation begins. +This process mainly includes ns creation, instantiation, information query acquisition, +instance termination and data deletion after termination. + +# create + +Prepare the data before instance creation according to your needs, +and replace the CSAR ID generated after uploading package management. +When the execution is completed, an instance ID and other data are returned. + +# instance + +This process also prepares the data according to the requirement of creating the instance itself, +returns the instance ID after executing the create script, +and then executes the script after executing the script command. At this point, +the instance ID will be passed into the script, and a series of instantiation operations will be started, +and the virtual machine will be created. + +# get + +If you want to get some data generated during instance creation, you can execute the script +The script can query all the instance information in the database. + +# get_one + +If you want to get some instance data during instance creation, you can execute the script +The script only queries the content of an instance information, +executes the script command and puts the created instance ID after the command, +then the query can be completed. + +# terminate + +After the instantiation process is successfully created, +if you want to terminate the instantiation, execute the script. +The virtual machine generated after the script execution will also stop, +as well as some data deletion, termination of services. +After the script command is executed, the instance ID needs to be added after the command. + +# delete + +Some data will remain after termination. Execute the script to clear the data in the database. +The instance ID is also required to execute this process. +The completion of this process indicates the end of an instance creation termination process. + +Note: IP address for MSB service + Ns cannot be created repeatedly diff --git a/resources/testscripts/ns_instance/create.py b/resources/testscripts/ns_instance/create.py new file mode 100644 index 00000000..b0ab6a2b --- /dev/null +++ b/resources/testscripts/ns_instance/create.py @@ -0,0 +1,30 @@ +# Copyright (c) 2020, CMCC Technologies Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License") +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# 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 httplib2 + +data = { + "context": { + "globalCustomerId": "hpa_cust", + "serviceType": "vCPE" + }, + "csarId": "825f60e0-71c1-4288-8ada-cdb0a24f84dc", + "nsName": "vcpes", + "description": "description" +} +headers = {'content-type': 'application/json', 'accept': 'application/json'} +http = httplib2.Http() +resp, resp_content = http.request('http://10.12.5.131:30280/api/nslcm/v1/ns', + method="POST", + body=json.dumps(data), + headers=headers) +print(resp['status'], resp_content) diff --git a/resources/testscripts/ns_instance/delete.py b/resources/testscripts/ns_instance/delete.py new file mode 100644 index 00000000..25613719 --- /dev/null +++ b/resources/testscripts/ns_instance/delete.py @@ -0,0 +1,17 @@ +# Copyright (c) 2020, CMCC Technologies Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License") +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# 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 requests +import sys + +inst_id = sys.argv[1] +resp = requests.delete('http://10.12.5.131:30280/api/nslcm/v1/ns/' + inst_id) +print(resp.status_code) diff --git a/resources/testscripts/ns_instance/get.py b/resources/testscripts/ns_instance/get.py new file mode 100644 index 00000000..aac4f1af --- /dev/null +++ b/resources/testscripts/ns_instance/get.py @@ -0,0 +1,14 @@ +# Copyright (c) 2020, CMCC Technologies Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License") +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# 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 requests +resp = requests.get('http://10.12.5.131:30280/api/nslcm/v1/ns') +print(resp.status_code, resp.json()) diff --git a/resources/testscripts/ns_instance/get_one.py b/resources/testscripts/ns_instance/get_one.py new file mode 100644 index 00000000..12829098 --- /dev/null +++ b/resources/testscripts/ns_instance/get_one.py @@ -0,0 +1,17 @@ +# Copyright (c) 2020, CMCC Technologies Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License") +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# 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 requests +import sys +inst_id = sys.argv[1] + +resp = requests.get('http://10.12.5.131:30280/api/nslcm/v1/ns/' + inst_id) +print(resp.status_code, resp.json()) diff --git a/resources/testscripts/ns_instance/instance.py b/resources/testscripts/ns_instance/instance.py new file mode 100644 index 00000000..7d3ba157 --- /dev/null +++ b/resources/testscripts/ns_instance/instance.py @@ -0,0 +1,35 @@ +# Copyright (c) 2020, CMCC Technologies Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License") +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# 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 httplib2 +import sys +inst_id = sys.argv[1] + +data = { + "additionalParamForNs": { + "sdnControllerId": "2" + }, + "locationConstraints": [{ + "vnfProfileId": "b1bb0ce7-2222-4fa7-95ed-4840d70a1177", + "locationConstraints": { + "vimId": "CloudOwner_ONAP-POD-01-Rail-07" + } + }] +} + +headers = {'content-type': 'application/json', 'accept': 'application/json'} +http = httplib2.Http() +resp, resp_content = http.request('http://10.12.5.131:30280/api/nslcm/v1/ns/' + inst_id + '/instantiate', + method="POST", + body=json.dumps(data), + headers=headers) +print(resp['status'], resp_content) diff --git a/resources/testscripts/ns_instance/terminate.py b/resources/testscripts/ns_instance/terminate.py new file mode 100644 index 00000000..ae246f4f --- /dev/null +++ b/resources/testscripts/ns_instance/terminate.py @@ -0,0 +1,27 @@ +# Copyright (c) 2020, CMCC Technologies Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License") +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# 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 httplib2 +import sys +inst_data = sys.argv[1] + +data = { + "gracefulTerminationTimeout": 600, + "terminationType": "FORCEFUL" +} +headers = {'content-type': 'application/json', 'accept': 'application/json'} +http = httplib2.Http() +resp, resp_content = http.request('http://10.12.5.131:30280/api/nslcm/v1/ns/' + inst_data + '/terminate', + method="POST", + body=json.dumps(data), + headers=headers) +print(resp['status'], resp_content) -- cgit 1.2.3-korg