...
Base Candidate Class
Attribute | Required | Content | Values | Description |
---|---|---|---|---|
inventory_provider | Y | Stringaai | ||
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
...
.
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":"NYCNY551ac71fb8-ad43-4e16-9459-c3f372b8236d", "candidate_type":"cloudservice", "inventory_type":"cloudservice", "inventory_provider":"aai", "cost":"100", "locationcloud_idregion":"NYCNY55",{ "location_type":"azure", "latitudelocation_id":"40.7128DLLSTX9A", "longitude":"-74.0060", "citylocation_type":"New Yorkazure", "state":"NY", "country":"USA", "region":"US", "complex_name":"ny_one", "cloud_owner":"att-aic", "cloud_region_version":"1.1", "physical_location_id":"NYCNY55"}, "flavorsgeneric_vnf":{ "flavor":[ { "flavor-host_id":"9cf8220b-4d96-4c30-a426-2e9382f3fff2",vnf_123456" "flavor-name":"flavor-numa-cpu-topology-instruction-set", "flavor-vcpus":64, "flavor-ram":65536, "flavor-disk":1048576, "flavor-ephemeral":128, "flavor-swap":"0", "flavor-is-public":false, "flavor-selflink":"pXtX", "flavor-disabled":false, "hpa-capabilities":{ }, "complex":{ "hpa-capability":[ { "hpa-capability-id":"8fa22e64-41b4-471f-96ad-6c4708635e4clatitude":"32.897480", "hpa-feature":"cpuTopology", "hpa-version":"v1", "longitude":"-97.040443", "architecture"city":"genericDallas", "resource-version"state":"1521306561109TX", "hpa-feature-attributes":[ { "hpa-attribute-key":"numCpuCores", "country":"USA", "hpa-attribute-valueregion":"{\"value\":8}US", "resource-version"complex_name":"1521306561114" }dalls_one", { "hpa-attribute-key":"numCpuThreads", "hpa-attribute-value":"{\"value\":8}", "resource-version":"1521306561138" }, { "hpa-attribute-key":"numCpuSockets", "hpa-attribute-value":"{\"value\":6}", "resource-version":"1521306561126" } ] } ] }, "resource-version":"1521306560203" } ] } } |
MODEL
...
location_id, location_type
...
Object
...
Service object
EXAMPLE
Code Block | ||||
---|---|---|---|---|
| ||||
"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" } |
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" : "", "nf-name" : "" "nf-id" : "" "nf-type" : "" "vnf-type" : "" "ipv4-oam-address" : "" "ipv6-oam-address" : "" "vf-module-name" : "" "vf-module-id" : "" "service_instance_id" : "" "sriov_automation" : "" "vservers" : [ { "vserver-id" : "" "vserver-name" : "" "l-interfaces" : [ { "interface-id" : "" "interface-name" : "" "macaddr" : "" "network-id" : "" "network-name" : "" "ipv4-addresses" : "" "ipv6-addresses" : "" } ] } ] } |
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
...
Object
CONFIGURATION
Applicable fields of all the models should be present in the configuration
location_info = ["location_id", "location_type"]
zone_info = ["zone_id", "zone_name"]
cloud_info = ["vim_id". "cloud_region_version", "cloud_owner"]
vlan_info = ["host_id", "vlan_key", "port_key"]
complex_info = ["physical_location_id". "complex_name", "latitude", "longitude", "state", "country", "city", "region", ]
Base candidate class
inventory_provider, inventory_type, candidate_id, uniqueness, cost, service_resource_id
Example of how a cloud inventory type should be defined
...