summaryrefslogtreecommitdiffstats
path: root/docs/Chapter8/Chef-JSON-Key-Value-Description.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Chapter8/Chef-JSON-Key-Value-Description.rst')
-rw-r--r--docs/Chapter8/Chef-JSON-Key-Value-Description.rst178
1 files changed, 178 insertions, 0 deletions
diff --git a/docs/Chapter8/Chef-JSON-Key-Value-Description.rst b/docs/Chapter8/Chef-JSON-Key-Value-Description.rst
new file mode 100644
index 0000000..7144159
--- /dev/null
+++ b/docs/Chapter8/Chef-JSON-Key-Value-Description.rst
@@ -0,0 +1,178 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
+
+Chef JSON Key Value Description
+-------------------------------------
+
+The following provides the key value pairs that must be contained in the
+JSON file supporting Chef action.
+
+Table A1. Chef JSON File key value description
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
++----------------+--------------------------+---------+----------------------+
+| **Field Name** | **Description** | **Type**| **Comment** |
++================+==========================+=========+======================+
+| Environment | A JSON dictionary | Optional|Depends on VNF action.|
+| | representing a Chef | | |
+| | Environment object. If | | |
+| | the VNF action requires | | |
+| | loading or modifying Chef| | |
+| | environment attributes | | |
+| | associated with the VNF, | | |
+| | all the relevant | | |
+| | information must be | | |
+| | provided in this JSON | | |
+| | dictionary in a structure| | |
+| | that conforms to a Chef | | |
+| | Environment Object. | | |
++----------------+--------------------------+---------+----------------------+
+| Node | A JSON dictionary |Mandatory| |
+| | representing a Chef Node | | |
+| | Object. | | |
+| | | | |
+| | The Node JSON dictionary | | |
+| | must include the run list| | |
+| | to be triggered for the | | |
+| | desired VNF action by the| | |
+| | push job. It should also | | |
+| | include any attributes | | |
+| | that need to be | | |
+| | configured on the Node | | |
+| | Object as part of the VNF| | |
+| | action. | | |
++----------------+--------------------------+---------+----------------------+
+| NodeList | Array of FQDNs that |Mandatory| |
+| | correspond to the | | |
+| | endpoints (VMs) of a VNF | | |
+| | registered with the Chef | | |
+| | Server that need to | | |
+| | trigger a chef-client run| | |
+| | as part of the desired | | |
+| | VNF action. | | |
++----------------+--------------------------+---------+----------------------+
+| PushJobFlag | This field indicates |Mandatory| If set to “True”, |
+| | whether the VNF action | | ONAP will request a |
+| | requires a push Job. Push| | push job. Ignored |
+| | job object will be | | otherwise. |
+| | created by ONAP if | | |
+| | required. | | |
++----------------+--------------------------+---------+----------------------+
+| CallbackCapable| This field indicates if | Optional| If Chef cookbook is |
+| | the chef-client run | | callback capable, VNF|
+| | invoked by push job | | owner is required to |
+| | corresponding to the VNF | | set it to “True”. |
+| | action is capable of | | Ignored otherwise. |
+| | posting results on a | | |
+| | callback URL. | | |
++----------------+--------------------------+---------+----------------------+
+| GetOutputFlag | Flag which indicates |Mandatory| ONAP will retrieve |
+| | whether ONAP should | | output from |
+| | retrieve output generated| | NodeObject attributes|
+| | in a chef-client run from| | [‘PushJobOutput’] for|
+| | Node object attribute | | all nodes in NodeList|
+| | node[‘PushJobOutput’] for| | if set to “True”. |
+| | this VNF action (e.g., in| | Ignored otherwise. |
+| | Audit). | | |
++----------------+--------------------------+---------+----------------------+
+
+Chef Template example:
+
+.. code-block:: chef
+
+ “Environment”:{
+ "name": "HAR",
+ "description": "VNF Chef environment for HAR",
+ "json\_class": "Chef::Environment",
+ "chef\_type": "environment",
+ "default\_attributes": { },
+ "override\_attributes": {
+ “Retry\_Time”:”50”,
+ “MemCache”: “1024”,
+ “Database\_IP”:”10.10.1.5”
+ },
+ }
+ }
+ “Node”: {
+ “name” : “signal.network.com “
+ "chef\_type": "node",
+ "json\_class": "Chef::Node",
+ "attributes": {
+ “IPAddress1”: “192.168.1.2”,
+ “IPAddress2”:”135.16.162.5”,
+ “MyRole”:”BE”
+ },
+ "override": {},
+ "default": {},
+ “normal”:{},
+ “automatic”:{},
+ “chef\_environment” : “\_default”
+ "run\_list": [ "configure\_signal" ]
+ },
+ “NodeList”:[“node1.vnf\_a.onap.com”, “node2.vnf\_a.onap.com”],
+ “PushJobFlag”: “True”
+ “CallbackCapable”:True
+ “GetOutputFlag” : “False”
+ }
+
+The example JSON file provided by the VNF provider for each VNF action will be
+turned into a template by ONAP, that can be updated with instance
+specific values at run-time.
+
+Some points worth noting regarding the JSON fields:
+
+a. The JSON file must be created for each action for each VNF.
+
+b. If a VNF action involves multiple endpoints (VMs) of a VNF, ONAP will
+ replicate the “Node” JSON dictionary in the template and post it to
+ each FQDN (i.e., endpoint) in the NodeList after setting the “name”
+ field in the Node object to be the respective FQDN [1]_. Hence, it
+ is required that all end points (VMs) of a VNF involved in a VNF
+ action support the same set of Node Object attributes.
+
+The following table describes the JSON dictionary to post in Callback.
+
+Table A2. JSON Dictionary to Post in Callback
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
++--------------+----------------------------+---------+-----------------------+
+| **Key** | **Description** | **Type**| **Comment** |
++==============+============================+=========+=======================+
+| RequestId | A unique string associated |Mandatory| |
+| | with the original request | | |
+| | by ONAP. This key-value | | |
+| | pair will be provided by | | |
+| | ONAP in the environment of | | |
+| | the push job request and | | |
+| | must be returned as part of| | |
+| | the POST message. | | |
++--------------+----------------------------+---------+-----------------------+
+| StatusCode | An integer that must be set|Mandatory| |
+| | to 200 if chef-client run | | |
+| | on the node finished | | |
+| | successfully 500 otherwise.| | |
++--------------+----------------------------+---------+-----------------------+
+| StatusMessage| A string which must be set |Mandatory| |
+| | to ‘SUCCESS’ if StatusCode | | |
+| | was 200 | | |
+| | | | |
+| | Appropriate error message | | |
+| | otherwise. | | |
++--------------+----------------------------+---------+-----------------------+
+| Name | A string which corresponds |Mandatory| |
+| | to the name of the node | | |
+| | where push job is run. It | | |
+| | is required that the value | | |
+| | be retrieved from the node | | |
+| | object attributes (where it| | |
+| | is always defined). | | |
++--------------+----------------------------+---------+-----------------------+
+| PushJobOutput| Any output from the |Optional | Depends on VNF action.|
+| | chef-client run that needs | | If empty, it must not |
+| | to be returned to ONAP. | | be included. |
++--------------+----------------------------+---------+-----------------------+
+
+.. [1]
+ The “name” field is a mandatory field in a valid Chef Node Object
+ JSON dictionary.