Uploaded image for project: 'Service Orchestrator'
  1. Service Orchestrator
  2. SO-2956

HeatBridge implementation doesn`t create vserver--to--generic-vnf relationship objects

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: High High
    • Frankfurt Release
    • Frankfurt Release
    • SO 1.6.3-20200526T1052 snapshot, with latest fixes related to HeatBridge implementation.

      Scenario:
      A vf-module scale-out activity is executed.
      The vf-module scale-out VID implementation filters-out relevant VNF instances based on the existence of a vserver object, related to a generic-vnf object.
      The current (ONAP Frankfurt SO-HeatBridge implementation), doesn`t create that relationship.
      As a result, it is not possible to filter out VNF instances relevant for vf-module scaling.

      Details (vserver instance created after the SO-openstack adapter orchestrates a Heat template):

      {
                                  "vserver-id": "d8cd2113-0122-4a98-95ae-90b0f8b53c4c",
                                  "vserver-name": "scaleout-base-vm",
                                  "vserver-name2": "scaleout-base-vm",
                                  "prov-status": "active",
                                  "vserver-selflink": "http://es-si-os-ohn-30.eecloud.nsn-net.net:8774/v2.1/servers/d8cd2113-0122-4a98-95ae-90b0f8b53c4c",
                                  "in-maint": false,
                                  "is-closed-loop-disabled": false,
                                  "resource-version": "1590493069202",
                                  "relationship-list": {
                                      "relationship": [
                                          {
                                              "related-to": "flavor",
                                              "relationship-label": "org.onap.relationships.inventory.Uses",
                                              "related-link": "/aai/v16/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/9ede20a8-cdb3-4f8a-874d-60a900fae43d",
                                              "relationship-data": [
                                                  {
                                                      "relationship-key": "cloud-region.cloud-owner",
                                                      "relationship-value": "CloudOwner"
                                                  },
                                                  {
                                                      "relationship-key": "cloud-region.cloud-region-id",
                                                      "relationship-value": "RegionOne"
                                                  },
                                                  {
                                                      "relationship-key": "flavor.flavor-id",
                                                      "relationship-value": "9ede20a8-cdb3-4f8a-874d-60a900fae43d"
                                                  }
                                              ],
                                              "related-to-property": [
                                                  {
                                                      "property-key": "flavor.flavor-name",
                                                      "property-value": "aa.001-0002"
                                                  }
                                              ]
                                          },
                                          {
                                              "related-to": "image",
                                              "relationship-label": "org.onap.relationships.inventory.Uses",
                                              "related-link": "/aai/v16/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/c9031c8e-095f-4ccd-8f8f-2f4dffc3bc9f",
                                              "relationship-data": [
                                                  {
                                                      "relationship-key": "cloud-region.cloud-owner",
                                                      "relationship-value": "CloudOwner"
                                                  },
                                                  {
                                                      "relationship-key": "cloud-region.cloud-region-id",
                                                      "relationship-value": "RegionOne"
                                                  },
                                                  {
                                                      "relationship-key": "image.image-id",
                                                      "relationship-value": "c9031c8e-095f-4ccd-8f8f-2f4dffc3bc9f"
                                                  }
                                              ],
                                              "related-to-property": [
                                                  {
                                                      "property-key": "image.image-name",
                                                      "property-value": "unknown"
                                                  }
                                              ]
                                          },
                                          {
                                              "related-to": "vf-module",
                                              "relationship-label": "org.onap.relationships.inventory.Uses",
                                              "related-link": "/aai/v16/network/generic-vnfs/generic-vnf/2aa6473a-0625-4932-873e-df2ec5d448a9/vf-modules/vf-module/f271ef4d-8414-4e8c-ab77-0b0c64a0e83e",
                                              "relationship-data": [
                                                  {
                                                      "relationship-key": "generic-vnf.vnf-id",
                                                      "relationship-value": "2aa6473a-0625-4932-873e-df2ec5d448a9"
                                                  },
                                                  {
                                                      "relationship-key": "vf-module.vf-module-id",
                                                      "relationship-value": "f271ef4d-8414-4e8c-ab77-0b0c64a0e83e"
                                                  }
                                              ]
                                          }
                                      ]
                                  },
                                  "l-interfaces": {
                                      "l-interface": [
                                          {
                                              "interface-name": "vf-module-163-admin_0_oam_port_0-hvnwmfe7vm7d",
                                              "interface-role": "normal",
                                              "interface-id": "7dce75bc-0ff9-481f-8a2c-5911fc83f6a3",
                                              "macaddr": "fa:16:3e:e7:a3:0a",
                                              "network-name": "onap-wro",
                                              "is-port-mirrored": false,
                                              "resource-version": "1590493069202",
                                              "in-maint": false,
                                              "is-ip-unnumbered": false,
                                              "l3-interface-ipv4-address-list": [
                                                  {
                                                      "l3-interface-ipv4-address": "192.168.0.56",
                                                      "l3-interface-ipv4-prefix-length": 32,
                                                      "resource-version": "1590493069202",
                                                      "neutron-network-id": "7cf7e044-11ec-40ce-b5a4-1115591f5394",
                                                      "neutron-subnet-id": "781486eb-f7f1-428a-a8bc-7e673fcfc2b4"
                                                  }
                                              ]
                                          }
                                      ]
                                  }
                              }
      

      What we need is a relationship, within vserver object " "relationship-list":" property, which would point to a relevant generic-vnf instance.

      The following PUT to AAI is executed, when the HeatBridge implementation execution is completed:

      2020-05-26T11:37:49.161Z|1fbbfccd-a10a-4ac8-95d0-b10ffced532f|o.o.logging.filter.base.PayloadLoggingClientFilter - {"operations":[{"                           action":"put","uri":"/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/982c540f6e69488eb6be566425                           5e00c0/vservers/vserver/d8cd2113-0122-4a98-95ae-90b0f8b53c4c","body":{"vserver-id":"d8cd2113-0122-4a98-95ae-90b0f8b53c4c","vserver-n                           ame":"scaleout-base-vm","vserver-name2":"scaleout-base-vm","prov-status":"active","vserver-selflink":"http://es-si-os-ohn-30.eecloud                           .nsn-net.net:8774/v2.1/servers/d8cd2113-0122-4a98-95ae-90b0f8b53c4c","in-maint":false,"is-closed-loop-disabled":false,"relationship-                           list":{"relationship":[{"related-to":"vf-module","relationship-data":[{"relationship-key":"generic-vnf.vnf-id","relationship-value":                           "2aa6473a-0625-4932-873e-df2ec5d448a9"},{"relationship-key":"vf-module.vf-module-id","relationship-value":"f271ef4d-8414-4e8c-ab77-0                           b0c64a0e83e"}]},{"related-to":"image","relationship-data":[{"relationship-key":"cloud-region.cloud-owner","relationship-value":"Clou                           dOwner"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"RegionOne"},{"relationship-key":"image.image-id","                           relationship-value":"c9031c8e-095f-4ccd-8f8f-2f4dffc3bc9f"}]},{"related-to":"flavor","relationship-data":[{"relationship-key":"cloud                           -region.cloud-owner","relationship-value":"CloudOwner"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"Reg                           ionOne"},{"relationship-key":"flavor.flavor-id","relationship-value":"9ede20a8-cdb3-4f8a-874d-60a900fae43d"}]}]}}},{"action":"put","                           uri":"/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/982c540f6e69488eb6be5664255e00c0/vservers                           /vserver/d8cd2113-0122-4a98-95ae-90b0f8b53c4c/l-interfaces/l-interface/vf-module-163-admin_0_oam_port_0-hvnwmfe7vm7d","body":{"inter                           face-name":"vf-module-163-admin_0_oam_port_0-hvnwmfe7vm7d","interface-role":"normal","interface-id":"7dce75bc-0ff9-481f-8a2c-5911fc8                           3f6a3","macaddr":"fa:16:3e:e7:a3:0a","network-name":"onap-wro","l3-interface-ipv4-address-list":[{"l3-interface-ipv4-address":"192.1                           68.0.56","l3-interface-ipv4-prefix-length":32,"neutron-network-id":"7cf7e044-11ec-40ce-b5a4-1115591f5394","neutron-subnet-id":"78148                           6eb-f7f1-428a-a8bc-7e673fcfc2b4"}]}}]}
      

      I think, a relation between the generic-vnf object, and a vserver object needs to be created in this step. Similar relation is created between the generic-vnf object, and a cloud tenant, and a vserver instance, and a vf-module.
      (Then vf-module relation to generic-vnf object is as well missing)

      Generic-vnf object (including a vf-module associated with that object instance):

      {
          "vnf-id": "2aa6473a-0625-4932-873e-df2ec5d448a9",
          "vnf-name": "vfresource-163",
          "vnf-type": "smodel-scale-out-2/nokia_scale_out_2 0",
          "service-id": "f0a55165-2240-43a6-83b3-972a55f25e8e",
          "prov-status": "NVTPROV",
          "equipment-role": "vLB",
          "orchestration-status": "Active",
          "ipv4-oam-address": "192.168.0.56",
          "in-maint": true,
          "is-closed-loop-disabled": false,
          "resource-version": "1590493069744",
          "model-invariant-id": "93fc593e-dbf8-407a-ae2b-8a9c30fd8f56",
          "model-version-id": "66a4520b-aa2a-4b1d-b0a2-aa1fdb5cadad",
          "model-customization-id": "8fb9f4cf-ee0d-4c92-9c3a-8bb39f775a98",
          "nf-type": "vLB",
          "nf-function": "vLB",
          "nf-role": "vLB",
          "nf-naming-code": "vLB",
          "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/56653994-bfe0-41d6-80da-8b62e1299051/service-data/vnfs/vnf/2aa6473a-0625-4932-873e-df2ec5d448a9/vnf-data/vnf-topology/",
          "relationship-list": {
              "relationship": [
                  {
                      "related-to": "tenant",
                      "relationship-label": "org.onap.relationships.inventory.BelongsTo",
                      "related-link": "/aai/v16/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/982c540f6e69488eb6be5664255e00c0",
                      "relationship-data": [
                          {
                              "relationship-key": "cloud-region.cloud-owner",
                              "relationship-value": "CloudOwner"
                          },
                          {
                              "relationship-key": "cloud-region.cloud-region-id",
                              "relationship-value": "RegionOne"
                          },
                          {
                              "relationship-key": "tenant.tenant-id",
                              "relationship-value": "982c540f6e69488eb6be5664255e00c0"
                          }
                      ],
                      "related-to-property": [
                          {
                              "property-key": "tenant.tenant-name",
                              "property-value": "onap-wro"
                          }
                      ]
                  },
                  {
                      "related-to": "cloud-region",
                      "relationship-label": "org.onap.relationships.inventory.LocatedIn",
                      "related-link": "/aai/v16/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne",
                      "relationship-data": [
                          {
                              "relationship-key": "cloud-region.cloud-owner",
                              "relationship-value": "CloudOwner"
                          },
                          {
                              "relationship-key": "cloud-region.cloud-region-id",
                              "relationship-value": "RegionOne"
                          }
                      ],
                      "related-to-property": [
                          {
                              "property-key": "cloud-region.owner-defined-type",
                              "property-value": "OwnerType"
                          }
                      ]
                  },
                  {
                      "related-to": "service-instance",
                      "relationship-label": "org.onap.relationships.inventory.ComposedOf",
                      "related-link": "/aai/v16/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vLB/service-instances/service-instance/56653994-bfe0-41d6-80da-8b62e1299051",
                      "relationship-data": [
                          {
                              "relationship-key": "customer.global-customer-id",
                              "relationship-value": "Demonstration"
                          },
                          {
                              "relationship-key": "service-subscription.service-type",
                              "relationship-value": "vLB"
                          },
                          {
                              "relationship-key": "service-instance.service-instance-id",
                              "relationship-value": "56653994-bfe0-41d6-80da-8b62e1299051"
                          }
                      ],
                      "related-to-property": [
                          {
                              "property-key": "service-instance.service-instance-name",
                              "property-value": "service-instance-162"
                          }
                      ]
                  },
                  {
                      "related-to": "availability-zone",
                      "relationship-label": "org.onap.relationships.inventory.Uses",
                      "related-link": "/aai/v16/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/availability-zones/availability-zone/nova",
                      "relationship-data": [
                          {
                              "relationship-key": "cloud-region.cloud-owner",
                              "relationship-value": "CloudOwner"
                          },
                          {
                              "relationship-key": "cloud-region.cloud-region-id",
                              "relationship-value": "RegionOne"
                          },
                          {
                              "relationship-key": "availability-zone.availability-zone-name",
                              "relationship-value": "nova"
                          }
                      ]
                  },
                  {
                      "related-to": "line-of-business",
                      "relationship-label": "org.onap.relationships.inventory.Uses",
                      "related-link": "/aai/v16/business/lines-of-business/line-of-business/LOB-Demonstration",
                      "relationship-data": [
                          {
                              "relationship-key": "line-of-business.line-of-business-name",
                              "relationship-value": "LOB-Demonstration"
                          }
                      ]
                  },
                  {
                      "related-to": "platform",
                      "relationship-label": "org.onap.relationships.inventory.Uses",
                      "related-link": "/aai/v16/business/platforms/platform/Platform-Demonstration",
                      "relationship-data": [
                          {
                              "relationship-key": "platform.platform-name",
                              "relationship-value": "Platform-Demonstration"
                          }
                      ]
                  }
              ]
          },
          "vf-modules": {
              "vf-module": [
                  {
                      "vf-module-id": "f271ef4d-8414-4e8c-ab77-0b0c64a0e83e",
                      "vf-module-name": "vf-module-163",
                      "heat-stack-id": "vf-module-163/7948fccc-4151-4724-95e8-3608ae1ba27e",
                      "orchestration-status": "Active",
                      "is-base-vf-module": true,
                      "automated-assignment": false,
                      "resource-version": "1590493071473",
                      "model-invariant-id": "a3830bcf-cfa0-4114-adf5-fda8dd405e3d",
                      "model-version-id": "bb60b509-2215-4e72-9bad-661dab6e753b",
                      "model-customization-id": "f9a61960-e616-4844-a6a9-e97fc3587197",
                      "module-index": 0,
                      "selflink": "restconf/config/GENERIC-RESOURCE-API:services/service/56653994-bfe0-41d6-80da-8b62e1299051/service-data/vnfs/vnf/2aa6473a-0625-4932-873e-df2ec5d448a9/vnf-data/vf-modules/vf-module/f271ef4d-8414-4e8c-ab77-0b0c64a0e83e/vf-module-data/vf-module-topology/",
                      "relationship-list": {
                          "relationship": [
                              {
                                  "related-to": "vserver",
                                  "relationship-label": "org.onap.relationships.inventory.Uses",
                                  "related-link": "/aai/v16/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/982c540f6e69488eb6be5664255e00c0/vservers/vserver/d8cd2113-0122-4a98-95ae-90b0f8b53c4c",
                                  "relationship-data": [
                                      {
                                          "relationship-key": "cloud-region.cloud-owner",
                                          "relationship-value": "CloudOwner"
                                      },
                                      {
                                          "relationship-key": "cloud-region.cloud-region-id",
                                          "relationship-value": "RegionOne"
                                      },
                                      {
                                          "relationship-key": "tenant.tenant-id",
                                          "relationship-value": "982c540f6e69488eb6be5664255e00c0"
                                      },
                                      {
                                          "relationship-key": "vserver.vserver-id",
                                          "relationship-value": "d8cd2113-0122-4a98-95ae-90b0f8b53c4c"
                                      }
                                  ],
                                  "related-to-property": [
                                      {
                                          "property-key": "vserver.vserver-name",
                                          "property-value": "scaleout-base-vm"
                                      }
                                  ]
                              }
                          ]
                      }
                  }
              ]
          }
      }
      

            deen1985 deen1985
            deen1985 deen1985
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: