...
Base Candidate Class
Attribute | Required | Content | Values | Description |
---|---|---|---|---|
inventory_provider | Y | String | aai | |
inventory_type | Y | String Cloud, Service, Vfmodule, Transport, NSSI | ||
candidate_id | Y | String | ||
candidate_idtype | Y | String | ||
uniqueness | Y | Boolean | ||
cost | Y | String |
...
3) Vfmodule
4) Transport
5) NSSI
All the candidate for every inventory types extend from the candidate base class
(Should the fields in models (cloud_info, complex_info, location_info ..) come from the configuration (or) should be defined in the models itself as instance variables (or) should the fields be derived from AAI)
Cloud object
EXAMPLE
Code Block | ||||
---|---|---|---|---|
| ||||
{
"inventory_provider" : "",
"inventory_type" : "",
"candidate_id" : "",
"uniqueness" : "",
"cost" : "",
"service_resource_id" : ""
"location_id" : "",
"location_type" : "",
"vim-id" : "",
"cloud_region_version" : "",
"cloud_owner" : "",
"physical_location_id" : "",
"complex_name" : "",
"latitude" : "",
"longitude" : "",
"city" : "",
"state" : "",
"region" : "",
"country" : "",
"sriov_automation" : "",
"flavors" : ""
} |
MODEL
...
location_id, location_type
...
Object
...
Service object
EXAMPLE
Code Block | ||||
---|---|---|---|---|
| ||||
{
"inventory_provider" : "",
"inventory_type" : "",
"candidate_id" : "",
"uniqueness" : "",
"cost" : "",
"service_resource_id" : "",
"location_id" : "",
"location_type" : "",
"vim-id" : "",
"cloud_region_version" : "",
"cloud_owner" : "",
"host_id" : "",
"vlan_key" : "",
"port_key" : "",
"sriov_automation" : "",
} |
MODEL
...
location_id, location_type
...
Object
...
Vfmodule object
EXAMPLE
Code Block | ||||
---|---|---|---|---|
| ||||
{
"inventory_provider" : "",
"inventory_type" : "",
"candidate_id" : "",
"uniqueness" : "",
"cost" : "",
"service_resource_id" : "",
"location_id" : "",
"location_type" : "",
"physical_location_id" : "",
"complex_name" : "",
"latitude" : "",
"longitude" : "",
"city" : "",
"state" : "",
"region" : "",
"country" : "",
"vim-id" : "",
"cloud_region_version" : "",
"cloud_owner" : "",
"host_id" : "",
"vlan_key" : "",
"port_key" : "",
"sriov_automation" : "",
} |
MODEL
...
location_id, location_type
...
Object
...
Transport object
EXAMPLE
Code Block | ||||
---|---|---|---|---|
| ||||
{
"inventory_provider" : "",
"inventory_type" : "",
"candidate_id" : "",
"uniqueness" : "",
"cost" : "",
"service_resource_id" : "",
"location_id" : "",
"location_type" : "",
"physical_location_id" : "",
"complex_name" : "",
"latitude" : "",
"longitude" : "",
"city" : "",
"state" : "",
"region" : "",
"country" : "",
"vim-id" : "",
"cloud_region_version" : "",
"cloud_owner" : "",
"zone_id" : "",
"zone_name" : "",
"sriov_automation" : "",
} |
MODEL
...
location_id, location_type
...
Object
...
NSSI object
EXAMPLE
Code Block | ||||
---|---|---|---|---|
| ||||
{
"inventory_provider" : "",
"inventory_type" : "",
"candidate_id" : "",
"uniqueness" : "",
"cost" : "",
"service_resource_id" : "",
} |
MODEL
...
.
Following are the AAI objects from which the respective candidates takes the required data:
Cloud object
EXAMPLE : https://docs.onap.org/projects/onap-optf-has/en/latest/sections/homingspecification.html
MODEL
Attribute | Required | Content |
---|---|---|
cloud-region | Y | dict |
complex | Y | dict |
flavors | Y | dict |
sriov_automation* | N | boolean |
Service object
EXAMPLE : https://docs.onap.org/projects/onap-optf-has/en/latest/sections/homingspecification.html
MODEL
Attribute | Required | Content |
---|---|---|
generic-vnf | Y | dict |
vlan_info* | Y | dict |
cloud-region | Y | dict |
service-instance | Y | dict |
complex | Y | dict |
sriov_automation* | N | boolean |
Vfmodule object
EXAMPLE : https://docs.onap.org/projects/onap-optf-has/en/latest/sections/homingspecification.html
MODEL
Attribute | Required | Content |
---|---|---|
generic-vnf | Y | dict |
cloud-region | Y | dict |
vlan_info* | Y | dict |
vserver | Y | dict |
service-instance | Y | dict |
vf-module | Y | dict |
complex | Y | dict |
l-interfaces | Y | dict |
sriov_automation* | N | boolean |
Transport object
EXAMPLE : https://docs.onap.org/projects/onap-optf-has/en/latest/sections/homingspecification.html
MODEL
Attribute | Required | Content |
---|---|---|
service-instance | Y | dict |
complex | Y | dict |
zone | Y | dict |
Design
In the data module, after fetching the data from AAI the candidate gets populated like this
Elite soft json viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"candidate_id":"1ac71fb8-ad43-4e16-9459-c3f372b8236d",
"candidate_type":"service",
"inventory_type":"service",
"inventory_provider":"aai",
"cost":"100",
"cloud_region":{
"location_id":"DLLSTX9A",
"location_type":"azure",
"cloud_owner":"att-aic",
"cloud_region_version":"1.1"
},
"generic_vnf":{
"host_id":"vnf_123456"
},
"complex":{
"latitude":"32.897480",
"longitude":"-97.040443",
"city":"Dallas",
"state":"TX",
"country":"USA",
"region":"US",
"complex_name":"dalls_one",
"physical_location_id":"DLLSTX9A"
}
}
|
While returning to solver;
Elite soft json viewer | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"candidate_id": "1ac71fb8-ad43-4e16-9459-c3f372b8236d",
"candidate_type": "service",
"inventory_type": "service",
"inventory_provider": "aai",
"host_id": "vnf_123456",
"cost": "100",
"location_id": "DLLSTX9A",
"location_type": "azure",
"latitude": "32.897480",
"longitude": "-97.040443",
"city": "Dallas",
"state": "TX",
"country": "USA",
"region": "US",
"complex_name": "dalls_one",
"cloud_owner": "att-aic",
"cloud_region_version": "1.1",
"physical_location_id": "DLLSTX9A"
} |