End-to-End command guide for working with ONAP

This document demonstrates end to end working with ONAP using cli.

Currently, in ONAP, it is getting initialized by robot script (demo.sh init), which requires programming knowledge to modify the scripts as per the requirement. Cli provides an interface to communicate with different services in ONAP and it can be used to configure ONAP as per requirement without any programming knowledge.

Following operations are involved to deploy a VNF.

CLI communicate with:

  • SDC to
    • Create Vendor License Model (VLM)

    • Create Vendor Software Product (VSP), VF and Service

    • Distribute service

  • Policy to
    • Put HPA policies

  • AAI to create
    • Complex

    • Cloud

    • Customer

    • Service-type
      • Add customer subscription

  • Multicloud to
    • register cloud with multicloud to discover HPA

  • SO to create
    • Service-instance

    • VNF Instance

    • VF module (deploys stack)

  • SDNC to
    • Preload VF module parameters

Creating Vendor License Model (VLM)

For creating a VLM we need to define in SDC using CLI: - entitlement pool - key group - feature group - license agreement

Create license

Run following command to create license.

onap>vlm-create -x ${vendor-name} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Output: vlm-id, vlm-version

Create license entitlement pool

Run following command to create license entitlement pool.

onap>vlm-entitlement-pool-create -x ${entitlement-pool-name} -y ${vlm-id} -e ${vlm-version} -z ${entitlement-pool-description} -k ${vendor-name} -g {license-expiry-date} -l {license-start-date} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Output: vlm-entitlement-pool-id

Create license key group

Run following command to crate license key group.

onap>vlm-key-group-create -c ${vlm-id} -e ${vlm-version} -x {key-group-name} -y {key-group-type} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Output: key-group-id

Create license feature group

Run following command to create license feature group.

onap>vlm-feature-group-create -x ${feature-group-name} -y ${vlm-id} -e {vlm-version} -z {feature-grp-description} -g ${key-group-id} -b ${vlm-entitlement-pool-id} -c ${part-no} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Output: feature-group-id

Create license agreement

Run following command to create license agreement.

onap>vlm-aggreement-create -x ${aggreement-name} -y ${vlm-id} -e ${vlm-version} -z ${agreement-description} -g ${feature-group-id} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Output: agreement-id

Now, VLM is ready to submit.

Checkin and submin vlm

Run following command to check-in and submit created VLM.

vlm-submit -x ${vlm-id} -y ${vlm-version} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Now, VLM is available in catalog to be used for VSP.

Create and distribute Vendor Software Product (VSP)

Service distribution involves following steps: - Create, validate and submit VSP - Creation and certificaion of VF - Creation and certification of Service

Create VSP

Run following command to create VSP.

onap>vsp-create -j ${feature-group-id} -o ${onboarding-method} -e ${vendor-name} -x ${vsp-name} -y ${vsp-description} -i ${aggreement-id} -c ${vlm-version} -g ${vlm-id} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Output: vsp-id, vsp-version

Add artifact to VSP

This command associates artifacts to VSP.

onap>vsp-add-artifact -x ${vsp-id} -y ${vsp-version}  -z ${csar-file} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Validate VSP

After uploading artifacts to VSP you need to validate the VSP using following command.

onap>vsp-validate -x ${vsp-id} -y ${vsp-version} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

NOTE: In most cases warning is reported for VSP validation, this can be ignored.

Submit VSP

After VSP validation it can be checked in and submit. Run following command to complete check-in and VSP submission.

onap>vsp-submit -x ${vsp-id} -y ${vsp-version} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

To list created VSPs, run the following command;

onap>vsp-list -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

package VSP

After submitting VSP you require to generate CSAR artifact which can be done using following command.

onap>vsp-package -x ${vsp-id} -y ${vsp-version} -u cs0008 -p demo123456! -m ${sdc-onboarding-url}

Now, you can proceed for defining VF.

Create vf model for VSP

Run following command to create VF by specifying correct VSP id.

onap> vf-model-create -x ${vf-model-name} -y ${vf-model-description} -g ${vsp-version} -z ${vlm-vendor-name} -b ${vsp-id} -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Output: vf-model-id

To view newly created vf;

onap> vf-model-list -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Save the vf-unique-id , it will be used for certification

Now, VF is ready for certification.

Certify VF

Certification will be conducted by tester(jm0007), tester can use following command to mark VF certification start and complete.

onap> vf-model-certify -b ${vf-unique-id} -r ${vf-remarks} -u cs0008 -p demo123456! -m ${sdc-catalog-url}

After certifications, the id values change so run the above vf-model-list command to see the new values which will be used in the next steps. After successful VF creation you can proceed for service model creation.

Create service model

Run following command to create service model.

onap>service-model-create -x ${service-model-name} -y ${service-model-description} -z ${project-code} -e ${icon-id} -c ${category-display} -b ${category} -u cs0008 -p demo123456! -m ${sdc-catalog-url}

project code can be a random string

Output: service-model-id

Add VF to service model

Associate VF to service model using following command.

onap>service-model-add-vf -x ${service-model-id} -b ${vf-version} -y ${vf-model-unique-id} -z ${vf-model-name} -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Submit Service for Testing

Now, service is ready for Testing. Use following command to initiate service test request.

onap>service-model-test-request -b ${service-model-id} -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Test service

Now, tester(jm0007) can see service in his dashboard and he can start testing. Tester can use following command to start test and complete test

onap>service-model-test-start -b ${service-model-id} -u jm0007 -p demo123456! -m ${sdc-catalog-url}

onap>service-model-test-accept -b ${service-model-id} -r ${test-remarks} -u jm0007 -p demo123456! -m ${sdc-catalog-url}

onap>service-model-list -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Run the above list command to get the service-model-unique-id, it will be used to approve the service model

Approve service model

After successful Testing, service will be submitted to governor(gv0001) to approve service model.

onap>service-model-approve -b ${service-model-unique-id} -r ${approval-remarks} -u gv0001 -p demo123456! -m ${sdc-catalog-url}

onap>service-model-list -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Distribute service model

Now operator can distribute the service and it will be available in VID dashboard.

onap>service-model-distribute -b ${service-model-unique-id} -u op0001 -p demo123456! -m ${sdc-catalog-url}

onap>service-model-list -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Creating Policies (Only Required if HPA is being Used)

Before Running these commands to create policies, you must have uploaded policy models. See Method 2 (Manual upload) here

onap> policy-create-outdated -m ${pdp-url} -u testpdp -p alpha123 -x ${policy-name} -S ${policy-scope} -T ${policy-config-type} -o ${policy-onap-name} -b ${policy}

onap> policy-push-outdated -m ${pdp-url} -u testpdp -p alpha123 -x ${policy-name} -b ${policy-config-type} -c ${policy-pdp-group}

When creating policies, the resource-module-name of the vf-model is required. This can be gotten by running the following command;

onap> get-resource-module-name -u cs0008 -p demo123456! -m ${sdc-catalog-url}

Note: See Step 16 in vFW with HPA Tutorial: Setting Up and Configuration for sample policies as well as example values for policy-scope, config-type …etc.

Creating Cloud, Customer and Service-type

It is required to specify the complex and cloud configuration in AAI system before deploying the service. Following are the steps to configure cloud and related information for service deployment.

Create Complex

onap>complex-create -x ${complex-name} -r ${physical-location} -y ${data-center-code} -l ${region} -i ${street-1-name} -j ${street-2-name}  -lt ${latitude} -lo ${longitude} -S ${state}  -la ${lata} -g ${city} -w ${postal-code} -z ${complex-name} -k ${country} -o ${elevation} -q ${identity-url} -m ${aai-url} -u AAI -p AAI

Create Cloud

Use following command to create cloud and region in AAI system.

onap>cloud-create -x ${cloud-owner-name} -y ${cloud-region-name} -e ${esr-system-info-id} -b ${cloud-user-name} -j ${cloud-user-password} -I ${extra-info} -w ${cloud-region-version} -l ${default-tenant} -url ${keystone-url} -n ${complex-name} -q ${cloud-type} -r ${owner-defined-type} -Q ${system-type} -i ${identity-url} -g ${cloud-zone} -z ${ssl-insecure-boolean} -k ${system-status} -c ${cloud-domain} -m ${aai-url} -u AAI -p AAI

