You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

Schema Proposal

  1. tbc

Code Proposal

  1. 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) topic

    • AAI-1996 - Getting issue details... STATUS
    • EXTAPI-98 - Getting issue details... STATUS
    • 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).

    Example of AAI-EVENT data
    {
        "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"
                }
            }
        }
    }
  2. In client code using AAI API, make use of "nodes query" as shown in newly published documentation to optimise some queries on AAI data:
  3. Refer to discussion on https://groups.io/g/onap-bbs/topic/29523804 . Possible extra field in PNF to assist nomadic ONT scenario.  AAI-2151 - Getting issue details... STATUS

  4. Change PNF unique key to be pnf-id instead of pnf-name attribute:  AAI-2096 - Getting issue details... STATUS

  5. Refer to discussion  https://lists.onap.org/g/onap-discuss/message/15390 on https://lists.onap.org/g/onap-discuss/topic/29688799 and  EXTAPI-199 - Getting issue details... STATUS
    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"
  6. Refer to BBS Modeling Model Design diagram for "HSIA CFS":
    1. Attributes and EdgeRules to add to "cp", "generic-vnf" and "pnf" (options TBD):  AAI-2154 - Getting issue details... STATUS
      1. Stavros Kanarakis  to add specific decisions made for each attribute based on the options described in JIRA
  7. tbc


  • No labels