aboutsummaryrefslogtreecommitdiffstats
path: root/docs/platform/tutorial_VOLTE.rst
blob: 3ccb027044b2ada8c0729eca381d159e180473ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

**********************************************************
Tutorial: Testing the VOLTE Use Case in a standalone PDP-D 
**********************************************************

.. contents::
    :depth: 3

In this tutorial we will go over how to access and start up the PDP-D, setup the prerequisites for the VOLTE flow, enable/disable the VFC Simulator that will be used in the VOLTE flow, and inject messages to trigger the VOLTE flow.

Accessing and starting the PDP-D
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

The first step is to access the docker container of name *drools*.

    .. code-block:: bash

        docker exec -it -u 0 drools su - policy

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.

Once within the drools container, the running status can be observed by using the *policy* command:

    .. code-block:: bash
    
        policy [--debug] status|start|stop
    
The running status of the PDP-D can be observed with *policy status*

    .. code-block:: bash
    
        policy@drools:~$ policy status [drools-pdp-controllers]  L []: Policy Management (pid 1500) is running  1 cron jobs installed.
    

Prerequisites for the VOLTE flow
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

In order to trigger the VOLTE 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 VOLTE ONSET message.

Navigate to */tmp* and create directory *util*.  *util* is just a temporary folder we've created to use as our 'workspace'.

    .. code-block:: bash
    
        cd /tmp
        mkdir util


Next, we're going to create a file named *dcae.volte.onset.json* and edit it to paste the VOLTE ONSET message contents.

    .. code-block:: bash
    
        touch dcae.volte.onset.json
        vi dcae.volte.onset.json

Here are the contents of the VOLTE ONSET message. Copy/paste this into dcae.volte.onset.json:

    .. code-block:: json
    
        {
            "closedLoopEventClient": "DCAE.HolmesInstance",
            "policyVersion": "1.0.0.5",
            "policyName": "vVOLTE",
            "policyScope": "resource=volte,service=VolteSErvice,type=SampleType,closedLoopControlName=CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
            "target_type": "VM",
            "AAI": {
                "vserver.vserver-name": "dfw1lb01lb01",
                "service-instance.service-instance-id" : "TBD",
                "generic-vnf.vnf-id" : "TBD",
                "generic-vnf.vnf-name" : "TBD"
            },
            "closedLoopAlarmStart": 1484677482204798,
            "closedLoopEventStatus": "ONSET",
            "closedLoopControlName": "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b",
            "version": "1.0.2",
            "target": "vserver.vserver-name",
            "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
            "from": "DCAE"
        }


Enabling the VFC Simulator
^^^^^^^^^^^^^^^^^^^^^^^^^^ 

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: 

    .. code-block:: bash
    
        policy stop
        features enable controlloop-utils
        policy start

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 VFC simulator.

Injecting an ONSET to trigger the VOLTE Flow
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

We are now ready to inject an ONSET message to trigger the VOLTE flow. Simply navigate back to the directory *dcae.volte.onset.json* file is saved (i.e. cd /tmp/util) and run this curl command:

    .. code-block:: bash
    
        http -a @1b3rt:31nst31n PUT :9696/policy/pdp/engine/topics/sources/ueb/unauthenticated.DCAE_CL_OUTPUT/events @dcae.volte.onset.json Content-Type:"text/plain"

You should see some output similar to this:

.. image:: tutorial_VOLTE_1.png

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*.

Reading the logs
^^^^^^^^^^^^^^^^

Once you've injected the onset message, this should appear in the network.log:

.. image:: tutorial_VOLTE_2.png


End of Document

.. SSNote: Wiki page ref. https://wiki.onap.org/display/DW/Tutorial%3A+Testing+the+VOLTE+Use+Case+in+a+standalone+PDP-D