Refactor the docs
[multicloud/framework.git] / docs / multicloud-plugin-windriver / Tutorial-VESagent-MultiCloud-WindRiver-TitaniumCloud.rst
diff --git a/docs/multicloud-plugin-windriver/Tutorial-VESagent-MultiCloud-WindRiver-TitaniumCloud.rst b/docs/multicloud-plugin-windriver/Tutorial-VESagent-MultiCloud-WindRiver-TitaniumCloud.rst
new file mode 100644 (file)
index 0000000..2d17692
--- /dev/null
@@ -0,0 +1,139 @@
+.. This work is licensed under a Creative Commons Attribution 4.0\r
+.. International License.  http://creativecommons.org/licenses/by/4.0\r
+.. Copyright (c) 2017-2018 Wind River Systems, Inc.\r
+\r
+Tutorial: VESagent configuration and Testing\r
+````````````````````````````````````````````\r
+\r
+VESagent is a FCAPS relaying service offered by MultiCloud Plugin for Wind\r
+River Titanium Cloud. It allows user to monitor specified VM status and report\r
+VES collector with onset or abate fault event "Fault_MultiCloud_VMFailure"\r
+\r
+VESagent provisoning APIs\r
+-------------------------\r
+\r
+### assume OOM deployment as below endpoints:\r
+\r
+*   OOM k8s Node IP, e.g. 10.12.5.184\r
+*   OOM k8s Node port for multicloud-titaniumcloud POD: 30294\r
+*   On-boarded cloud region with {cloud-owner}/{cloud-region-id} : CloudOwner/pod01\r
+*   VES collector endpoint: 10.12.6.79:8081\r
+\r
+\r
+\r
+.. code-block:: console\r
+\r
+    #!/bin/bash\r
+    export MC_EP_IP=10.12.5.184\r
+    export MC_EP_PORT=30294\r
+\r
+    export MC_EPv0=http://$OPENO_IP:$MC_EP_PORT/api/multicloud-titaniumcloud/v0/CloudOwner_pod01\r
+    export MC_EPv1=http://$OPENO_IP:$MC_EP_PORT/api/multicloud-titaniumcloud/v1/CloudOwner/pod01\r
+\r
+\r
+\r
+1. Setup VESagent backlogs\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+** Option 1: monitor all VMs of a tenant**\r
+\r
+.. code-block:: console\r
+\r
+    curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config": \\r
+         {"backlogs":[ {"domain":"fault","type":"vm","tenant":"VIM"}],\\r
+         "poll_interval_default":10,"ves_subscription":\\r
+         {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}'\\r
+          -X POST  $MC_EPv0/vesagent\r
+\r
+** Option 2: monitor specified VMs**\r
+\r
+.. code-block:: console\r
+\r
+    ### zdfw1lb01dns01, zdfw1lb01dns02\r
+    curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config":\\r
+         {"backlogs":[ {"source":"zdfw1lb01dns01", "domain":"fault","type":"vm","tenant":"VIM"},\\r
+          {"source":"zdfw1lb01dns02", "domain":"fault","type":"vm","tenant":"VIM"}],\r
+         "poll_interval_default":10,"ves_subscription":\\r
+         {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}' \\r
+         -X POST  $MC_EPv0/vesagent\r
+\r
+2. Dump the VESagent backlogs\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+.. code-block:: console\r
+\r
+    curl -v -s -H "Content-Type: application/json" -X GET  $MC_EPv0/vesagent\r
+\r
+3. Delete the VESagent backlogs\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+.. code-block:: console\r
+\r
+    curl -v -s -H "Content-Type: application/json" -X DELETE  $MC_EPv0/vesagent\r
+\r
+\r
+VESagent exercises\r
+------------------\r
+\r
+Step 1: Monitor the DMaaP events\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+Subscribe to and keep polling DMaaP Topic: "unauthenticated.SEC_FAULT_OUTPUT" with curl command\r
+\r
+.. code-block:: console\r
+\r
+    curl -X GET \\r
+          'http://$DMAAP_IP:3904/events/unauthenticated.SEC_FAULT_OUTPUT/EVENT-LISTENER-POSTMAN/304?timeout=6000&limit=10&filter=' \\r
+          -H 'Cache-Control: no-cache' \\r
+          -H 'Content-Type: application/json' \\r
+          -H 'Postman-Token: 4e2e3589-d742-48c7-8d48-d1b3577df259' \\r
+          -H 'X-FromAppId: 121' \\r
+          -H 'X-TransactionId: 9999'\r
+\r
+\r
+Step 2: Setup VESagent backlog\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+.. code-block:: console\r
+\r
+    ### zdfw1lb01dns01, zdfw1lb01dns02\r
+    curl -v -s -H "Content-Type: application/json" -d '{"vesagent_config":\\r
+         {"backlogs":[ {"source":"zdfw1lb01dns01", "domain":"fault","type":"vm","tenant":"VIM"}],\\r
+         "poll_interval_default":10,"ves_subscription":\\r
+         {"username":"admin","password":"admin","endpoint":"http://10.12.6.79:8081/eventListener/v5"}}}' \\r
+         -X POST  $MC_EPv0/vesagent\r
+\r
+Step 3: Simulate the Faults\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+Manually stop the monitored VMs,e.g. VM with name 'zdfw1lb01dns01',\r
+\r
+Step 4: Observe DMaaP event: "Fault_MultiCloud_VMFailure"\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+Poll the subscribed DMaaP topic "unauthenticated.SEC_FAULT_OUTPUT" with curl command,\r
+you should be able to observe the following VES fault event generated from DMaaP:\r
+\r
+.. code-block:: console\r
+\r
+    [\r
+\r
+        "{\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1537233558255872,\"sourceId\":\"8e606aa7-39c8-4df7-b2f4-1f6785b9f682\",\"eventId\":\"a236f561-f0fa-48a3-96cd-3a61ccfdf421\",\"reportingEntityId\":\"CloudOwner_pod01\",\"internalHeaderFields\":{\"collectorTimeStamp\":\"Tue, 09 18 2018 01:19:19 GMT\"},\"eventType\":\"\",\"priority\":\"High\",\"version\":3,\"reportingEntityName\":\"CloudOwner_pod01\",\"sequence\":0,\"domain\":\"fault\",\"lastEpochMicrosec\":1537233558255872,\"eventName\":\"Fault_MultiCloud_VMFailure\",\"sourceName\":\"zdfw1lb01dns01\"},\"faultFields\":{\"eventSeverity\":\"CRITICAL\",\"alarmCondition\":\"Guest_Os_Failure\",\"faultFieldsVersion\":2,\"specificProblem\":\"Fault_MultiCloud_VMFailure\",\"alarmInterfaceA\":\"aaaa\",\"alarmAdditionalInformation\":[{\"name\":\"objectType\",\"value\":\"VIM\"},{\"name\":\"eventTime\",\"value\":\"2018-09-18 01:19:18.255937\"}],\"eventSourceType\":\"virtualMachine\",\"vfStatus\":\"Active\"}}}",\r
+\r
+    ]\r
+\r
+\r
+Step 5: Simulate the Recovery\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+Manually restart the stopped VM 'zdfw1lb01dns01'\r
+\r
+\r
+Step 6: Observe DMaaP event: "Fault_MultiCloud_VMFailureCleared"\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+.. code-block:: console\r
+\r
+    [\r
+        "{\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1537233558255872,\"sourceId\":\"8e606aa7-39c8-4df7-b2f4-1f6785b9f682\",\"eventId\":\"a236f561-f0fa-48a3-96cd-3a61ccfdf421\",\"reportingEntityId\":\"CloudOwner_pod01\",\"internalHeaderFields\":{\"collectorTimeStamp\":\"Tue, 09 18 2018 01:19:31 GMT\"},\"eventType\":\"\",\"priority\":\"Normal\",\"version\":3,\"reportingEntityName\":\"CloudOwner_pod01\",\"sequence\":1,\"domain\":\"fault\",\"lastEpochMicrosec\":1537233570150714,\"eventName\":\"Fault_MultiCloud_VMFailureCleared\",\"sourceName\":\"zdfw1lb01dns01\"},\"faultFields\":{\"eventSeverity\":\"NORMAL\",\"alarmCondition\":\"Vm_Restart\",\"faultFieldsVersion\":2,\"specificProblem\":\"Fault_MultiCloud_VMFailure\",\"alarmInterfaceA\":\"aaaa\",\"alarmAdditionalInformation\":[{\"name\":\"objectType\",\"value\":\"VIM\"},{\"name\":\"eventTime\",\"value\":\"2018-09-18 01:19:30.150736\"}],\"eventSourceType\":\"virtualMachine\",\"vfStatus\":\"Active\"}}}"\r
+\r
+    ]\r