Saryu Shah | 7c24c8a | 2017-11-08 21:20:04 +0000 | [diff] [blame] | 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 | Tutorial: Testing the vDNS Use Case in a standalone PDP-D |
| 7 | ********************************************************* |
| 8 | |
| 9 | .. contents:: |
| 10 | :depth: 3 |
| 11 | |
| 12 | In this tutorial we will go over how to access and start up the PDP-D, setup the prerequisites for the vDNS flow, enable/disable the AAI and SO Simulators that will be used in the vDNS flow, and inject messages to trigger the vDNS flow. |
| 13 | |
| 14 | Accessing and starting the PDP-D |
| 15 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 16 | |
| 17 | The first step is to access the docker container of name *drools*. |
| 18 | |
| 19 | .. code-block:: bash |
| 20 | |
| 21 | docker exec -it -u 0 drools su - policy |
| 22 | |
| 23 | The PDP-D software is installed under the *policy* account, the policy root directory is under *${POLICY_HOME}* environment variable and it may be changed on a per installation basis. It is typically set up under the */opt/app/policy* directory but can be changed during installation. All PDP-D software runs with non-root privileges as *policy* is a regular user account. |
| 24 | |
| 25 | Once within the drools container, the running status can be observed by using the *policy* command: |
| 26 | |
| 27 | .. code-block:: bash |
| 28 | |
| 29 | policy [--debug] status|start|stop |
| 30 | |
| 31 | The running status of the PDP-D can be observed with *policy status* |
| 32 | |
| 33 | .. code-block:: bash |
| 34 | |
| 35 | policy@drools:~$ policy status [drools-pdp-controllers] L []: Policy Management (pid 1500) is running 1 cron jobs installed. |
| 36 | |
| 37 | |
| 38 | Prerequisites for the vDNS flow |
| 39 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 40 | |
| 41 | In order to trigger the vDNS flow we will need to inject an ONSET message via curl command. We're going to create a temporary *util* directory to store a file that contains the vDNS ONSET message. |
| 42 | |
| 43 | Navigate to */tmp* and create directory *util*. *util* is just a temporary folder we've created to use as our 'workspace'. |
| 44 | |
| 45 | .. code-block:: bash |
| 46 | |
| 47 | cd /tmp |
| 48 | mkdir util |
| 49 | |
| 50 | |
| 51 | Next, we're going to create a file named *dcae.vdns.onset.json* and edit it to paste the vDNS ONSET message contents. |
| 52 | |
| 53 | .. code-block:: bash |
| 54 | |
| 55 | touch dcae.vdns.onset.json |
Saryu Shah | cbc6cd1 | 2017-11-08 23:13:31 +0000 | [diff] [blame] | 56 | vi dcae.vdns.onset.json |
Saryu Shah | 7c24c8a | 2017-11-08 21:20:04 +0000 | [diff] [blame] | 57 | |
| 58 | Here are the contents of the vDNS ONSET message. Copy/paste this into dcae.vdns.onset.json: |
| 59 | |
Saryu Shah | cbc6cd1 | 2017-11-08 23:13:31 +0000 | [diff] [blame] | 60 | .. code-block:: json |
Saryu Shah | 7c24c8a | 2017-11-08 21:20:04 +0000 | [diff] [blame] | 61 | |
Saryu Shah | cbc6cd1 | 2017-11-08 23:13:31 +0000 | [diff] [blame] | 62 | { "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca", |
| 63 | "target_type": "VNF", |
| 64 | "AAI": { |
| 65 | "vserver.vserver-name": "vlb-lb-32c8", |
| 66 | "vserver.is-closed-loop-disabled": "false" |
| 67 | }, |
| 68 | "closedLoopAlarmStart": 1484677482204798, |
| 69 | "closedLoopEventStatus": "ONSET", |
| 70 | "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3", |
| 71 | "version": "1.0.2", |
| 72 | "target": "vserver.vserver-name", |
| 73 | "requestID": "99999999-686e-4790-8c45-bdfa61df770f", |
| 74 | "from": "DCAE" |
| 75 | } |
Saryu Shah | 7c24c8a | 2017-11-08 21:20:04 +0000 | [diff] [blame] | 76 | |
| 77 | |
| 78 | Enabling the AAI and SO Simulators |
| 79 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 80 | |
| 81 | Enabling the *controlloop-utils* feature will enable the simulators. To do this, simply stop the drools pdp, enable the feature, and restart the drools pdp like so: |
| 82 | |
| 83 | .. code-block:: bash |
| 84 | |
| 85 | policy stop |
| 86 | features enable controlloop-utils |
| 87 | policy start |
| 88 | |
| 89 | Now, in */opt/app/policy/config/* directory, you should see a new properties file named *simulators.properties.environment*. In here you will find the credentials for the AAI and SO simulators. |
| 90 | |
| 91 | Injecting an ONSET to trigger the vDNS Flow |
| 92 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 93 | |
| 94 | We are now ready to inject an ONSET message to trigger the vDNS flow. Simply navigate back to the directory *dcae.vdns.onset.json* file is saved (i.e. cd /tmp/util) and run this curl command: |
| 95 | |
| 96 | .. code-block:: bash |
| 97 | |
| 98 | http -a @1b3rt:31nst31n PUT :9696/policy/pdp/engine/topics/sources/ueb/unauthenticated.DCAE_CL_OUTPUT/events @dcae.vdns.onset.json Content-Type:"text/plain" |
| 99 | |
| 100 | You should see some output similar to this: |
| 101 | |
| 102 | .. image:: tutorial_vDNS_1.png |
| 103 | |
| 104 | You can view the logs to see the network activity or find any errors that may have occurred. Logs are located in */opt/app/policy/logs*. |
| 105 | |
| 106 | Reading the logs |
| 107 | ^^^^^^^^^^^^^^^^ |
| 108 | |
| 109 | Once you've injected the onset message, this should appear in the network.log: |
| 110 | |
| 111 | .. image:: tutorial_vDNS_2.png |
| 112 | |
| 113 | |
| 114 | End of Document |
| 115 | |
| 116 | .. SSNote: Wiki page ref. https://wiki.onap.org/display/DW/Using+guard+in+the+PDP-D |