...
to R2 (doesn't change api):
{ "key": "oofDirectives", "value": [{ "key": "flavor", "value": "hpa.flavor1" }, { "key": "sriovParam", "value": "param" }] }
OOF Homing Response:
...
language | xml |
---|
...
{
"
...
key":"oofDirectives",
...
...
...
"
...
value":
...
{
...
...
"
...
directives":[
...
...
...
...
{
...
...
...
...
"
...
vnfc_directives":
...
[
...
...
...
...
...
...
...
...
...
{
...
...
"vnfc_id":"<ID of
...
VNFC>",
...
...
...
...
...
"
...
directives":[
...
...
...
...
...
...
{
...
...
...
...
"
...
directive_name":"<Name
...
of directive,example flavor_directive>",
...
...
...
...
"attributes":[
...
...
...
...
MultiCloud
Still Under Discussion: Utilize existing so-opendstack-adapter and extend, or clone to so-multicloud-adapater and extend. Use Multicloud OpenStack Proxy API and extend HEAT API payload with generic-vnf-id, vf-module-id, oof_directives, sdnc_directives and template_type.
API URI http://{msb IP}:{msb port}/api/multicloud /v1/{cloud-owner}/{cloud-region-id}/infra_workload
REQUEST BODY
( =================== parameters below template type are valid for request with “template_type”:“heat” ===================)
...
language | js |
---|---|
theme | DJango |
...
{
"attribute_name":"<name of attribute, such as flavor label>",
"attribute_value":"<value such as cloud specific flavor>"
}
]
},
{
"directive_name":"<Name of directive,example vnic-info>",
"attributes":[
{
"attribute_name":"<name of attribute, such as vnic-type>",
"attribute_value":"<value such as direct/normal>"
},
{
"attribute_name":"<name of attribute, such as provider netweork>",
"attribute_value":"<value such as physnet>"
}
]
}
]
}
]
},
{
"vnf_directives":{
"directives":[
{
"directive_name":"<Name of directive>",
"attributes":[
{
"attribute_name":"<name of attribute>",
"attribute_value":"<value>"
}
]
},
{
"directive_name":"<Name of directive>",
"attributes":[
{
"attribute_name":"<name of attribute>",
"attribute_value":"<value >"
},
{
"attribute_name":"<name of attribute>",
"attribute_value":"<value >"
}
]
}
]
}
}
]
}
}
OOF Homing Response:
Code Block | ||
---|---|---|
| ||
{
"transactionId":"xxx-xxx-xxxx",
"requestId":"yyy-yyy-yyyy",
"requestStatus":"completed",
"statusMessage":"",
"solutions":{
"placementSolutions":[
[
{
"resourceModuleName":"vGMuxInfra",
"serviceResourceId":"someResourceId",
"solution":{
"identifierType":"serviceInstanceId",
"identifiers":[
"gjhd-098-fhd-987"
]
},
"assignmentInfo":[
{
"key":"cloudOwner",
"value":"amazon"
},
{
"key":"vnfHostName",
"value":"ahr344gh"
},
{
"key":"isRehome",
"value":"False"
},
{
"key":"cloudRegionId",
"value":"1ac71fb8-ad43-4e16-9459-c3f372b8236d"
}
]
},
{
"resourceModuleName":"vG",
"serviceResourceId":"someResourceId",
"solution":{
"identifierType":"cloudRegionId",
"cloudOwner":"amazon",
"identifiers":[
"gjhd-098-fhd-987"
]
},
"assignmentInfo":[
{
"key":"cloudOwner",
"value":"amazon"
},
{
"key":"cloudRegionId",
"value":"1ac71fb8-ad43-4e16-9459-c3f372b8236d"
},
{
"key":"oofDirectives",
"value":{
"directives":[
{
"vnfc_directives":[
{
"vnfc_id":"<ID of VNFC>",
"directives":[
{
"directive_name":"<Name of directive,example flavor_directive>",
"attributes":[
{
"attribute_name":"<name of attribute, such as flavor label>",
"attribute_value":"<value such as cloud specific flavor>"
}
]
},
{
"directive_name":"<Name of directive,example vnic-info>",
"attributes":[
{
"attribute_name":"<name of attribute, such as vnic-type>",
"attribute_value":"<value such as direct/normal>"
},
{
"attribute_name":"<name of attribute, such as provider netweork>",
"attribute_value":"<value such as physnet>"
}
]
}
]
}
]
},
{
"vnf_directives":{
"directives":[
{
"directive_name":"<Name of directive>",
"attributes":[
{
"attribute_name":"<name of attribute>",
"attribute_value":"<value>"
}
]
},
{
"directive_name":"<Name of directive>",
"attributes":[
{
"attribute_name":"<name of attribute>",
"attribute_value":"<value >"
},
{
"attribute_name":"<name of attribute>",
"attribute_value":"<value >"
}
]
}
]
}
}
]
}
}
]
}
]
]
}
} |
MultiCloud
Still Under Discussion: Utilize existing so-opendstack-adapter and extend, or clone to so-multicloud-adapater and extend. Use Multicloud OpenStack Proxy API and extend HEAT API payload with generic-vnf-id, vf-module-id, oof_directives, sdnc_directives and template_type.
API URI http://{msb IP}:{msb port}/api/multicloud /v1/{cloud-owner}/{cloud-region-id}/infra_workload
REQUEST BODY
( =================== parameters below template type are valid for request with “template_type”:“heat” ===================)
Code Block | ||||
---|---|---|---|---|
| ||||
{ "generic-vnf-id":"<generic-vnf-id>", "vf-module-id":"<vf-module-id>", "oof_directives":{ "directives":[ { "vnfc_directives":[ { "vnfc_id":"<ID of VNFC>", "directives":[ { "directive_name":"<Name of directive,example flavor_directive>", "attributes":[ { "attribute_name":"<name of attribute, such as flavor label>", "attribute_value":"<value such as cloud specific flavor>" } ] }, { "directive_name":"<Name of directive,example vnic-info>", "attributes":[ { "attribute_name":"<name of attribute, such as vnic-type>", "attribute_value":"<value such as direct/normal>" }, { "attribute_name":"<name of attribute, such as provider netweork>", "attribute_value":"<value such as physnet>" } ] } ] } ] }, { "vnf_directives":{ "directives":[ { "directive_name":"<Name of directive>", "attributes":[ { "attribute_name":"<name of attribute>", "attribute_value":"<value>" } ] }, { "directive_name":"<Name of directive>", "attributes":[ { "attribute_name":"<name of attribute>", "attribute_value":"<value >" }, { "attribute_name":"<name of attribute>", "attribute_value":"<value >" } ] } ] } } ] }, "sdnc_directives":{ "directives":[ { "vnfc_directives":[ { "vnfc_id":"<ID of VNFC>", "directives":[ { "directive_name":"<Name of directive,example flavor_directive>", "attributes":[ { "attribute_name":"<name of attribute, such as flavor label>", "attribute_value":"<value such as cloud specific flavor>" } ] }, { "directive_name":"<Name of directive,example vnic-info>", "attributes":[ { "attribute_name":"<name of attribute, such as vnic-type>", "attribute_value":"<value such as direct/normal>" }, { "attribute_name":"<name of attribute, such as provider netweork>", "attribute_value":"<value such as physnet>" } ] } ] } ] }, { "vnf_directives":{ "directives":[ { "directive_name":"<Name of directive>", "attributes":[ { "attribute_name":"<name of attribute>", "attribute_value":"<value>" } ] }, { "directive_name":"<Name of directive>", "attributes":[ { "attribute_name":"<name of attribute>", "attribute_value":"<value >" }, { "attribute_name":"<name of attribute>", "attribute_value":"<value >" } ] } ] } } ] }, "template_type":"<heat/tosca/etc.>", "files":{ }, "disable_rollback":true, "parameters":{ "flavor":"m1.heat" }, "stack_name":"teststack", "template":{ "heat_template_version": "2013-05-23", "description": "Simple template to test heat commands", "parameters":{ { "flavor":{ { "default": "m1.tiny", "type": "string" } }, "resources":{ { "hello_world":{ { "type": "OS::Nova::Server", "properties":{ { "key_name": "heat_key", "flavor": { "get_param": "flavor" }, "image": "40be8d1a-3eb9-40de-8abd-43237517384f", "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n" } } } }, "timeout_mins": 60, } |
HPA SO Casablanca Stories
...