Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There are 3 places to store information of a VIM/Cloud instance: A&AI, SO, Robot. And it is very important to associate the VIM/Cloud instance with subscriber's service subscription, otherwise you will not able to deploy the subscriber's VNF/VF-Modules to that VIM/Cloud instance 

...

instance .


Prerequisite: Complex object and Subscribe object are created in the AAI

     Complex object in A&AI represent the physical location of a VIM/Cloud instance, that is the there are one-to-many association between them, so creating the complex object is out of scope of this practice. But I can would like to share the POST man POSTMAN script to do create complex named clli2 for your reference:


Code Block
titleCreate a Complex Object
collapsetrue
PUT /aai/v11/cloud-infrastructure/complexes/complex/clli2 HTTP/1.1
Host: <AAI_VM1_IP>:8443
X-TransactionId: 9999
X-FromAppId: jimmy-postman
Real-Time: true
Authorization: Basic QUFJOkFBSQ==
Content-Type: application/json
Accept: application/json
Cache-Control: no-cache
Postman-Token: 734b5a2e-2a89-1cd3-596d-d69904bcda0a
 
        {
            "physical-location-id": "clli2",
            "data-center-code": "example-data-center-code-val-6667",
            "complex-name": "clli2",
            "identity-url": "example-identity-url-val-28399",
            "physical-location-type": "example-physical-location-type-val-28399",
            "street1": "example-street1-val-28399",
            "street2": "example-street2-val-28399",
            "city": "example-city-val-28399",
            "state": "example-state-val-28399",
            "postal-code": "example-postal-code-val-28399",
            "country": "example-country-val-28399",
            "region": "example-region-val-28399",
            "latitude": "example-latitude-val-28399",
            "longitude": "example-longitude-val-28399",
            "elevation": "example-elevation-val-28399",
            "lata": "example-lata-val-28399"
                
        }

...

Subscriber registration is out of scope of ONAP, so that part is done by Robot service.

1, Register VIM/Cloud instance into A&AI

The VIM/Cloud instance are represented as a cloud region object in A&AI. This representation will be used by VID,APPC, VFC, DCAEgen2, MultiCloud,etc.


Registering So registering a VIM/Cloud instance into A&AI basically refers to following actions:


action Action 1: Create create a cloud region object

There are at least 2 approaches to create a cloud region object: Post curl commands to A&AI directly, or utilize ESR VIM registration portal.

approach 1: curl commands to A&AI

e.g. create Create a OpenStack Ocata instance as a cloud region identified by "CloudOwner/RegionTwo" into AAI,

Code Block
titleCreate a Cloud Region Object
collapsetrue
curl -X PUT \
  'https://<AAI_VM1_IP>:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionTwo' \
  -H 'accept: application/json' \
  -H 'authorization: Basic QUFJOkFBSQ==' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'postman-token: f7c57ec5-ac01-7672-2014-d8dfad883cea' \
  -H 'real-time: true' \
  -H 'x-fromappid: jimmy-postman' \
  -H 'x-transactionid: 9999' \
  -d '{
    "cloud-owner": "CloudOwner",
    "cloud-region-id": "RegionTwo",
    "cloud-type": "openstack",
    "owner-defined-type": "t1",
    "cloud-region-version": "ocata",
    "cloud-zone": "z1",
    "complex-name": "clli2",
    "sriov-automation": false,
    "cloud-extra-info": "",
    "tenants": {
        "tenant": [
            {
                "tenant-id": "48271fcc571449959d7d881a72f4ba10",
                "tenant-name": "onap-01"
            }
        ]
    }
}'

action 2: Create child object of cloud region object to represent the resources of that VIM/Cloud instance

e.g. Add tenants


Approach 2: utilize ESR VIM registration portal

open the portal by url:  http://<multi-service VM IP>/iui/aai-esr-gui/extsys/vim/vimView.html

Click the "register button", the registration portal will show up.

Image Added


Caveat: approach 2 which utilizes ESR VIM register portal will trigger MultiCloud to discover resources of VIM/Cloud instance and populate them into AAI. Right now with Amsterdam Release, it supports OpenStack ocata, Wind River Titanium Cloud, and VMware VIO.  More options will be available in future releases.


Action 2: associate action 3: Associate this cloud region object with a complex object

This association will be important for ONAP Beijing Release when OOF needs to find out the location approximity of different cloud regions.


Code Block
titleAssociate cloud region with complex "clli2"
collapsetrue
curl -X PUT \
  https://<AAI_VM1_IP>:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionTwo/relationship-list/relationship \
  -H 'accept: application/json' \
  -H 'authorization: Basic QUFJOkFBSQ==' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'postman-token: e68fd260-5cac-0570-9b48-c69c512b034f' \
  -H 'real-time: true' \
  -H 'x-fromappid: jimmy-postman' \
  -H 'x-transactionid: 9999' \
  -d '{
{
"related-to": "complex",
"related-link": "/aai/v11/cloud-infrastructure/complexes/complex/clli2",
"relationship-data": [
{
	"relationship-key": "complex.physical-location-id",
	"relationship-value": "clli2"
}
]
}'



action 4Action 3: associate this cloud region object with a subscriber's service subscription

With this association,  this cloud region will be populated into list of selection for deploying VNF/VF-Modules from VID.


e.g. associate the cloud region "CloudOwner/RegionTwo" with subscriber "Demonstration" which subscribe to service "vFWCL"

Code Block
titleAssociate cloud region with a subscriber's subscription
collapsetrue
curl -X PUT \
  https://<AAI_VM1_IP>:8443/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/relationship-list/relationship \
  -H 'accept: application/json' \
  -H 'authorization: Basic QUFJOkFBSQ==' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'postman-token: 4e6e55b9-4d84-6429-67c4-8c96144d1c52' \
  -H 'real-time: true' \
  -H 'x-fromappid: jimmy-postman' \
  -H 'x-transactionid: 9999' \
  -d '{
	"related-to": "tenant",
	"related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionTwo/tenants/tenant/48271fcc571449959d7d881a72f4ba10",
	"relationship-data": [
		{
			"relationship-key": "cloud-region.cloud-owner",
			"relationship-value": "CloudOwner"
		},
		{
			"relationship-key": "cloud-region.cloud-region-id",
			"relationship-value": "RegionTwo"
		},
		{
			"relationship-key": "tenant.tenant-id",
			"relationship-value": "48271fcc571449959d7d881a72f4ba10"
		}
	],
	"related-to-property": [
		{
			"property-key": "tenant.tenant-name",
			"property-value": "onap-01"
		}
	]
}
'


2, Register VIM/Cloud instance into SO

SO does not 


3, Change Robot service to operate with the VIM/Cloud instance


The cloud-owner is "CloudOwner" and cloud-region-id is specified via the parameters "openstack_region" for deploying this ONAP instance.

...