Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Test Case Id

Description

Pre-conditions

Test Steps

Expected Results

1

Perform   healthcheck for the Policy components using Healthcheck API

  •   Drools PDP
  •   XACML PDP
  •   PAP
  •   BRMSGateway
  • Policy docker image ready and policy   components (Drools, XACML, PAP, BRMS Gateway) should be up and running
  • Server and authentication details should   be configured at  $POLICY_HOME/config/feature-healthcheck.properties

API – healthcheck

Method - GET

Endpoint: http://<host>:8081/healthcheck

All the policy components should return health status as “true”

2

Create config Policy for the following use cases

  •   VoLTE
  •   vFW
  •   vDNS
  •   vCPE

 Policy components up and   running

API – CreateConfig

Method – PUT

Endpoint:

https://<host>:8081/Pdp/createPolicy

Config Policy should be created in Policy Engine (PAP)

3

Push Config policy to the PDP Engines for the following use   cases

  •   VoLTE
  •   vFW
  •   vDNS
  •   vCPE

 Policy components up and running

API - pushPolicy  

Method - PUT

Endpoint:

https:// <host>:8081/Pdp/pushPolicy

Config Policy should be pushed to the PDP group

4

Create Operational policy for the following use cases  

  •   VoLTE
  •   vFW
  •   vDNS
  •   vCPE

 Policy components up and running

API - createPolicy  

Method – PUT

Endpoint:

https://<host>:8081/Pdp/createPolicy

Operational Policy should be created in Policy Engine (PAP)

5

Push operational Policy to the PDP Engines for each use case

  •   VoLTE
  •   vFW
  •   vDNS
  •   vCPE

 Policy components up and running

API - pushPolicy  

Method - PUT

Endpoint:

https:// <host>:8081/Pdp/pushPolicy

Operational Policy should be pushed to the PDP group

6

Retrieve the configs for the following use cases

  •   VoLTE
  •   vFW
  •   vDNS
  •   vCPE

Policy components up and running

API – getConfig

Method – POST

Endpoint:

https://<host>:8081/Pdp/getConfig

Both Config and Operational Policies configured for each use   case should be retrieved successfully

7

Import/Load Use case template for the following use cases (VoLTE,   vCPE, vFW, vDNS)

 Policy components should   be up and running

API – policyEngineImport

Method – POST

Endpoint:

https://<host>:8081/pdp/policyEngineImport

Policy service models should be imported for the specified use   cases. We should be able to create policy from here.

8

Load the Drools Controller Configurations




9

Simulate DCAE Control loop event for each use case with higher   or lower threshold values

  •   VoLTE
  •   vFW
  •   vDNS
  •   vCPE
  • Policy components up and running
  • Simulator should be available

Invoke the Simulator API to trigger a DCAE control loop event

DCAE event should be triggered to Policy for each use case   depending on the threshold configured

10

Simulate APPC Response for Use Case VFW & vCPE

  • Policy components up and running
  • Simulator should be available

Invoke APPC simulator API with Policy data or Trigger a DCAE   control loop event for vFW/vCPE

Valid Response from AppC Simulator API

11

Simulate VF-C Response for Use Case VOLTE

  • Policy components up and running
  • Simulator should be available

Invoke VF-C simulator API with Policy data or Trigger a DCAE   control loop event for VOLTE

Valid Response from VF-C Simulator API

12

Simulate SO Response for VDNS

  • Policy components up and running
  • Simulator should be available

Invoke SO simulator API with Policy data or Trigger a DCAE   control loop event for vDNS

Valid Response from SO Simulator API

13

Simulate A&AI Response for VDNS

  • Policy components up and running
  • Simulator should be available

Invoke A&AI simulator API with Policy data or Trigger a DCAE   control loop event for vDNS

Valid Response from A&AI Simulator API

...


vFirewall Use Case

Code Block
titleDCAE Control Loop Event (TCA) - vFirewall
linenumberstrue
collapsetrue
{
            "closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
            "version": "1.0.2",
            "requestID": "0138afac-b032-4e4b-bd30-88260f444888",
            "closedLoopAlarmStart": 1478189220547,
            "closedLoopEventClient": "tca.instance00001",
            "target_type": "VNF",
            "target": "generic-vnf.vnf-id",
            "AAI": {
                        "generic-vnf.vnf-id" : "vpp-testVNF Load Balancer (?)"
#
# IF DCAE is making a call to A&AI, can it populate the service ID??
# It would potentially save one call for POLICY
#
            },
            "from": "DCAE",
            "policyScope": "resource=vFirewall;type=configuration",
            "policyName": "configuration.dcae.microservice.tca.xml",
            "policyVersion": "v0.0.1",
            "closedLoopEventStatus": "ONSET"
}
Code Block
*TODO Show the API call to A&AI


