Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OOF/HAS API Specifications

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

...

languagejs
themeDJango

...


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:

Code Block
languagejs
themeDJango
{  
   "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
languagejs
themeDJango
{  
   "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": {     ]
   },
   "template_type": "OS::Nova::Server",
   "<heat/tosca/etc.>",





   "propertiesfiles": {  

   },
     "disable_rollback":true,
   "key_nameparameters":{ "heat_key", 
      "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\" &gt;> /root/hello-world.txt\n"
        ",
   }
        }
    }
},
"timeout_mins": 60,
}


HPA SO Casablanca Stories

...