...
...
Column | ||||||||
---|---|---|---|---|---|---|---|---|
References
|
Column |
---|
Attention to
|
Schema Proposal
- tbc
Code Proposal
...
From Jimmy Forsyth (AT&T) to Everyone: 01:51 AM
@Brian, yes, AAI sends notification on all changes to DMaaP to the AAI_EVENT (or maybe it’s AAI-EVENT) topic
...
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Section | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Navigation
Table of Contents | ||
---|---|---|
|
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
- AAI does have precedent for publishing events to DMaaP
- ExtAPI to be updated to consume events from DMaaP
- need to get agreement about topic configuration
- Discuss with Adrian OSullivan and Ludovic Robert, to confirm whether existing AAI-EVENT topic in DMaaP suffices for this requirement
From Jimmy Forsyth (AT&T) to Everyone: 01:51 AM
@Brian, yes, AAI sends notification on all changes to DMaaP to the AAI_EVENT (or maybe it’s AAI-EVENT) topicJira Legacy server System Jira serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176 key
...
AAI-1996 Jira Legacy server System Jira serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176 key EXTAPI-98 - James Forsyth Can you please send us the details on what the format of the events are that are sent to DMaaP are from A&AI. For example is there only one topic called AAI-EVENT topic and any change on a service-instance is emitted to DMaaP. So regardless if the change is to orchestration-status or some other parameter, the AAI-EVENT is emitted. All pointers to any associated documentation, notes or code snippets appreciated.
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).
Code Block | ||||
---|---|---|---|---|
| ||||
{
"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:
Code Block | ||
---|---|---|
| ||
{
"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
...
- https://docs.onap.org/en/latest/submodules/aai/aai-common.git/docs/AAI%20REST%20API%20Documentation/nodesQuery.html
- Ludovic Robert For example instead of
- "GET /aai/v11/customers/{customerId}service-subscription/{service_subscriptionId}service-instance API/{service-instanceId}"
- use "GET /aai/v11/nodes/service-instances/service-instance/{service-instanceId}" instead
From Jimmy Forsyth (AT&T) to Everyone: 01:51 AM
@Adrian the answers are yes, service-instance-id is unique in ONAP and you can query it directly with the nodes query (see link above)
- See also
Jira Legacy server System Jira serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176 key EXTAPI-194
...
Refer to discussion on https://groups.io/g/onap-bbs/topic/29523804 . Possible extra field in PNF to assist nomadic ONT scenario.
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
Change PNF unique key to be pnf-id instead of pnf-name attribute:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
in newly published documentation to optimise some queries on AAI data:
- https://docs.onap.org/en/latest/submodules/aai/aai-common.git/docs/AAI%20REST%20API%20Documentation/nodesQuery.html
- Ludovic Robert For example instead of
- "GET /aai/v11/customers/{customerId}service-subscription/{service_subscriptionId}service-instance API/{service-instanceId}"
- use "GET /aai/v11/nodes/service-instances/service-instance/{service-instanceId}" instead
From Jimmy Forsyth (AT&T) to Everyone: 01:51 AM
@Adrian the answers are yes, service-instance-id is unique in ONAP and you can query it directly with the nodes query (see link above)
- See also
Jira Legacy server System Jira serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176 key EXTAPI-194
- https://docs.onap.org/en/latest/submodules/aai/aai-common.git/docs/AAI%20REST%20API%20Documentation/nodesQuery.html
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.
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
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:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
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
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
- Get the full URL of the service-instance object when using the Nodes query to retrieve it.
- 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":
- Attributes and EdgeRules to add to "cp", "generic-vnf" and "pnf" (options TBD):
Jira Legacy server System Jira serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176 key AAI-2154 - Stavros Kanarakis to add specific decisions made for each attribute based on the options described in JIRA
- Attributes and EdgeRules to add to "cp", "generic-vnf" and "pnf" (options TBD):
BBS Properties Use Case Reference | A&AI Implementation Decision | A&AI Schema Impact | Possible 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) | Metadatum EdgeRules only | |||||||||
OLT NNI Port | Metadata Entry (under HSIA Access Service Instance) | 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
- BBS use case related items added for AAI to https://gerrit.onap.org/r/gitweb?p=testsuite.git;a=tree;f=robot/resources/aai;hb=HEAD
Jira Legacy server System Jira serverId 4733707d-2057-3a0f-ae5e-4fd8aff50176 key
...
AAI-
...
- Get the full URL of the service-instance object when using the Nodes query to retrieve it.
- Pass query parameter "?format=resource_and_url" or "?format=simple"
...
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
2184
Item 8. Other current work
tbc
Various Discussion List Messages
- AAI relationship-list https://lists.onap.org/g/onap-discuss/message/15607
- PNF change https://lists.onap.org/g/onap-discuss/message/15640
- BBS use case mapping https://lists.onap.org/g/onap-discuss/message/15683 / https://lists.onap.org/g/onap-discuss/message/15726
- BBS use case data relationships https://lists.onap.org/g/onap-discuss/message/15731
Possible Future Work
- 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.
- tbc