Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reordered functional tests. Add more details on Config policy.

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

Load the Drools Controller Configurations




5

Import/Load Use case template Create Operational policy for the following use cases  

 

(VoLTE

,   vCPE, vFW

  •   vDNS
  •   vCPE

    , vDNS)

     Policy components should   be up and running

    API - createPolicy   – policyEngineImport

    MethodPUTPOST

    Endpoint:

    https://<host>:8081/Pdppdp/createPolicypolicyEngineImport

    Operational Policy service models should be created in Policy Engine (PAP)imported for the specified use   cases. We should be able to create policy from here.

    6

    Create Operational policy for the following use cases  

    5

    Push operational Policy to the PDP Engines for each use case

    •   VoLTE
    •   vFW
    •   vDNS
    •   vCPE

     Policy components up and running

    API - pushPolicy createPolicy  

    Method - PUT

    Endpoint:

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

    Operational Policy should be created in Policy Engine (PAP)

    7

    Push operational Policy pushed to the PDP group

    6

    Retrieve the configs for the following use casesEngines for each use case

    •   VoLTE
    •   vFW
    •   vDNS
    •   vCPE

    Policy  Policy components up and running

    API – getConfig - pushPolicy  

    Method – POST - PUT

    Endpoint:

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

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

    Operational Policy should be pushed to the PDP group

    8

    Retrieve the configs

    7

    Import/Load Use case template for the following use cases (

    •   VoLTE
    ,
    •  
    vCPE,
    • vFW
    •   vDNS
    •   vCPE

    Policy components , vDNS) Policy components should   be up and running

    APIpolicyEngineImportgetConfig

    Method – POST

    Endpoint:

    https://<host>:8081/pdpPdp/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

    getConfig

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

    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

    10Simulate A&AI Response for Use Case vFW


    1011

    Simulate APPC Response for Use Case vFW

    • 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

    12Simulate A&AI Response for Use Case vCPE


    13Simulate APPC Response for Use Case vCPE


    14Simulate A&AI Response for Use Case VOLTE


    1115

    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

    1216

    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

    1317

    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) - vFirewallvFirewall - TCA Configuration Policy Payload
    linenumberstrue
    collapsetrue
    tca_policy: "{
                "closedLoopControlName"domain": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8measurementsForVfScaling",
      "metricsPerEventName": [
        {
          "versioneventName": "1.0.2vFirewallBroadcastPackets",
          "controlLoopSchemaType": "VNF",
          "requestIDpolicyScope": "0138afac-b032-4e4b-bd30-88260f444888DCAE",
                "closedLoopAlarmStartpolicyName": 1478189220547"DCAE.Config_tca-hi-lo",
                "closedLoopEventClientpolicyVersion": "tcav0.0.instance000011",
     
          "thresholds": [
        "target_type": "VNF",
       {
              "targetclosedLoopControlName": "generic-vnf.vnf-idCL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                "AAIversion": {"1.0.2",
              "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
              "thresholdValue": 4000,
      "generic-vnf.vnf-id" : "VNF 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
    #
                "direction": "LESS_OR_EQUAL",
              "severity": "MAJOR",
              "closedLoopEventStatus": "ONSET"
            },
            },{
                "fromclosedLoopControlName": "DCAECL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09",
                "policyScopeversion": "resource=vFirewall;type=configuration1.0.2",
                "policyNamefieldPath": "configuration$.dcaeevent.microservice.tca.xmlmeasurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
                "policyVersionthresholdValue": "v0.0.1"20000,
                "closedLoopEventStatusdirection": "ONSETGREATER_OR_EQUAL",
    }
    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

    ...

    "severity": "CRITICAL",
              "closedLoopEventStatus": "ONSET"
            }
          ]
        }
      ]
     
    }"
    
    Code Block
    titleDCAE Control Loop Event (TCA) - vFirewall
    linenumberstrue
    collapsetrue
    {
    	"closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
    	"policyVersion": "1.0.0.5",
    	"policyName": "vFirewall",
    	"policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
    	"target_type": "VNF",
    	"AAI": {
    		"generic-vnf.vnf-id": "zdfw1fwl01fwl02"
    	},
    	"closedLoopAlarmStart": 1484855291527925,
    	"closedLoopEventStatus": "ONSET",
    	"closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
    	"version": "1.0.2",
    	"target": "generic-vnf.vnf-id",
    	"requestID": "8c1b8bd8-06f7-493f-8ed7-daaa4cc481bc",
    	"from": "DCAE"
    }
    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
    titlevDNS - TCA Configuration Policy Payload
    linenumberstrue
    collapsetrue
    tca_policy: "{
      "domain": "measurementsForVfScaling",
      "metricsPerEventName": [
        {
          "eventName": "vLoadBalancer",
          "controlLoopSchemaType": "VM",
          "policyScope": "DCAE",
          "policyName": "DCAE.Config_tca-hi-lo",
          "policyVersion": "v0.0.1",
          "thresholds": [
            {
              "closedLoopControlName": "CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A",
              "version": "1.0.2",
              "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
              "thresholdValue": 500,
              "direction": "LESS_OR_EQUAL",
              "severity": "MAJOR",
              "closedLoopEventStatus": "ONSET"
            },
            {
              "closedLoopControlName": "CL-LBAL-HIGH-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B",
              "version": "1.0.2",
              "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
              "thresholdValue": 5000,
              "direction": "GREATER_OR_EQUAL",
              "severity": "CRITICAL",
              "closedLoopEventStatus": "ONSET"
            }
          ]
        }
        
      ]
     
    }"



    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",
    Code Block
    titleDCAE Control Loop Event (TCA) - vDNS
    linenumberstrue
    collapsetrue
    {
                    "closedLoopEventClientrequestID": "DCAE_INSTANCE_ID.dcae-tca97964e10-686e-4790-8c45-bdfa61df770f",
                    "policyVersionfrom": "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
    titleVOLTE - Holmes Configuration Policy Payload
    linenumberstrue
    collapsetrue
    *TBD from Holmes Team
    
    
    
    



    Code Block
    titleDCAE Control Loop Event (HOLMES) - VOLTE
    linenumberstrue
    collapsetrue
    {1.0.0.5",
                    "policyName": "vLoadBalancer",
                    "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop",
                    "target_typeclosedLoopEventClient": "DCAE.HolmesInstance"VM",
                    "AAIpolicyVersion": {"1.0.0.5",
                        "vserver.vserver-name"policyName": "dfw1lb01lb01vVOLTE",
                       }"policyScope": "resource=volte,service=VolteSErvice,type=SampleType,closedLoopControlName=CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                    "closedLoopAlarmStarttarget_type": 1484677482204798"VM",
                    "closedLoopEventStatusAAI": "ONSET",
         {
    								# the value "dfw1lb01lb01" comes from VES sourceName field
               "closedLoopControlName": "CL-DNS-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                         "versionvserver.vserver-name": "1.0.2dfw1lb01lb01",
    #
    # WE ARE TRYING TO DETERMINE IF HOLMES CAN POPULATE SOME OF THESE VALUES
    #
     								"service-instance.service-instance-id" : "TBD - Can Holmes   "target": "provide this?",
    								"generic-vnf.vnf-id" : "TBD",
    								"vserver.vserver-nameid",
     : "TBD"
                  "requestID": "97964e10-686e-4790-8c45-bdfa61df770f"  },
                    "fromclosedLoopAlarmStart": "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
    {1484677482204798,
                    "closedLoopEventStatus": "ONSET",
                    "closedLoopControlName": "CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                    "closedLoopEventClientversion": "DCAE1.0.HolmesInstance2",
                    "policyVersiontarget": "1.0.0.5vserver.vserver-name",
                    "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
                    "policyNamefrom": "vVOLTEDCAE",
    }
    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
    titlevCPE - TCA Configuration Policy Payload
    linenumberstrue
    collapsetrue
    tca_policy: "{
      "domain": "measurementsForVfScaling",
      "metricsPerEventName": [
        {
             "policyScope": "resource=volte,service=VolteSErvice,type=SampleType,closedLoopControlName=CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
                    "target_type": "VM",
                    "AAI": {
    								# the value "dfw1lb01lb01" comes from VES sourceName field
                                    "vserver.vserver-nameeventName": "dfw1lb01lb01vCPEvGMUXPacketLoss",
    #
    # 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""controlLoopSchemaType": "VM",
          "policyScope": "DCAE",
          "policyName": "DCAE.Config_tca-hi-lo",
          "policyVersion": "v0.0.1",
          "thresholds": [
             },{
              "closedLoopControlName": "CL-vCPEvGMUX-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241ABA1",
              "closedLoopAlarmStartversion": 1484677482204798"1.0.2",
                    "closedLoopEventStatus"fieldPath": "ONSET$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
              "thresholdValue": 0,
              "closedLoopControlNamedirection": "CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8EQUAL",
                    "versionseverity": "1.0.2MAJOR",
              "closedLoopEventStatus": "ABATED
         "target": "vserver.vserver-name",
       },
            {
              "requestIDclosedLoopControlName": "97964e10-686e-4790-8c45-bdfa61df770f",
    CL-vCPEvGMUX-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241ABA1",
                "version": "1.0.2",
              "fromfieldPath": "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

    ...

    $.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
              "thresholdValue": 1000,
              "direction": "GREATER_OR_EQUAL",
              "severity": "CRITICAL",
              "closedLoopEventStatus": "ONSET"
            }
          ]
        }
        
      ]
     
    }"



    Code Block
    titleDCAE Control Loop Event (TCA) - vCPE
    linenumberstrue
    collapsetrue
    {
                "closedLoopControlName": "CL-VCPE-UNIQUE-ID-1-vCPEvGMUX-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241ABA1",
                "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-1DCAE",
                "policyName": "configuration.dcae.microservice.tca.xmlDCAE.Config_tca-hi-lo",
                "policyVersion": "v0.0.1",
                "closedLoopEventStatus": "ONSET"
    }

    ...