Sample Command

onap> cloud-create -e 5c85ce1f-aa78-4ebf-8d6f-4b62773e9ade -b ${cloud-username} -I {\\"openstack-region-id\\":\\"ONAP-POD-01-Rail-06\\"} -x CloudOwner -y ONAP-POD-01-Rail-06 -j ${cloud-password} -w titanium_cloud -l Integration-HPA -url http://10.12.11.1:5000/v3 -n clli1 -q openstack -r t1 -Q VIM -i url -g CloudZone -z true -k active -c Default

Associate Cloud Region with complex

onap> complex-associate -x ${complex-name} -y ${cloud-region} -z ${cloud-owner} -m ${aai-url} -u AAI -p AAI
onap> cloud-list -u AAI -p AAI -m ${aai-url}

Register Cloud Region with Multicloud (only required for HPA)

onap> multicloud-register-cloud -y ${cloud-owner} -x ${cloud-region} -m ${multicloud-url}

Create Customer

A customer subscribes for the service. Use follwing command to create customer.

onap>customer-create -x ${customer-name} -y ${subscriber-name} -u AAI -p AAI -m ${aai-url}

onap>customer-list -u AAI -p AAI -m ${aai-url}

Create service type

Use following command to create service type.

onap>service-type-create -x ${service-name} -u AAI -p AAI -m ${aai-url}

onap>service-type-list -u AAI -p AAI -m ${aai-url}

Create subscription

Use the following command to create subscription for a customer.

onap>subscription-create -x ${customer-name} -z ${cloud-owner} -c ${tenant-id} -e ${service-name} -y ${default-tenant} -r ${cloud-region} -m ${aai-url} -u AAI -p AAI

If the subscription has already been created, you can add more clouds to it using the following command;

onap>subscription-cloud-add -x ${customer-name} -z ${cloud-owner} -c ${tenant-id} -e ${service-name} -y ${default-tenant} -r ${cloud-region} -m ${aai-url} -u AAI -p AAI

Create Service-instance, VNF Instance and deploy VFMODULE

Now, all the required configuration and artifacts are available for the SO service to create a service-instance, VNF-Instance and VFMODULE.

Create service instance

Using following command you can create service-instance in specified cloud region. Command requires service model identifier which can be obtained from previously used CLIs for creating and listing service model.

onap> service-create -w ${service-name} -la ${customer-latitude} -lo ${customer-longitude} -o ${orchestrator} -A {alacart-boolean} -i ${service-model-name} -y ${company-name} -x ${project-name} -q ${requestor-id} -O ${owning-entity-name} -k ${service-instance-name} -P ${test-api} -H ${homing-solution} -n ${service-model-uuid} -e ${service-model-invariant-uuid} -j ${service-model-version} -S ${subscriber-name} -g ${service-model-uuid} -z ${owning-entity-id} -c ${customer-name} -u InfraPortalClient -p password1$ -m ${so-url}

When Homing and HPA are not being used, you do not need to specify longitude, latitude, homing-solution, orchestator

Sample service-create commands

Without Homing

onap> service-create -w vFW -o multicloud -A true -i vfw-demo-service -y some_company  -x Project-Demonstration -q demo -O OE-Demonstration -k rand-2 -P VNF_API -n 545bca3c-8cc0-4dac-b464-1720894e0213 -e 41d0ebba-4b89-4437-9b22-4d83d2183aaa -j 1.0 -S Demonstration -g 545bca3c-8cc0-4dac-b464-1720894e0213 -z d005274f-d295-4538-a6b0-a090a7807dae -c Demonstration -u InfraPortalClient -p password1$ -m http://192.168.1.147:30277

With Homing

onap> service-create -w vFW -la 32.897480 -lo 97.040443 -o multicloud -A true -i vfw-demo-service -y some_company  -x Project-Demonstration -q demo -O OE-Demonstration -k cli-instance-new -P VNF_API -H oof -n 545bca3c-8cc0-4dac-b464-1720894e0213 -e 41d0ebba-4b89-4437-9b22-4d83d2183aaa -j 1.0 -S Demonstration -g 545bca3c-8cc0-4dac-b464-1720894e0213 -z d005274f-d295-4538-a6b0-a090a7807dae -c Demonstration -u InfraPortalClient -p password1$ -m http://192.168.1.147:30277

