# Copyright 2019 Huawei 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. open_cli_schema_version: 1.0 name: vnf-tosca-provision description: | ONAP TOSCA VNF validation using ONAP CLI and Open Command Platform (OCOMP) This command runs in 5 mode: 1. setup: Create requires Vendor, Service Subscription and VNF cloud in ONAP 2. standup: From the given VSP csar, VNF csar and NS csar, it creates VF Model, NS Model and NS service 3. cleanup: Remove those entries provided in onap-objects parameter 4. provision:Run setup -> standup 5. validate: Run setup -> standup -> cleanup On every execution, it reports the ONAP managed object's ids in result onap-objects attribute. so if requires, these attribute value could be passed in input parameter onap-objects on subsequent executions to avoid recreation of these ONA managed objects prerequisites ------------- 1. Setup the OCOMP profile to configure the ONAP service URL and creadentials as given below a. Run command 'oclip' to go to OCOMP interactive mode b. Type 'use onap-dublin' to choose the onap-dublin product c. Type 'profile onap-dublin' to create or to use existing onap-dublin profile d. Set following entries: set sdc.onboarding:host-url=http://159.138.8.8:30280 set sdc.onboarding:host-username=cs0008 set sdc.onboarding:host-password=demo123456! set sdc.catalog:host-url=http://159.138.8.8:30205 set sdc.catalog:host-password=demo123456\! set sdc.catalog:host-username=cs0008 set sdc.catalog:service-model-approve:host-username=gv0001 set sdc.catalog:service-model-distribute:host-username=op0001 set sdc.catalog:service-model-test-start:host-username=jm0007 set sdc.catalog:service-model-test-accept:host-username=jm0007 set sdc.catalog:service-model-add-artifact:host-username=ocomp set sdc.catalog:vf-model-add-artifact:host-username=ocomp set aai:host-url=https://159.138.8.8:30233 set aai:host-username=AAI set aai:host-password=AAI set vfc:host-url=http://159.138.8.8:30280 set multicloud:host-url=http://159.138.8.8:30280 NOTE: By default, SDC onboarding service does not provide node port, which is available to access from external ONAP network. so to enable for external access, register the SDC onboarding service into MSB and use MSB url for sdc.onboarding:host-url. oclip --product onap-dublin microservice-create --host-url http://159.138.8.8:30280 --service-name sdcob --service-version v1.0 --service-url /onboarding-api/v1.0 --path /onboarding-api/v1.0 --node-ip 172.16.1.0 --node-port 8081 oclip --product onap-dublin microservice-create --host-url http://159.138.8.8:30280 --service-name sdcobs --service-version v1.0 --service-url /onboarding-api/v1.0 --path /onboarding-api/v1.0 --node-ip 172.16.1.0 --node-port 8445 --enable-ssl Find out SDC onboarding service IP and port details as given here: [root@onap-dublin-vfw-93996-50c1z ~]# kubectl get pods -n onap -o wide | grep sdc-onboarding-be dev-sdc-sdc-onboarding-be-5564b877c8-vpwr5 2/2 Running 0 29d 172.16.1.0 192.168.2.163 dev-sdc-sdc-onboarding-be-cassandra-init-mtvz6 0/1 Completed 0 29d 172.16.0.220 192.168.2.163 [root@onap-dublin-vfw-93996-50c1z ~]# Note down the IP address for sdc-onboarding-be 172.16.1.0 [root@onap-dublin-vfw-93996-50c1z ~]# kubectl get services -n onap -o wide | grep sdc-onboarding-be sdc-onboarding-be ClusterIP 10.247.198.92 8445/TCP,8081/TCP 29d app=sdc-onboarding-be,release=dev-sdc [root@onap-dublin-vfw-93996-50c1z ~]# Note down the port for sdc-onboarding-be 8445 8081 Similarly, other service IP and Port could be discovered like above, in case not know earlier :) This profile would be used while running the command with ONAP setup configured in it, as below oclip --profile onap-dublin vnf-tosca-provision ..... e. Verify these details once by typing 'set' f. Exit from the interactive console by typing 'exit' 2. Setup SDC consumer oclip --product onap-dublin --profile onap-dublin sdc-consumer-create --consumer-name ocomp 3. Update the cloud and vnfm driver details in the configuration file $OPEN_CLI_HOME/conf/vnf-tosca-provision.json info: product: onap-dublin service: vnf-validation author: ONAP VTP Team kanagaraj.manickam@huawei.com parameters: - name: config-json description: Configuration file path type: string short_option: x long_option: config-json default_value: $s{env:OPEN_CLI_HOME}/conf/vnf-tosca-provision.json is_optional: false - name: vsp description: Path to the ONAP vendor service product (VSP) for the VNF to provision type: binary short_option: y long_option: vsp is_optional: false - name: vnf-csar description: Path to the TOSCA CSAR for the VNF to provision type: binary short_option: r long_option: vnf-csar is_optional: false - name: ns-csar description: Path to the TOSCA CSAR for the NS service to provision type: binary short_option: b long_option: ns-csar is_optional: true default: false - name: vnfm-driver description: VNFM driver to use. One of gvnfmdriver or hwvnfmdriver type: string short_option: c long_option: vnfm-driver is_optional: false - name: onap-objects description: Existing ONAP object ids to use instead of creating them while running this task type: json short_option: Z long_option: onap-objects is_optional: true default_value: {} - name: mode description: setup or standup or cleanup or provision or validate type: string short_option: Y long_option: mode is_optional: true default_value: checkup - name: vnf-name description: VNF Name type: string short_option: A long_option: vnf-name is_optional: false - name: vnf-vendor-name description: VNF Vendor Name type: string short_option: B long_option: vnf-vendor-name is_optional: false results: direction: portrait attributes: - name: vnf-id description: ONAP VNF instance id scope: short type: string - name: vnf-status description: Onap VNF status scope: short type: string - name: ns-id description: Onap NS service instance id scope: short type: string - name: ns-status description: Onap NS status scope: short type: string - name: vnfm-driver description: VNFM driver used type: string scope: short - name: onap-objects description: ONAP object used type: json scope: short - name: vnf-vendor-name description: VNF Vendor Name type: string scope: short - name: vnf-name description: VNF Name type: string scope: short cmd: command: - python $s{env:OPEN_CLI_HOME}/script/vnf-tosca-provision.py --vendor-name ${vnf-vendor-name} --vnf-name ${vnf-name} --mode ${mode} --result-json $s{tmp:result.json:onap-objects} --conf ${config-json} --vsp ${vsp} --vnf-csar ${vnf-csar} --ns-csar ${ns-csar} --vnfm-driver ${vnfm-driver} success_codes: - 0 working_directory: . output: $s{tmp:result.json} result_map: vnf-id: $o{$.vnf_id} vnf-status: $o{$.vnf_status} ns-id: $o{$.ns_instance_id} ns-status: $o{$.ns_instance_status} vnfm-driver: ${vnfm-driver} vnf-name: ${vnf-name} vnf-vendor-name: ${vnf-vendor-name} onap-objects: $o{$}