SO Casablanca HPA Design

DRAFT

This is a work in progress. Comments and suggestions gladly accepted. Draft will be removed once this is finalized.



HPA SO External Sequence Flow for Casablanca

HPA SO External API Interaction for Casablanca

Policy

Still Under Discussion: Utilize existing SO generic-rest-adapter. This is a possible interaction with Policy to obtain service specific flow path decision for Service Model.

OOF

Still Under Discussion: Utilize existing SO Homing code. SO will adhere the OOF/SO R2 APIs updated for R3 to fix issues from R2 and include passing on a set of generic key value pairs that could contain such values as flavor_name:HPA2 or SRIOV attributes. These key value pairs will be passed to Multicloud during instantiation as OOF_Directives. 

OOF-SO Interaction in R2 

OOF/HAS API Specifications



Addition of oofDirectives as part of

"assignmentInfo"

to R2 (doesn't change api): 

{
"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 >"
}
]
}
]
}
}
]
}
}

OOF Homing Response:

{ "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” ===================)

{ "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":"\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 #!/bin/bash -xv\n echo \"hello world\" > /root/hello-world.txt", "timeout_mins":60 }



HPA SO Casablanca Stories

key summary type created updated due assignee reporter priority status resolution
Loading...
Refresh