...
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
...
language | js |
---|---|
collapse | true |
...
.
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", "cloud_region":{ "location_id":"NYCNY55DLLSTX9A", "location_type":"azure", "latitude":"40.7128", "longitude":"-74.0060", "city":"New York", "state":"NY", "country":"USA", "region":"US", "complex_name":"ny_one", " "cloud_owner":"att-aic", "cloud_region_version":"1.1" }, "physical_location_id":"NYCNY55", "flavors"generic_vnf":{ "flavor":[ { "flavor- "host_id":"9cf8220b-4d96-4c30-a426-2e9382f3fff2", "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":{ "hpa-capability":[ { "hpa-capability-id":"8fa22e64-41b4-471f-96ad-6c4708635e4c", "hpa-feature":"cpuTopology", "hpa-version":"v1", "architecture":"generic", "resource-version":"1521306561109", "hpa-feature-attributes":[ { "hpa-attribute-key":"numCpuCores", "hpa-attribute-value":"{\"value\":8}", "resource-version":"1521306561114" }, { "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 | ||||
---|---|---|---|---|
| ||||
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" } |
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
...