Policy is getting the event from the Load Balancer. but the API call MUST go to the vpg VNF.


In R0 previously Policy pattern/match replaced the name. But that will not work with the introduction of CLAMP and the use of Policy YAML to specify the policy.


Policy needs to look up the service and then the VNF ID in order to make the call to APPC.
Code Block
*TODO show the returned response from A&AI
Code Block
*TODO show the ModifyConfig API call to APPC
Code Block
*TODO show the APPC response messages


vDNS Use Case

Code Block
titleDCAE Control Loop Event (TCA) - vDNS
linenumberstrue
collapsetrue
{
                "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
                "policyVersion": "1.0.0.5",
                "policyName": "vLoadBalancer",
                "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
                "target_type": "VM",
                "AAI": {
                    "vserver.vserver-name": "dfw1lb01lb01"
                },
                "closedLoopAlarmStart": 1484677482204798,
                "closedLoopEventStatus": "ONSET",
                "closedLoopControlName": "CL-DNS-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                "version": "1.0.2",
                "target": "vserver.vserver-name",
                "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
                "from": "DCAE"
}
Code Block
*TODO Show the API call to A&AI


This is the NAMED QUERY used in R0
Code Block
*TODO show the returned response from A&AI
Code Block
*TODO show the API call to SO


This format should not have changed from R0
Code Block
*TODO show the SO API response message


VOLTE Use Case

Code Block
titleDCAE Control Loop Event (HOLMES) - VOLTE
linenumberstrue
collapsetrue
{
                "closedLoopEventClient": "DCAE.HolmesInstance",
                "policyVersion": "1.0.0.5",
                "policyName": "vVOLTE",
                "policyScope": "resource=volte,service=VolteSErvice,type=SampleType,closedLoopControlName=VolteControlLoopCL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                "target_type": "VM",
                "AAI": {
								# the value "dfw1lb01lb01" comes from VES sourceName field
                                "vserver.vserver-name": "dfw1lb01lb01",
#
# WE ARE TRYING TO DETERMINE IF HOLMES CAN POPULATE SOME OF THESE VALUES
#
 								"service-instance.service-instance-id" : "TBD - Can Holmes provide this?",
								"generic-vnf.vnf-id" : "TBD",
								"vserver.vserver-id" : "TBD"
                },
                "closedLoopAlarmStart": 1484677482204798,
                "closedLoopEventStatus": "ONSET",
                "closedLoopControlName": "CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                "version": "1.0.2",
                "target": "vserver.vserver-name",
                "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
                "from": "DCAE"
}
Code Block
* TODO Sample A&AI call to retrieve these values:


 								"service-instance.service-instance-id" : "TBD - Can Holmes provide this?",
								"generic-vnf.vnf-id" : "TBD",
								"vserver.vserver-id" : "TBD"
 
May require 2 calls. We are also hoping Holmes could prepopulate this if that team is going to retrieve topology details from A&AI anyway.

Code Block
* TODO - A&AI response(s)
Code Block
*TODO Call to VFC details
Code Block
*TODO response from VFC


vCPE Use Case

Code Block
titleDCAE Control Loop Event (TCA) - vCPE
linenumberstrue
collapsetrue
{
            "closedLoopControlName": "CL-VCPE-UNIQUE-ID-1",
            "version": "1.0.2",
            "requestID": "0abc0000-b032-4e4b-bd30-88260f444888",
            "closedLoopAlarmStart": 1478189220547,
            "closedLoopEventClient": "tca.instance00001",
            "target_type": "VNF",
            "target": "generic-vnf.vnf-id",
            "AAI": {
                        "generic-vnf.vnf-id" : "????"
            },
            "from": "DCAE",
            "policyScope": "resource=theVNF;type=operational;closedLoopControlName=CL-VCPE-UNIQUE-ID-1",
            "policyName": "configuration.dcae.microservice.tca.xml",
            "policyVersion": "v0.0.1",
            "closedLoopEventStatus": "ONSET"
}
Code Block
*TODO Call to A&AI to retrieve values for APPC Restart



Code Block
*TODO response from A&AI
Code Block
*TODO request to APPC
Code Block
*TODO responses from APPC