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 |
|
|
uniqueness | Y | Boolean |
|
|
cost | Y | String |
|
|
Inventory Types
1) Cloud
2) Service
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
{
"candidate_id":"NYCNY55",
"candidate_type":"cloud",
"inventory_type":"cloud",
"inventory_provider":"aai",
"cost":"100",
"location_id":"NYCNY55",
"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":{
"flavor":[
{
"flavor-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
Attribute | Required | Content | Values | Description |
---|
location_info | Y | Object | location_id, location_type |
|
complex_info | Y | Object | physical_location_id, complex_name, latitude, longitude, state, country, city, region |
|
cloud_info | N | Object | cloud_region_version, cloud_owner |
|
flavors |
| Object | flavors |
|
sriov_automation |
|
|
|
|
Service object
EXAMPLE
{
"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
Attribute | Required | Content | Values | Description |
---|
location_info | Y | Object | location_id, location_type |
|
vlan_info | Y | Object | vlan_key, port_key |
|
cloud_info | N | Object | cloud_region_version, cloud_owner, vim_id |
|
|
|
|
|
|
Vfmodule object
EXAMPLE
{
"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
Attribute | Required | Content | Values | Description |
---|
location_info | Y | Object | location_id, location_type |
|
cloud_info | Y | Object | cloud_region_version, cloud_owner, vim_id |
|
vlan_info | N | Object | vlan_key, port_key |
|
vserver_info |
| Object |
|
|
Transport object
EXAMPLE
{
"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
Attribute | Required | Content | Values | Description |
---|
location_info | Y | Object | location_id, location_type |
|
complex_info | Y | Object | physical_location_id, complex_name, latitude, longitude, state, country, city, region |
|
zone_info | N | Object | zone_id , zone_name |
|
NSSI object
EXAMPLE
{
"inventory_provider" : "",
"inventory_type" : "",
"candidate_id" : "",
"uniqueness" : "",
"cost" : "",
"service_resource_id" : "",
}
MODEL
Attribute | Required | Content | Values | Description |
---|
sliceprofile_info | Y | Object |
|
|
nsi_info | Y | 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
- class cloud → extends from candidate base class
- location_info → dict()
- compex_info → dict()
- cloud_info → dict()
- other_permitted_fields_for_cloud_cnd → dict()