...
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 >" } "default": "m1.tiny", ] "type": "string" } }, "resources": { ] "hello_world": { } "type": "OS::Nova::Server", } ] }, "propertiestemplate_type": {"<heat/tosca/etc.>", "files":{ }, "keydisable_namerollback":true, "heat_key", "parameters":{ "flavor":"m1.heat" }, "flavorstack_name":"teststack", { "get_param": "flavor" "template":"\nheat_template_version: 2013-05-23\ndescription: Simple template to test heat commands\nparameters:\n flavor: {default: m1.tiny, type: string}\nresources:\n hello_world:\n type: OS::Nova::Server\n properties:\n key_name: heat_key\n }, flavor: {get_param: flavor}\n "image": "40be8d1a-3eb9-40de-8abd-43237517384f",\n user_data: |\n "user_data": "#!/bin/bash -xv\nechon echo \"hello world\" >> /root/hello-world.txt\n", } } } }, "timeout_mins": 60, } |
HPA SO Casablanca Stories
...