You can get the values for the owning entity by running the following command;

onap> owning-entity-list -u AAI -p AAI -m ${aai-url}

Create VNF Instance

Use the following command to create the VNF instance, Do a Preload and create the VFModule in a particular cloud region

onap> vnf-create -j ${service-model-invariant-uuid} -q ${service-model-name} -k ${service-model-id} -l ${cloud-region} -y ${service-instance-id} -z ${tenant-id} -r ${requestor-id} -c ${vf-model-uuid} -o ${generic-vnf-name} -e ${vf-model-name} -g ${vf-model-version} -b ${vf-model-invariant-uuid} -n ${service-version} -i ${vf-model-customization-id} -vn ${vf-model-customization-name} -w ${service-name} -pn ${platform-name} -lob ${lob-name} -u InfraPortalClient -p password1$ -m ${so-url}

Output: vnf-id

Sample vnf-create command

onap>  vnf-create -j 41d0ebba-4b89-4437-9b22-4d83d2183aaa -q vfw-demo-service -k 545bca3c-8cc0-4dac-b464-1720894e0213 -l cloud-two -y 43143a2c-f0e1-499d-b042-97fb0c05166b -z a0ea4cfd751e40e0a093848dd9e03e6c -r demo  -c 04ffd583-5625-4471-b20b-38394b513efd -o cli-vnf-test -e vfw-hpa-sriov_v2 -g 1.0 -b b7d993a3-3870-4096-a16c-90110d402349 -n 1.0 -i 123f896f-c6a4-4560-8786-7607e832bb6f -vn "vfw-hpa-sriov_v2 0" -w vFW -pn Platform-Demonstration -lob LOB-Demonstration -u InfraPortalClient -p password1$ -m http://192.168.1.147:30277

Preload VF-Module

onap> vf-preload -y ${preload-file} -u admin -p Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U -m ${sdnc-url}

See Step 20 of vFW with HPA Tutorial: Setting Up and Configuration for sample preload file.

Create VF-module

onap>  vf-module-create -w ${tenant-id} -mn ${vf-model-customization-name} -x ${service-instance-id} -l ${cloud-region} -sv ${service-version} -vc ${vf-module-customization-id} -vm ${v-module-model-version} -mv ${vf-model-version} -i ${vf-module-name} -vf ${vf-model-name} -vi ${vf-module-model-invariant-id} -r ${suppress-rollback-boolean} -mc ${vf-model-customization-id} -api ${test-api} -mi ${vf-model-invariant-id} -vid ${vf-model-id} -y ${vnf-instance-id} -R ${requestor-id} -si ${service-uuid} -up ${use-preload} -sd ${service-invariat-id} -z ${service-model-name} -vn ${vf-module-model-name} -vv ${vf-module-model-version-id} -co ${cloud-owner} -u InfraPortalClient -p password1$ -m ${so-url}

Sample vf-module-create command

onap> vf-module-create -w a0ea4cfd751e40e0a093848dd9e03e6c -mn "vfw-hpa-sriov_v2 0" -x d353ace3-52e9-4c79-b3c8-63c97e15cc29 -l cloud-two -sv 1.0 -vc 0f837829-0dbb-4768-88d4-3cdf01e073f6 -vm 1 -mv 1.0 -i vfw-sriov-cli -vf vfw-hpa-sriov_v2 -vi 8d3071e4-0d4e-4520-aa92-c01b9a019142 -r false -mc 123f896f-c6a4-4560-8786-7607e832bb6f -api VNF_API -mi b7d993a3-3870-4096-a16c-90110d402349 -vid 04ffd583-5625-4471-b20b-38394b513efd -y dad645a3-7e01-47cd-8e70-cdc8b5e880ec -R demo -si 545bca3c-8cc0-4dac-b464-1720894e0213 -up true -sd 41d0ebba-4b89-4437-9b22-4d83d2183aaa -z vfw-demo-service -vn VfwHpaSriovV2..base_vfw..module-0 -vv d5c83591-0f22-4543-ada2-24197847b7d2 -u InfraPortalClient -p password1$ -m http://192.168.1.147:30277