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
|
.. This work is licensed under a Creative Commons Attribution 4.0
.. International License. http://creativecommons.org/licenses/by/4.0
.. Copyright 2019 ONAP Contributors. All rights reserved.
Declare PNF instances in ONAP
=============================
PNF instances can be declared in ONAP inventory (AAI) using REST API
An example:
::
curl -X PUT \
https://{{ONAP_LB_IP@}}:30233/aai/v16/network/pnfs/pnf/my_pnf_instance_001 \
-H 'Accept: application/json' \
-H 'Authorization: Basic QUFJOkFBSQ==' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: f5e2aae0-dc1c-4edb-b9e9-a93b05aee5e8' \
-H 'X-FromAppId: AAI' \
-H 'X-TransactionId: 999' \
-H 'depth: all' \
-d '{
"pnf-name":" my_pnf_instance_001",
"equip-type":" router",
"nf-role":"primary",
"p-interfaces": {
"p-interface": [
{
"interface-name": "ae1",
"port-description": "Link aggregate for trunk between switches"
},
{
"interface-name": "xe-0/0/6",
"port-description": "to PNF_instance_002 trunk1"
},
{
"interface-name": "xe-0/0/2",
"port-description": "to PNF_instance_003 trunk1"
},
{
"interface-name": "xe-0/0/10",
"port-description": "to PNF_instance_004 trunk1"
},
{
"interface-name": "xe-0/0/0",
"port-description": "firewall trunk"
},
{
"interface-name": "xe-0/0/14",
"port-description": "to PNF_instance_005 trunk1"
}
]
}
}' -k
It is possible to declare the location where is deployed the PNF
(called a "complex" in ONAP AAI)
::
curl -X PUT \
https:// {{ONAP_LB_IP@}}:30233/aai/v11/cloud-infrastructure/complexes/complex/my_complex_name \
-H 'Accept: application/json' \
-H 'Authorization: Basic QUFJOkFBSQ==' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 43523984-db01-449a-8a58-8888871110bc' \
-H 'X-FromAppId: AAI' \
-H 'X-TransactionId: 999' \
-H 'depth: all' \
-d '{
"physical-location-type":"PoP",
"physical-location-id":"my_complex_name",
"complex-name":"Name of my Complex",
"city":"LANNION",
"postal-code":"22300",
"country":"FRANCE",
"street1":"Avenue Pierre Marzin",
"region":"Europe"
}' -k
To indicate that a PNF instance is located in a complex, we create a relation
::
curl -X PUT \
https:// {{ONAP_LB_IP@}}:30233/aai/v14/network/pnfs/pnf/my_pnf_instance_001/relationship-list/relationship \
-H 'Accept: application/json' \
-H 'Authorization: Basic QUFJOkFBSQ==' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 15315304-17c5-4e64-aada-bb149f1af915' \
-H 'X-FromAppId: AAI' \
-H 'X-TransactionId: 999' \
-H 'depth: all' \
-d '{
"related-to": "complex",
"related-link": "/aai/v11/cloud-infrastructure/complexes/complex/my_complex_name"
}' -k
|