Starting and Monitoring the Deployment
There is a POSTMAN collection that is used for sending calls to the commissioning and instantiation API. It should be present in the tosca-poc-nordix branch here: "tosca-controlloop/common/src/test/resources/demo/config/DEMO.postman_collection.json". Is is also provided here for convenience: DEMO.postman_collection.json. This collection should be imported into your local POSTMAN. Once that is done, we should able to start issuing calls to the running components.
First, we send the Tosca service template to the commissioning API. Find the below query in the POSTMAN collection and send. The response should be a 200OK.
![](/download/attachments/100895810/image2021-4-22_13-37-26.png?version=1&modificationDate=1619095047000&api=v2)
Next, we can make a call to create an instantiation of the control loop and elements. A successful call will mean that we are ready to move the loops and elements into the PASSIVE state. Find the blow query in the POSTMAN collection and send.
![](/download/attachments/100895810/image2021-4-22_13-41-16.png?version=1&modificationDate=1619095277000&api=v2)
This again should return a 200OK from the instantiation API. Before you move the control loop into the PASSIVE state, you can look at the result of the GET instantiation call provided in the collection. The output should be something like the below:
Code Block |
---|
language | js |
---|
title | Control Loops Unitialized |
---|
collapse | true |
---|
|
{
"controlLoopList": [
{
"definition": {
"name": "org.onap.domain.pmsh.PMSHControlLoopDefinition",
"version": "1.2.3"
},
"state": "UNINITIALISED",
"orderedState": "UNINITIALISED",
"elements": {
"709c62b3-8918-41b9-a747-d21eb79c6c22": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
"version": "2.3.1"
},
"participantId": {
"name": "NULL",
"version": "0.0.0"
},
"state": "UNINITIALISED",
"orderedState": "UNINITIALISED",
"description": "Operational Policy Control Loop Element for the PMSH instance 0 control loop"
},
"709c62b3-8918-41b9-a747-d21eb79c6c21": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
"version": "2.3.1"
},
"participantId": {
"name": "NULL",
"version": "0.0.0"
},
"state": "UNINITIALISED",
"orderedState": "UNINITIALISED",
"description": "Monitoring Policy Control Loop Element for the PMSH instance 0 control loop"
},
"709c62b3-8918-41b9-a747-d21eb79c6c20": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c20",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_DCAEMicroservice",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
"version": "2.3.4"
},
"participantId": {
"name": "NULL",
"version": "0.0.0"
},
"state": "UNINITIALISED",
"orderedState": "UNINITIALISED",
"description": "DCAE Control Loop Element for the PMSH instance 0 control loop"
}
},
"name": "PMSHInstance0",
"version": "1.0.1",
"description": "PMSH control loop instance 0"
}
]
} |
We can see from the output that the control loop elements are in UNINITIALISED state. At this stage, we should look at the Angular UI to see the status of the control loop and elements reflected. Example below. At this stage the loop and elements are grey, which indicates an UNITIALISED state. Again, we can navigate to http://localhost:4200 on our custom google chrome window to get this.
![](/download/attachments/100895810/image2021-4-23_12-48-28.png?version=1&modificationDate=1619178509000&api=v2)
To trigger deployment of our PMSH instance, we need to set the control loop elements into the PASSIVE state. Find the PUT call below in the POSTMAN collection and send. Make sure to set the state in the body of the request to PASSIVE.
![](/download/attachments/100895810/image2021-4-22_13-43-8.png?version=1&modificationDate=1619095389000&api=v2)
This call should return a 202 Accepted status. Once this call is made, we can make a GET call to the Instantiation endpoint to see the instantiated control loops. This call is included in the POSTMAN collection. If everything worked correctly, the states should be in passive and we should see the PMSH instance start to come up on the Kubernetes cluster. Lets look at the get:
Code Block |
---|
language | js |
---|
title | Control Loop Elements Moved to PASSIVE state |
---|
collapse | true |
---|
|
{
"controlLoopList": [
{
"definition": {
"name": "org.onap.domain.pmsh.PMSHControlLoopDefinition",
"version": "1.2.3"
},
"state": "UNINITIALISED2PASSIVE",
"orderedState": "PASSIVE",
"elements": {
"709c62b3-8918-41b9-a747-d21eb79c6c22": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
"version": "2.3.1"
},
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"state": "PASSIVE",
"orderedState": "PASSIVE",
"description": "Operational Policy Control Loop Element for the PMSH instance 0 control loop"
},
"709c62b3-8918-41b9-a747-d21eb79c6c21": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
"version": "2.3.1"
},
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"state": "PASSIVE",
"orderedState": "PASSIVE",
"description": "Monitoring Policy Control Loop Element for the PMSH instance 0 control loop"
},
"709c62b3-8918-41b9-a747-d21eb79c6c20": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c20",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_DCAEMicroservice",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
"version": "2.3.4"
},
"participantId": {
"name": "NULL",
"version": "0.0.0"
},
"state": "UNINITIALISED",
"orderedState": "PASSIVE",
"description": "DCAE Control Loop Element for the PMSH instance 0 control loop"
}
},
"name": "PMSHInstance0",
"version": "1.0.1",
"description": "PMSH control loop instance 0"
}
]
} |
If we look at each of the elements, we can see that the "state" and "orderedState" have been moved in to PASSIVE. All except for the DCAE element, which has state="UNINITIALISED" and orderedState="PASSIVE". That is because it takes time for the PMSH service to come up and report back that it has come up. We can check on the Kubernetes cluster to see how the install is progressing.
![](/download/attachments/100895810/image2021-4-22_15-0-11.png?version=1&modificationDate=1619100012000&api=v2)
Then, we will see this change if we take a look at the GET instantiation call.
Code Block |
---|
language | js |
---|
title | PASSIVE Control Loop |
---|
collapse | true |
---|
|
{
"controlLoopList": [
{
"definition": {
"name": "org.onap.domain.pmsh.PMSHControlLoopDefinition",
"version": "1.2.3"
},
"state": "PASSIVE",
"orderedState": "PASSIVE",
"elements": {
"709c62b3-8918-41b9-a747-d21eb79c6c22": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
"version": "2.3.1"
},
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"state": "PASSIVE",
"orderedState": "PASSIVE",
"description": "Operational Policy Control Loop Element for the PMSH instance 0 control loop"
},
"709c62b3-8918-41b9-a747-d21eb79c6c21": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.policy.controlloop.PolicyControlLoopParticipant",
"version": "2.3.1"
},
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"state": "PASSIVE",
"orderedState": "PASSIVE",
"description": "Monitoring Policy Control Loop Element for the PMSH instance 0 control loop"
},
"709c62b3-8918-41b9-a747-d21eb79c6c20": {
"id": "709c62b3-8918-41b9-a747-d21eb79c6c20",
"definition": {
"name": "org.onap.domain.pmsh.PMSH_DCAEMicroservice",
"version": "1.2.3"
},
"participantType": {
"name": "org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant",
"version": "2.3.4"
},
"participantId": {
"name": "DCAEParticipant0",
"version": "1.0.0"
},
"state": "PASSIVE",
"orderedState": "PASSIVE",
"description": "DCAE Control Loop Element for the PMSH instance 0 control loop"
}
},
"name": "PMSHInstance0",
"version": "1.0.1",
"description": "PMSH control loop instance 0"
}
]
} |
Also notice that the control loop itself is gone to PASSIVE state, because all of its elements are in PASSIVE state. Once again, we can see these changes reflected in the Angular UI. The yellow state means PASSIVE.
![](/download/attachments/100895810/image2021-4-23_12-53-37.png?version=1&modificationDate=1619178818000&api=v2)
We can also set the state of the loop and elements into state RUNNING in a similar way to before.
Image Removed
Make sure to include the "orderedState": "RUNNING" in the body of the request and then send. This should change all of the states into RUNNING, which should be reflected in the UI as below.
Image Removed
Also, it is possible to retrieve statistics about the different control loop elements using the monitoring API. An example call for our instantiation is provided below.
![](/download/attachments/100895810/image2021-4-23_12-59-47.png?version=1&modificationDate=1619179188000&api=v2)
This should return JSON of a "clElementStatistics" array. An example is provided below.
Code Block |
---|
language | js |
---|
title | clElementStatistics Example |
---|
collapse | true |
---|
|
{
"clElementStatistics": [
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:51:18.026Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
},
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:51:19.779Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
},
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c22",
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:51:20.439Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
},
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:51:18.026Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
},
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:51:19.779Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
},
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c21",
"participantId": {
"name": "org.onap.PM_Policy",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:51:20.439Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
},
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c20",
"participantId": {
"name": "DCAEParticipant0",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:52:32.861Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
},
{
"id": "709c62b3-8918-41b9-a747-d21eb79c6c20",
"participantId": {
"name": "DCAEParticipant0",
"version": "1.0.0"
},
"timeStamp": "2021-04-23T11:52:32.895Z",
"controlLoopState": "PASSIVE",
"clElementUptime": 0
}
]
} |
These statistics can also be accessed in the UI by clicking on an individual control loop element.
Image Added
We can use POSTMAN to set the state of the loop and elements into state RUNNING in a similar way to before.
Image Added
Make sure to include the "orderedState": "RUNNING" in the body of the request and then send. This should change all of the states into RUNNING, which should be reflected in the UI as below.
Image Added