References


Attention to

Contributors


Navigation

Schema and Code Proposals

Item 1. Notify ExtAPI so it does not need to poll AAI

In AAI, when the "orchestration-status", "service-instance-location-id", "input-params" for a Service Instance changes, notify ExtAPI so it does not need to poll AAI

In the case you are interested in, the service-instance can be CREATED, UPDATED, or DELETED (which you find in “action” in the event-header) either as a standalone object or as part of a nested structure.  You can use the top-entity-type to tell you which is the containing object, and then use that to determine if a service-instance might be impacted by the operation.  In the case of a service-instance update, the top-entity-type will be either customer, service-subscription, or service-instance.

For a customer or service-subscription, you would then look for a service-instance child object - in the example above, the service-instance would be in the position of the p-interface on a service-subscription and in the position of sriov-pf on a customer.  All of that depends on how the client uses the interface, and AAI has no control over it.  Since users can perform the operation at any of the 3 levels (with a DELETE object, sometimes there are rules about cascading deletes, I’d have to figure out of the customer/service-subscription/service-instance object hierarchy is subject to any of those rules (like it might not let you delete the service-subscription until all the service-instances are gone first; I just don’t recall the rules off the top of my head).

{
    "cambria.partition": "AAI",
    "entity": {
        "fqdn": "test.onap.org",
        "hostname": "pserver-onap",
        "in-maint": false,
        "p-interfaces": {
           "p-interface": [
               {
                   "in-maint":true,
                   "interface-name":"p-interface-02-test",
                   "resource-version":"1547072232613",
                   "sriov-pfs":{
                       "sriov-pf":[
                           {       
                       "pf-pci-id": "sriov-02-test",       
                       "resource-version":"1547072232613"
                           }
                       ]
                   }
               },
               {
                   "in-maint":true,
                   "interface-name":"p-interface-test",
                   "resource-version":"1547072232613",
                   "sriov-pfs":{
                       "sriov-pf":[
                           {
                              "pf-pci-id": "sriov-test",
                              "resource-version":"1547072232613"
                           }
                       ]
                   }
               }
           ]
        },
        "resource-version": "1547072232618"
    },
    "event-header": {
        "action": "CREATE",
        "domain": "ONAP",
        "entity-link":"/aai/v14/cloud-infrastructure/pservers/pserver/pserver-onap",
        "entity-type": "pserver",
        "event-type": "AAI-EVENT",
        "id": "ece20816-1c1b-4f22-9192-62459ee170c5",
        "sequence-number": "0",
        "severity": "NORMAL",
        "source-name": "jimmy-curl",
        "timestamp": "20190109-22:17:12:660",
        "top-entity-type": "pserver",
        "version": "v14"
    }
}

Regarding the "input-parameters", it was added for CCVPN use case (originally as "customer-requests") and there is an example in the comments of: AAI-CCVPN Schema Proposal for Casablanca Release For convenience, the comment is copied below: 

{
    "service":{
        "name":"ONAP_223531",
        "description":"ONAP_1546",
        "serviceInvariantUuid":"4a09419a-c9fd-4a53-b1bd-b49603169ca1",
        "serviceUuid":"1bd0eae6-2dcc-4461-9ae6-56d641f369d6",
        "globalSubscriberId":"test_custormer",
        "serviceType":"example-service-type",
        "parameters":{
            "locationConstraints":[
 
            ],
            "resources":[
                {
                    "resourceName":"vEPC_ONAP01",
                    "resourceInvariantUuid":"36ebe421-283a-4ee8-92f1-d09e7c44b911",
                    "resourceUuid":"27a0e235-b67a-4ea4-a0cf-25761afed111",
                    "resourceCustomizationUuid":"47a0e235-b67a-4ea4-a0cf-25761afed231",
                    "parameters":{
                        "locationConstraints":[
                            {
                                "vnfProfileId":"b244d433-8c9c-49ad-9c70-8e34b8dc8328",
                                "locationConstraints":{
                                    "vimId":"vmware_vio"
                                }
                            },
                            {
                                "vnfProfileId":"8a9f7c48-21ce-41b7-95b8-a8ac61ccb1ff",
                                "locationConstraints":{
                                    "vimId":"core-dc_RegionOne"
                                }
                            }
                        ],
                        "resources":[
 
                        ],
                        "requestInputs":{
                            "sdncontroller":""
                        }
                    }
                },
                {
                    "resourceName":"VL OVERLAYTUNNEL",
                    "resourceInvariantUuid":"184494cf-472f-436f-82e2-d83dddde21cb",
                    "resourceUuid":"95bc3e59-c9c5-458f-ad6e-78874ab4b3cc",
                    "resourceCustomizationUuid":"27a0e235-b67a-4ea4-a0cf-25761afed232",
                    "parameters":{
                        "locationConstraints":[
 
                        ],
                        "resources":[
 
                        ],
                        "requestInputs":{
 
                        }
                    }
                }
            ],
            "requestInputs":{
                "vlunderlayvpn0_name":"l3connect",
                "vlunderlayvpn0_site1_id":"IP-WAN-Controller-1",
                "vlunderlayvpn0_site2_id":"SPTNController",
                "vlunderlayvpn0_site1_networkName":"network1,network2",
                "vlunderlayvpn0_site2_networkName":"network3,network4",
                "vlunderlayvpn0_site1_routerId":"a8098c1a-f86e-11da-bd1a-00112444be1a",
                "vlunderlayvpn0_site2_routerId":"a8098c1a-f86e-11da-bd1a-00112444be1e",
                "vlunderlayvpn0_site2_importRT1":"200:1,200:2",
                "vlunderlayvpn0_site1_exportRT1":"300:1,300:2",
                "vlunderlayvpn0_site2_exportRT1":"400:1,400:2",
                "vlunderlayvpn0_site1_vni":"2000",
                "vlunderlayvpn0_site2_vni":"3000",
                "vlunderlayvpn0_tunnelType":"L3-DCI"
            }
        }
    }
}


Item 2. make use of "nodes query" to optimise some queries on AAI data

In client code using AAI API, make use of "nodes query" as shown in newly published documentation to optimise some queries on AAI data:


Item 3. Extra field in PNF to assist nomadic ONT scenario

Refer to discussion on https://groups.io/g/onap-bbs/topic/29523804 . Possible extra field in PNF to assist nomadic ONT scenario. 

See also item 6 below:

Attachment Point

(Not a real BBS modeling property, since its constituent parts are captured in other model properties)

Logical Link object (bridged to the PNF object representing ONT)

link-name: string (will hold attachment point in the form of olt-name/pon-slot/pon-port e.g. olt1/1/1)

link-type: string (will hold literal value 'attachmentPoint')

None

(EdgeRule logical-link-to-pnf already exists)


Item 4. Change PNF unique key to be pnf-id

Change PNF unique key to be pnf-id instead of pnf-name attribute:  / 

Item 5. Use “format” query parameter on Node Query to find service instance hierarchy

Refer to discussion  https://lists.onap.org/g/onap-discuss/message/15390 on https://lists.onap.org/g/onap-discuss/topic/29688799 and 

    1. Get the full URL of the service-instance object when using the Nodes query to retrieve it.
    2. Pass query parameter "?format=resource_and_url" or "?format=simple"

Item 6. Specific decisions made for each attribute

Refer to BBS Modeling Model Design diagram for "HSIA CFS":

    1. Attributes and EdgeRules to add to "cp", "generic-vnf" and "pnf" (options TBD): 
      1. Stavros Kanarakis  to add specific decisions made for each attribute based on the options described in JIRA
BBS Properties Use Case ReferenceA&AI Implementation DecisionA&AI Schema ImpactPossible Future Work
RG MAC Address

Metadata Entry

(under HSIA CFS Service Instance)


CPE PNF object relates to it

Internet Profile Generic-VNF relates to it

Metadatum EdgeRules only
Service Type

Metadata Entry

(under HSIA CFS Service Instance)


Access Connectivity Generic-VNF relates to it

Internet Profile Generic-VNF relates to it 
Metadatum EdgeRules only
Access ID

Metadata Entry

(under HSIA Internet Service Instance)

Metadatum EdgeRules only
Upstream Speed

Metadata Entry

(under HSIA CFS Service Instance)


Access Connectivity Generic-VNF relates to it

Internet Profile Generic-VNF relates to it
Metadatum EdgeRules only
Downstream Speed

Metadata Entry

(under HSIA CFS Service Instance)


Access Connectivity Generic-VNF relates to it

Internet Profile Generic-VNF relates to it
Metadatum EdgeRules only

OLT Name

Metadata Entry

(under HSIA Access Service Instance)


PON_UNI cp relates to it

OLT_NNI cp relates to it
Metadatum EdgeRules only
OLT PON port

Metadata Entry

(under HSIA Access Service Instance)


PON_UNI cp relates to it

Metadatum EdgeRules only
OLT PON slot

Metadata Entry

(under HSIA Access Service Instance)


PON_UNI cp relates to it

Metadatum EdgeRules only

CVLAN

Metadata Entry

(under HSIA Access Service Instance)


PON_UNI cp relates to it

Metadatum EdgeRules only
SVLAN

Metadata Entry

(under HSIA Access Service Instance)


OLT_NNI cp relates to it

Metadatum EdgeRules only
Expected ONT ID

Metadata Entry

(under HSIA Access Service Instance)


PON_UNI cp relates to it

Metadatum EdgeRules only
CPE Manufacturer

PNF object

equip-vendor: string

None
CPE Model

PNF object

equip-model: string

None
CPE Equipment Type

PNF object

equip-type: string

None
CPE Serial Number

PNF object

serial-number: string

None
CPE SW Version

PNF object

sw-version: string

None

Attachment Point

(Not a real BBS modeling property, since its constituent parts are captured in other model properties)

Logical Link object (bridged to the PNF object representing ONT)

link-name: string (will hold attachment point in the form of olt-name/pon-slot/pon-port e.g. olt1/1/1)

link-type: string (will hold literal value 'attachmentPoint')

None

(EdgeRule logical-link-to-pnf already exists)



ONT NNI Port


Metadata Entry

(under HSIA Access Service Instance)


ONT_NNI cp relates to it

Metadatum EdgeRules only

OLT NNI Slot


Metadata Entry

(under HSIA Access Service Instance)


OLT_NNI cp relates to it
Metadatum EdgeRules only

OLT NNI Port


Metadata Entry

(under HSIA Access Service Instance)


OLT_NNI cp relates to it
Metadatum EdgeRules only

BNG Name

(Static configuration. Put into A&AI via a script)

Metadata Entry

(under HSIA Edge Service Instance)


BNG Generic-VNF relates to it

Metadatum EdgeRules only

BNG UNI Slot

(Static configuration. Put into A&AI via a script)

Metadata Entry

(under HSIA Edge Service Instance)


BNG-UNI cp relates to it

Metadatum EdgeRules only

BNG UNI Port

(Static configuration. Put into A&AI via a script)

Metadata Entry

(under HSIA Edge Service Instance)


BNG Generic-VNF relates to it

Metadatum EdgeRules only

Moving forward based on https://groups.io/g/onap-bbs/message/160
and https://groups.io/g/onap-bbs/message/161

Item 7. Add robot test cases

Item 8. Other current work

tbc


Various Discussion List Messages

Possible Future Work

  1. Referring to https://groups.io/g/onap-bbs/message/151: how to distinguish, from the AAI-EVENT alone, what part of the “service-instance” object changed, and what was it changed from.
  2. tbc