summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBin Hu <bh526r@att.com>2018-08-17 17:00:15 +0000
committerGerrit Code Review <gerrit@onap.org>2018-08-17 17:00:15 +0000
commit11c98c9db093827f651935c38c1549fc215a9b72 (patch)
treeb8a7f26e004d478e8142b7f03e63080c79be7f69
parent7419e38021a3c959af3b6a4730a0f50baff2e15b (diff)
parent62a96c11df1881645b015f946700bc8faf68a64d (diff)
Merge "Add Multicloud infra workload API"
-rw-r--r--docs/specs/multicloud_infra_workload.rst135
1 files changed, 135 insertions, 0 deletions
diff --git a/docs/specs/multicloud_infra_workload.rst b/docs/specs/multicloud_infra_workload.rst
new file mode 100644
index 0000000..71fd234
--- /dev/null
+++ b/docs/specs/multicloud_infra_workload.rst
@@ -0,0 +1,135 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (c) 2017-2018 Intel, Inc.
+
+===============================
+MultiCloud infra_workload API
+===============================
+
+we have two purposes for this API:
+
+#. Intergrate SO and Multicloud.
+#. Generic API for SO to talk to different Multicloud plugins.
+
+
+Problem Description
+===================
+
+Currently HPA flavors are returned by OOF  to SO and SO copies these flavors in
+the Heat template before sending the Heat template to Multicloud.  In Casablanca
+instead of SO making changes in the Heat template the flavor information will be
+provided to Multicloud and Multicloud will pass these as parameters to HEAT
+command line.
+The detail design refer to https://wiki.onap.org/display/DW/SO+Casablanca+HPA+Design
+
+
+Propose Change
+==============
+
+Add infrastructure workload API
+-------------------------------
+
+API URL: http://{msb IP}:{msb port}/api/multicloud /v1/{cloud-owner}/{cloud-region-id}/infra_workload
+
+Request Body:
+
+
+::
+
+ {
+ "generic-vnf-id":"<generic-vnf-id>",
+ "vf-module-id":"<vf-module-id>",
+ "oof_directives":{},
+ "sdnc_directives":{},
+ "template_type":"<heat/tosca/etc.>",
+ "template_data":{}
+ }
+
+oof_directives:
+::
+
+ "directives":[
+ {
+ "id":"<ID of VNFC>",
+ "type": "vnfc",
+ "directives":[
+ {
+ "type":"<flavor_directive>",
+ "attributes":[
+ {
+ "attribute_name":"<name of attribute, such as flavor label>",
+ "attribute_value":"<value such as cloud specific flavor>"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"<ID of VNF>",
+ "type": "vnf",
+ "directives":[
+ {
+ "type":"<Name of directive>",
+ "attributes":[
+ {
+ "attribute_name":"<name of attribute>",
+ "attribute_value":"<value>"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+
+
+Heat examples
+=============
+
+ "template_type":"heat",
+ "template_data":{
+ "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\" &gt; /root/hello-world.txt\n"
+ }
+ }
+ }
+ },
+ "timeout_mins":60
+ }
+
+Work Items
+==========
+
+#. Work with SO.
+#. Work with OOF team for oof_directive form.
+#. Work with SDNC team for sdc_directive form.
+
+Tests
+=====
+
+#. Unit Tests with tox
+#. CSIT Tests, the input/ouput of broker and each plugin see API design above.
+