1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
|
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 Huawei Technologies Co., Ltd.
.. _end_to_end_onap_cli_commands:
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 <https://wiki.onap.org/display/DW/OOF+-+HPA+guide+for+integration+testing>`_
::
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 <https://onap.readthedocs.io/en/casablanca/submodules/integration.git/docs/docs_vfwHPA.html#docs-vfw-hpa>`_
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 <https://onap.readthedocs.io/en/casablanca/submodules/integration.git/docs/docs_vfwHPA.html#docs-vfw-hpa>`_ 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
|