summaryrefslogtreecommitdiffstats
path: root/docs/developer_info/instantiate/instantiation/pnf_instance/index.rst
blob: 7fbfdbe79f7d13b6ed6d73afcb188e6bdf11ae66 (plain)
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