Updated vDNS documentation
[policy/engine.git] / docs / platform / clsimulation.rst
1
2 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
3 .. http://creativecommons.org/licenses/by/4.0
4
5 **********************************************************
6 Control Loop Simulation and Injection of Messages Overview 
7 **********************************************************
8
9 .. contents::
10     :depth: 3
11
12 Telemetry
13 ^^^^^^^^^
14 The username and password for the Telemetry commands are in *${POLCIY_HOME}/config/policy-engine.properties*.
15
16 Injecting messages:
17 -------------------
18
19 To inject messages use the following command.  The injected message will look as if it came in from the specified topic and will be processed accordingly.
20
21 Use the command:
22
23     .. code-block:: bash
24
25         http --verify=no --default-scheme=https -a <userName>:<password> PUT :9696/policy/pdp/engine/topics/sources/ueb/<topic>/events @<onsetFile> Content-Type:"text/plain"
26
27 Alternatively, this command could be used:
28
29     .. code-block:: bash
30
31         curl --insecure --silent --user <userName>:<password> -X PUT --header "Content-Type: text/plain" --data @<onsetFile> https://localhost:9696/policy/pdp/engine/topics/sources/ueb/<topic>/events
32
33 The topic being used is *unauthenticated.DCAE_CL_OUTPUT*, which is subject to change.  The onset file is a file that contains the data to inject as the onset.  The data contained depends on the use case. This is an example for VoLTE:
34
35     .. code-block:: json
36        :caption: VoLTE_Sample_Onset
37
38         {
39             "closedLoopControlName": "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b",
40             "closedLoopAlarmStart": 1484677482204798,
41             "closedLoopEventClient": "DCAE.HolmesInstance",
42             "closedLoopEventStatus": "ONSET",
43             "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
44             "target_type": "VM",
45             "target": "vserver.vserver-name",
46             "AAI": {
47                 "vserver.is-closed-loop-disabled": "false",
48                 "vserver.vserver-name": "dfw1lb01lb01",
49                 "service-instance.service-instance-id" : "vserver-name-16102016-aai3255-data-11-1",
50                 "generic-vnf.vnf-id" : "vnf-id-16102016-aai3255-data-11-1",
51                 "generic-vnf.vnf-name" : "vnf-name-16102016-aai3255-data-11-1"
52             },
53             "from": "DCAE",
54             "version": "1.0.2"
55         }
56
57 Getting Information 
58 -------------------
59
60 To get the name of the active controller(s), use:
61
62     .. code-block:: bash
63
64         curl --insecure --silent --user <username>:<password> -X GET https://localhost:9696/policy/pdp/engine/controllers | python -m json.tool
65
66 To check the facts currently in memory, use the following command.  There should be 1 each of org.onap.policy.controlloop.PapParams and org.onap.policy.controlloop.Params per policy pushed.
67
68     .. code-block:: bash
69
70         curl --insecure --silent --user <username>:<password> -X GET https://localhost:9696/policy/pdp/engine/controllers/<controllerName>/drools/facts/<artifactId> | python -m json.tool
71
72 To get additional information about the controller, use:
73
74     .. code-block:: bash
75
76         curl --insecure --silent --user <username>:<password> -X GET https://localhost:9696/policy/pdp/engine/controllers/<controllerName> | python -m json.tool
77
78
79 Simulators
80 ^^^^^^^^^^
81
82 Currently, there are 4 supported simulators: A&AI, SO, vFC, and guard.  When they are up, they are accessed via localhost on the following ports: A&AI – 6666, SO – 6667, vFC – 6668, and guard – 6669.  They all respond with hard-coded values representing their various success messages except for with certain inputs.  For the A&AI simulator, if the value being queried with a “GET” query is “getFail” the simulator returns an exception message, if the value being queried in a “GET” query is “disableClosedLoop” the simulator returns a response with the value of “is-closed-loop-disabled” set to true, and if the value being queried in a named query is “error” the response from the simulator is A&AI’s failure message.  The other simulator that can return multiple response is the guard simulator, and that returns a deny response if the closed loop control name passed in is “denyGuard” 
83
84 Using the Simulators
85 --------------------
86
87 To check the status of the simulators, run the command: "*features status*".  If the feature controlloop-utils is enabled, the simulators are being used, otherwise, they are not.
88
89 **Turning on the simulators**
90
91     - First, make sure the controller is off by running the command “*policy stop*”. 
92     - Then turn the feature on with the command “*features enable controlloop-utils*”.  
93     - Finally restart the controller by running “*policy start*”.  
94     - Run “*features status*” again and the *feature controlloop-utils* will be **enabled**.
95
96 **Turning the simulators off**
97
98     - First, make sure the controller is off by running the command “*policy stop*”. 
99     - Then turn the feature off with the command “*features disable controlloop-utils*”.
100     - Finally restart the controller by running “*policy start*”.  
101     - Run “*features status*” again and the *feature controlloop-utils* will be **disabled**.
102
103 **For Junits**
104
105     For Junits, the package *org.onap.policy.simulators* is neeeded.  In the Util class, there are four methods to start the four different simulators: *buildAaiSim()*, *buildSoSim()*, *buildVfcSim()*, and *buildGuardSim()*.  Once the method is called, the simulator should be up and waiting to respond to requests.  To bring down the simulators, call *HttpServletServer.factory.destroy()*.
106
107 Responses
108 ---------
109
110 **A&AI**
111
112     .. code-block:: bash
113        :caption: vnf-GET-response
114
115         {
116          "vnf-id": vnfId, //vnfId will be the vnfId you query on.  If you query on a vnfName, the id will be "error" if the name is "error", "5e49ca06-2972-4532-9ed4-6d071588d792" otherwise
117          "vnf-name": vnfName, //vnfName will be the vnfName you query on.  If you query on a vnfId, the name will be "USUCP0PCOIL0110UJRT01"
118          "vnf-type": "RT",
119          "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
120          "equipment-role": "UCPE",
121          "orchestration-status": "created",
122          "management-option": "ATT",
123          "ipv4-oam-address": "32.40.68.35",
124          "ipv4-loopback0-address": "32.40.64.57",
125          "nm-lan-v6-address": "2001:1890:e00e:fffe::1345",
126          "management-v6-address": "2001:1890:e00e:fffd::36",
127          "in-maint": false,
128          "prov-status":"ACTIVE",
129          "is-closed-loop-disabled": isDisabled, //isDisabled will be true if the vnf name/Id you query on is disableClosedLoop, false otherwise
130          "resource-version": "1493389458092",
131          "relationship-list": {
132           "relationship": [{
133            "related-to": "service-instance",
134            "related-link": "/aai/v11/business/customers/customer/1610_Func_Global_20160817084727/service-subscriptions/service-subscription/uCPE-VMS/service-instances/service-instance/USUCP0PCOIL0110UJZZ01",
135            "relationship-data": [{
136             "relationship-key": "customer.global-customer-id",
137             "relationship-value": "1610_Func_Global_20160817084727"
138            }, {
139             "relationship-key": "service-subscription.service-type",
140             "relationship-value": "uCPE-VMS"
141            }, {
142             "relationship-key": "service-instance.service-instance-id",
143             "relationship-value": "USUCP0PCOIL0110UJZZ01"
144            }],
145            "related-to-property": [{
146             "property-key": "service-instance.service-instance-name"
147            }]
148           }, {
149            "related-to": "vserver",
150            "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/USUCP0PCOIL0110UJZZ01%3A%3AuCPE-VMS/vservers/vserver/3b2558f4-39d8-40e7-bfc7-30660fb52c45",
151            "relationship-data": [{
152             "relationship-key": "cloud-region.cloud-owner",
153             "relationship-value": "att-aic"
154            }, {
155             "relationship-key": "cloud-region.cloud-region-id",
156             "relationship-value": "AAIAIC25"
157            }, {
158             "relationship-key": "tenant.tenant-id",
159             "relationship-value": "USUCP0PCOIL0110UJZZ01::uCPE-VMS"
160            }, {
161             "relationship-key": "vserver.vserver-id",
162             "relationship-value": "3b2558f4-39d8-40e7-bfc7-30660fb52c45"
163            }],
164            "related-to-property": [{
165             "property-key": "vserver.vserver-name",
166             "property-value": "USUCP0PCOIL0110UJZZ01-vsrx"
167            }]
168           }]
169          }
170
171
172     .. code-block:: bash
173        :caption: vnf-GET-fail
174
175         //This is returned if you query on the value "getFail"
176         {
177          "requestError": {
178           "serviceException": {
179            "messageId": "SVC3001",
180            "text": "Resource not found for %1 using id %2 (msg=%3) (ec=%4)",
181            "variables": ["GET", "network/generic-vnfs/generic-vnf/getFail", "Node Not Found:No Node of type generic-vnf found at network/generic-vnfs/generic-vnf/getFail", "ERR.5.4.6114"]
182           }
183          }
184         }
185
186
187     .. code-block:: bash
188        :caption: vserver-GET-response
189
190         {
191          "vserver": [{
192           "vserver-id": "d0668d4f-c25e-4a1b-87c4-83845c01efd8",
193           "vserver-name": vserverName, // The value you query on
194           "vserver-name2": "vjunos0",
195           "vserver-selflink": "https://aai-ext1.test.att.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/USMSO1SX7NJ0103UJZZ01%3A%3AuCPE-VMS/vservers/vserver/d0668d4f-c25e-4a1b-87c4-83845c01efd8",
196           "in-maint": false,
197           "prov-status":"ACTIVE",
198           "is-closed-loop-disabled": isDisabled, // True if the vserverName is "disableClosedLoop", false otherwise
199           "resource-version": "1494001931513",
200           "relationship-list": {
201            "relationship": [{
202             "related-to": "generic-vnf",
203             "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/e1a41e99-4ede-409a-8f9d-b5e12984203a",
204             "relationship-data": [{
205              "relationship-key": "generic-vnf.vnf-id",
206              "relationship-value": "e1a41e99-4ede-409a-8f9d-b5e12984203a"
207             }],
208             "related-to-property": [{
209              "property-key": "generic-vnf.vnf-name",
210              "property-value": "USMSO1SX7NJ0103UJSW01"
211             }]
212            }, {
213             "related-to": "pserver",
214             "related-link": "/aai/v11/cloud-infrastructure/pservers/pserver/USMSO1SX7NJ0103UJZZ01",
215             "relationship-data": [{
216              "relationship-key": "pserver.hostname",
217              "relationship-value": "USMSO1SX7NJ0103UJZZ01"
218             }],
219             "related-to-property": [{
220              "property-key": "pserver.pserver-name2"
221             }]
222            }]
223           }
224          }]
225         }
226         
227
228     .. code-block:: bash
229        :caption: vserver-GET-error
230
231         //This is returned if you query on the value "getFail"
232         {
233          "requestError": {
234           "serviceException": {
235            "messageId": "SVC3001",
236            "text": "Resource not found for %1 using id %2 (msg=%3) (ec=%4)",
237            "variables": ["GET", "nodes/vservers", "Node Not Found:No Node of type generic-vnf found at nodes/vservers", "ERR.5.4.6114"]
238           }
239          }
240         }
241
242
243     .. code-block:: bash
244        :caption: vnf-NamedQuery-response
245
246         {
247           "inventory-response-item": [
248             {
249               "model-name": "service-instance",
250               "generic-vnf": {
251                 "vnf-id": "vnfId",  //vnfId will be the vnfId you query on
252                 "vnf-name": "ZRDM2MMEX39",
253                 "vnf-type": "vMME Svc Jul 14/vMME VF Jul 14 1",
254                 "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
255                 "prov-status": "ACTIVE",
256                 "in-maint": false,
257                 "is-closed-loop-disabled": false,
258                 "resource-version": "1503082370097",
259                 "model-invariant-id": "82194af1-3c2c-485a-8f44-420e22a9eaa4",
260                 "model-version-id": "46b92144-923a-4d20-b85a-3cbd847668a9"
261               },
262               "extra-properties": {
263                 "extra-property": []
264               },
265               "inventory-response-items": {
266                 "inventory-response-item": [
267                   {
268                     "model-name": "service-instance",
269                     "service-instance": {
270                       "service-instance-id": "37b8cdb7-94eb-468f-a0c2-4e3c3546578e",
271                       "service-instance-name": "Changed Service Instance NAME",
272                       "resource-version": "1503082993532",
273                       "model-invariant-id": "82194af1-3c2c-485a-8f44-420e22a9eaa4",
274                       "model-version-id": "46b92144-923a-4d20-b85a-3cbd847668a9"
275                     },
276                     "extra-properties": {
277                       "extra-property": []
278                     },
279                     "inventory-response-items": {
280                       "inventory-response-item": [
281                         {
282                           "model-name": "pnf",
283                           "generic-vnf": {
284                             "vnf-id": "pnfVnfId",   // pnfVnfId is UUID generated from ${pnfVnfName}
285                             "vnf-name": "pnfVnfName",   // pnfVnfName is pnf-test-${vnfId}
286                             "vnf-type": "vMME Svc Jul 14/vMME VF Jul 14 1",
287                             "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
288                             "in-maint": false,
289                             "is-closed-loop-disabled": false,
290                             "resource-version": "1504013830207",
291                             "model-invariant-id": "862b25a1-262a-4961-bdaa-cdc55d69785a",
292                             "model-version-id": "e9f1fa7d-c839-418a-9601-03dc0d2ad687"
293                           },
294                           "extra-properties": {
295                             "extra-property": []
296                           }
297                         },
298                         {
299                           "model-name": "service-instance",
300                           "generic-vnf": {
301                             "vnf-id": "serviceInstanceVnfId",   // serviceInstanceVnfId is UUID generated from ${serviceInstanceVnfName}
302                             "vnf-name": "serviceInstanceVnfName",   // serviceInstanceVnfName is service-instance-test-${vnfId}
303                             "vnf-type": "vMME Svc Jul 14/vMME VF Jul 14 1",
304                             "service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
305                             "in-maint": false,
306                             "is-closed-loop-disabled": false,
307                             "resource-version": "1504014833841",
308                             "model-invariant-id": "Eace933104d443b496b8.nodes.heat.vpg",
309                             "model-version-id": "46b92144-923a-4d20-b85a-3cbd847668a9"
310                           },
311                           "extra-properties": {
312                             "extra-property": []
313                           }
314                         }
315                       ]
316                     }
317                   }
318                 ]
319               }
320             }
321           ]
322         }
323
324
325     .. code-block:: bash
326        :caption: vserver-NamedQuery-response
327
328         {
329           "inventory-response-item": [
330             {
331               "vserver": {
332                 "vserver-id": "6ed3642c-f7a1-4a7c-9290-3d51fe1531eb",
333                 "vserver-name": "zdfw1lb01lb02",
334                 "vserver-name2": "zdfw1lb01lb02",
335                 "prov-status": "ACTIVE",
336                 "vserver-selflink": "http://10.12.25.2:8774/v2.1/41d6d38489bd40b09ea8a6b6b852dcbd/servers/6ed3642c-f7a1-4a7c-9290-3d51fe1531eb",
337                 "in-maint": false,
338                 "is-closed-loop-disabled": false,
339                 "resource-version": "1510606403522"
340               },
341               "extra-properties": {
342                 "extra-property": []
343               },
344               "inventory-response-items": {
345                 "inventory-response-item": [
346                   {
347                     "model-name": "vLoadBalancer",
348                     "generic-vnf": {
349                       "vnf-id": "db373a8d-f7be-4d02-8ac8-6ca4c305d144",
350                       "vnf-name": "Vfmodule_vLB1113",
351                       "vnf-type": "vLoadBalancer-1106/vLoadBalancer 0",
352                       "service-id": "66f157fc-4148-4880-95f5-e120677e98d1",
353                       "prov-status": "PREPROV",
354                       "in-maint": false,
355                       "is-closed-loop-disabled": false,
356                       "resource-version": "1510604011851",
357                       "model-invariant-id": "cee050ed-92a5-494f-ab04-234307a846dc",
358                       "model-version-id": "fd65becc-6b2c-4fe8-ace9-cc29db9a3da2"
359                     },
360                     "extra-properties": {
361                       "extra-property": [
362                         {
363                           "property-name": "model-ver.model-version-id",
364                           "property-value": "fd65becc-6b2c-4fe8-ace9-cc29db9a3da2"
365                         },
366                         {
367                           "property-name": "model-ver.model-name",
368                           "property-value": "vLoadBalancer"
369                         },
370                         {
371                           "property-name": "model.model-type",
372                           "property-value": "resource"
373                         },
374                         {
375                           "property-name": "model.model-invariant-id",
376                           "property-value": "cee050ed-92a5-494f-ab04-234307a846dc"
377                         },
378                         {
379                           "property-name": "model-ver.model-version",
380                           "property-value": "1.0"
381                         }
382                       ]
383                     },
384                     "inventory-response-items": {
385                       "inventory-response-item": [
386                         {
387                           "model-name": "vLoadBalancer-1106",
388                           "service-instance": {
389                             "service-instance-id": "3b12f31f-8f2d-4f5c-b875-61ff1194b941",
390                             "service-instance-name": "vLoadBalancer-1113",
391                             "resource-version": "1510603936425",
392                             "model-invariant-id": "1321d60d-f7ff-4300-96c2-6bf0b3268b7a",
393                             "model-version-id": "732d4692-4b97-46f9-a996-0b3339e88c50"
394                           },
395                           "extra-properties": {
396                             "extra-property": [
397                               {
398                                 "property-name": "model-ver.model-version-id",
399                                 "property-value": "732d4692-4b97-46f9-a996-0b3339e88c50"
400                               },
401                               {
402                                 "property-name": "model-ver.model-name",
403                                 "property-value": "vLoadBalancer-1106"
404                               },
405                               {
406                                 "property-name": "model.model-type",
407                                 "property-value": "service"
408                               },
409                               {
410                                 "property-name": "model.model-invariant-id",
411                                 "property-value": "1321d60d-f7ff-4300-96c2-6bf0b3268b7a"
412                               },
413                               {
414                                 "property-name": "model-ver.model-version",
415                                 "property-value": "1.0"
416                               }
417                             ]
418                           }
419                         },
420                         {
421                           "model-name": "Vloadbalancer..base_vlb..module-0",
422                           "vf-module": {
423                             "vf-module-id": "e6b3e3eb-34e1-4c00-b8c1-2a4fbe479b12",
424                             "vf-module-name": "Vfmodule_vLB1113-1",
425                             "heat-stack-id": "Vfmodule_vLB1113-1/3dd6d900-772f-4fcc-a0cb-e250ab2bb4db",
426                             "orchestration-status": "active",
427                             "is-base-vf-module": true,
428                             "resource-version": "1510604612557",
429                             "model-invariant-id": "6d760188-9a24-451a-b05b-e08b86cb94f2",
430                             "model-version-id": "93facad9-55f2-4fe0-9574-814c2bc2d071"
431                           },
432                           "extra-properties": {
433                             "extra-property": [
434                               {
435                                 "property-name": "model-ver.model-version-id",
436                                 "property-value": "93facad9-55f2-4fe0-9574-814c2bc2d071"
437                               },
438                               {
439                                 "property-name": "model-ver.model-name",
440                                 "property-value": "Vloadbalancer..base_vlb..module-0"
441                               },
442                               {
443                                 "property-name": "model.model-type",
444                                 "property-value": "resource"
445                               },
446                               {
447                                 "property-name": "model.model-invariant-id",
448                                 "property-value": "6d760188-9a24-451a-b05b-e08b86cb94f2"
449                               },
450                               {
451                                 "property-name": "model-ver.model-version",
452                                 "property-value": "1"
453                               }
454                             ]
455                           }
456                         },
457                         {
458                           "model-name": "Vloadbalancer..dnsscaling..module-1",
459                           "vf-module": {
460                             "vf-module-id": "dummy_db373a8d-f7be-4d02-8ac8-6ca4c305d144",
461                             "vf-module-name": "dummy_db373a8d-f7be-4d02-8ac8-6ca4c305d144",
462                             "is-base-vf-module": false,
463                             "resource-version": "1510610079687",
464                             "model-invariant-id": "356a1cff-71f2-4086-9980-a2927ce11c1c",
465                             "model-version-id": "6b93d804-cfc8-4be3-92cc-9336d135859a"
466                           },
467                           "extra-properties": {
468                             "extra-property": [
469                               {
470                                 "property-name": "model-ver.model-version-id",
471                                 "property-value": "6b93d804-cfc8-4be3-92cc-9336d135859a"
472                               },
473                               {
474                                 "property-name": "model-ver.model-name",
475                                 "property-value": "Vloadbalancer..dnsscaling..module-1"
476                               },
477                               {
478                                 "property-name": "model.model-type",
479                                 "property-value": "resource"
480                               },
481                               {
482                                 "property-name": "model.model-invariant-id",
483                                 "property-value": "356a1cff-71f2-4086-9980-a2927ce11c1c"
484                               },
485                               {
486                                 "property-name": "model-ver.model-version",
487                                 "property-value": "1"
488                               }
489                             ]
490                           }
491                         },
492                         {
493                           "model-name": "Vloadbalancer..dnsscaling..module-1",
494                           "vf-module": {
495                             "vf-module-id": "my_module_db373a8d-f7be-4d02-8ac8-6ca4c305d144",
496                             "vf-module-name": "my_module_1",
497                             "is-base-vf-module": false,
498                             "resource-version": "1510610079687",
499                             "model-invariant-id": "356a1cff-71f2-4086-9980-a2927ce11c1c",
500                             "model-version-id": "6b93d804-cfc8-4be3-92cc-9336d135859a"
501                           },
502                           "extra-properties": {
503                             "extra-property": [
504                               {
505                                 "property-name": "model-ver.model-version-id",
506                                 "property-value": "6b93d804-cfc8-4be3-92cc-9336d135859a"
507                               },
508                               {
509                                 "property-name": "model-ver.model-name",
510                                 "property-value": "Vloadbalancer..dnsscaling..module-1"
511                               },
512                               {
513                                 "property-name": "model.model-type",
514                                 "property-value": "resource"
515                               },
516                               {
517                                 "property-name": "model.model-invariant-id",
518                                 "property-value": "356a1cff-71f2-4086-9980-a2927ce11c1c"
519                               },
520                               {
521                                 "property-name": "model-ver.model-version",
522                                 "property-value": "1"
523                               }
524                             ]
525                           }
526                         },
527                         {
528                           "model-name": "Vloadbalancer..dnsscaling..module-1",
529                           "vf-module": {
530                             "vf-module-id": "my_module_db373a8d-f7be-4d02-8ac8-6ca4c305d144",
531                             "vf-module-name": "my_module_2",
532                             "is-base-vf-module": false,
533                             "resource-version": "1510610079687",
534                             "model-invariant-id": "356a1cff-71f2-4086-9980-a2927ce11c1c",
535                             "model-version-id": "6b93d804-cfc8-4be3-92cc-9336d135859a"
536                           },
537                           "extra-properties": {
538                             "extra-property": [
539                               {
540                                 "property-name": "model-ver.model-version-id",
541                                 "property-value": "6b93d804-cfc8-4be3-92cc-9336d135859a"
542                               },
543                               {
544                                 "property-name": "model-ver.model-name",
545                                 "property-value": "Vloadbalancer..dnsscaling..module-1"
546                               },
547                               {
548                                 "property-name": "model.model-type",
549                                 "property-value": "resource"
550                               },
551                               {
552                                 "property-name": "model.model-invariant-id",
553                                 "property-value": "356a1cff-71f2-4086-9980-a2927ce11c1c"
554                               },
555                               {
556                                 "property-name": "model-ver.model-version",
557                                 "property-value": "1"
558                               }
559                             ]
560                           }
561                         }
562                       ]
563                     }
564                   },
565                   {
566                     "tenant": {
567                       "tenant-id": "41d6d38489bd40b09ea8a6b6b852dcbd",
568                       "tenant-name": "Integration-SB-00",
569                       "resource-version": "1509587770200"
570                     },
571                     "extra-properties": {
572                       "extra-property": []
573                     },
574                     "inventory-response-items": {
575                       "inventory-response-item": [
576                         {
577                           "cloud-region": {
578                             "cloud-owner": "CloudOwner",
579                             "cloud-region-id": "RegionOne",
580                             "cloud-region-version": "v1",
581                             "resource-version": "1509587770092"
582                           },
583                           "extra-properties": {
584                             "extra-property": []
585                           }
586                         }
587                       ]
588                     }
589                   }
590                 ]
591               }
592             }
593           ]
594         }
595         
596
597     .. code-block:: bash
598        :caption: NamedQuery-error
599
600         // This is returned if you query the value "error"
601         {
602          "requestError": {
603           "serviceException": {
604            "messageId": "SVC3001",
605            "text": "Resource not found for %1 using id %2 (msg=%3) (ec=%4)",
606            "variables": ["POST Search", "getNamedQueryResponse", "Node Not Found:No Node of type generic-vnf found for properties", "ERR.5.4.6114"]
607           }
608          }
609         }
610
611
612 **SO**
613
614     .. code-block:: bash
615        :caption: SO-response
616
617         {
618          "requestReferences": {
619           "requestId":"3e074e0e-5468-48f2-9226-51039d30fe5d"    // randomly generated UUID
620           },
621           "request": {
622            "requestId":"a8f58372-aab2-45b8-9d36-c7a42e701c29",  // randomly generated UUID
623            "requestStatus": {
624             "percentProgress":0,
625             "requestState":"COMPLETE",
626             "wasRolledBack":false
627            }
628           }
629          }
630         }
631
632
633
634 **vFC**
635
636     .. code-block:: bash
637        :caption: vFC-POST-response
638
639         {
640          "jobId": "1"
641         }
642
643
644     .. code-block:: bash
645        :caption: vFC-GET-response
646
647         {
648          "jobId": jobId, //The jod id that you query
649          "responseDescriptor": {
650           "progress": "40",
651           "status": "finished",
652           "statusDescription": "OMC VMs are decommissioned in VIM",
653           "errorCode": null,
654           "responseId": 101,
655           "responseHistoryList": [{
656            "progress": "40",
657            "status": "proccessing",
658            "statusDescription": "OMC VMs are decommissioned in VIM",
659            "errorCode": null,
660            "responseId": "1"
661           }, {
662            "progress": "41",
663            "status": "proccessing",
664            "statusDescription": "OMC VMs are decommissioned in VIM",
665            "errorCode": null,
666            "responseId": "2"
667           }]
668          }
669         }
670
671
672 **GUARD**
673
674     .. code-block:: bash
675        :caption: permit-response
676
677         {
678          "decision": "PERMIT",
679          "details": "Decision Permit. OK!"
680         }
681
682
683     .. code-block:: bash
684        :caption: deny-response
685
686         //This is returned if the closed loop name is denyGuard
687         {
688          "decision": "DENY",
689          "details": "Decision Deny. You asked for it"
690         }
691
692
693 End of Document
694
695 .. SSNote: Wiki page ref.  https://wiki.onap.org/display/DW/Control+Loop+Simulation+and+Injection+of+Messages+Overview
696