Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: added table of content

Table of Contents

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

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.

3

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)

34

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

45

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)

56

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

67

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

Simulate DCAE Control loop event for each use case with

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

9Simulate A&AI Response for Use Case vFW


10

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

11Simulate A&AI Response for Use Case vCPE


12Simulate APPC Response for Use Case vCPE


13Simulate A&AI Response for Use Case VOLTE


1114

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

1215

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

1316

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: "{
            "closedLoopControlNamedomain": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8measurementsForVfScaling",
  "metricsPerEventName": [
    {
      "versioneventName": "1.0.2vFirewallBroadcastPackets",
            "requestIDcontrolLoopSchemaType": "0138afac-b032-4e4b-bd30-88260f444888VNF",
            "closedLoopAlarmStartpolicyScope": 1478189220547"DCAE",
            "closedLoopEventClientpolicyName": "tca.instance00001DCAE.Config_tca-hi-lo",
      "policyVersion": "v0.0.1",
 
      "target_typethresholds": "VNF",[
        {
    "target      "closedLoopControlName": "generic-vnf.vnf-idControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
            "AAIversion": {
"1.0.2",
          "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta",
          "thresholdValue": 300,
     "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": "DCAEControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
            "policyScopeversion": "resource=vFirewall;type=configuration1.0.2",
            "policyNamefieldPath": "configuration$.dcaeevent.microservice.tca.xmlmeasurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta",
          "thresholdValue": 700,
          "policyVersiondirection": "v0.0.1GREATER_OR_EQUAL",
            "closedLoopEventStatusseverity": "ONSETCRITICAL"
}
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

...

,
          "closedLoopEventStatus": "ONSET"
        }
      ]
    }
  ]
 
}"
Code Block
titlevFirewall - Operational Policy
linenumberstrue
collapsetrue
controlLoop:
  version: 2.0.0
  controlLoopName: ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
  trigger_policy: unique-policy-id-1-modifyConfig
  timeout: 1200
  abatement: false

policies:
  - id: unique-policy-id-1-modifyConfig
    name: modify packet gen config
    description:
    actor: APPC
    recipe: ModifyConfig
    target:
      # TBD - Cannot be known until instantiation is done
      resourceID: Eace933104d443b496b8.nodes.heat.vpg
	  type: VNF	
    retry: 0
    timeout: 300
    success: final_success
    failure: final_failure
    failure_timeout: final_failure_timeout
    failure_retries: final_failure_retries
    failure_exception: final_failure_exception
    failure_guard: final_failure_guard

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-name": "zdfw1fwl01fwl02"
	},
	"closedLoopAlarmStart": 1484855291527925,
	"closedLoopEventStatus": "ONSET",
	"closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
	"version": "1.0.2",
	"target": "generic-vnf.vnf-name",
	"requestID": "8c1b8bd8-06f7-493f-8ed7-daaa4cc481bc",
	"from": "DCAE"
}
Code Block
titleAAI vnf-name query
linenumberstrue
collapsetrue
https://{aai}/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=zdfw1fwl01fwl02
Code Block
titleAAI named-query response
linenumberstrue
collapsetrue
*TODO
Code Block
titleAPPC request
linenumberstrue
collapsetrue
{
  	"CommonHeader": {
  		  "TimeStamp": 1500997725298,
  		  "APIver": "1.01",
  		  "RequestID": "664be3d2-6c12-4f4b-a3e7-c349acced200",
  		  "RequestTrack": [],
  		  "Flags": []
  	},
  	"Action": "ModifyConfig",
  	"Payload": {
    	"generic-vnf.vnf-id": "fw0001vm001fw001",
    	"pg-streams": {
      		"pg-stream": [
			{
          		"id": "fw_udp1",
          		"is-enabled": "true"
        	},
        	{
          		"id": "fw_udp2",
          		"is-enabled": "true"
        	},
        	{
         		"id": "fw_udp3",
          		"is-enabled": "true"
        	},
        	{
          		"id": "fw_udp4",
          		"is-enabled": "true"
        	},
        	{
          		"id": "fw_udp5",
          		"is-enabled": "true"
        	}]
    	}
  	}
}


Code Block
titleAPPC response
linenumberstrue
collapsetrue
ACCEPT response

{
    "Status": {
        "Value": "ACCEPTED",
        "Code": "100"
    },
    "Payload": {
        "pg-streams": "{\\\"pg-streams\\\": {\\\"pg-stream\\\":[{\\\"id\\\":\\\"fw_udp1\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp2\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp3\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp4\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp5\\\", \\\"is-enabled\\\":\\\"true\\\"}]}}",
        "generic-vnf.vnf-id": "fw0001vm001fw001"
    },
    "CommonHeader": {
        "TimeStamp": "1493841850199",
        "APIver": "1.01",
        "RequestID": "664be3d2-6c12-4f4b-a3e7-c349acced200",
        "SubrequestID": null,
        "OriginatorID": null
    }
}


SUCCESS response



{
    "Status": {
        "Value": "SUCCESS",
        "Code": "400"
    },
    "Payload": {
        "pg-streams": "{\\\"pg-streams\\\": {\\\"pg-stream\\\":[{\\\"id\\\":\\\"fw_udp1\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp2\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp3\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp4\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp5\\\", \\\"is-enabled\\\":\\\"true\\\"}]}}",
        "generic-vnf.vnf-id": "fw0001vm001fw001"
    },
    "CommonHeader": {
        "TimeStamp": "1493841850199",
        "APIver": "1.01",
        "RequestID": "664be3d2-6c12-4f4b-a3e7-c349acced200",
        "SubrequestID": null,
        "OriginatorID": null
    }
}


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": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
                     "version": "1.0.2",
                     "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta",
                     "thresholdValue": 300,
                     "direction": "GREATER_OR_EQUAL",
                     "severity": "CRITICAL",
                     "closedLoopEventStatus": "ONSET"
              }]
       }]
}"
Code Block
titlevDNS - Operational Policy
linenumberstrue
collapsetrue
controlLoop:
  version: 2.0.0
  controlLoopName: ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
  trigger_policy: unique-policy-id-1-scale-up
  timeout: 1200
  abatement: false
policies:
  - id: unique-policy-id-1-scale-up
    name: Create a new VF Module
    description:
    actor: SO
    recipe: VF Module Create
    target:
      type: VNF
    retry: 0
    timeout: 1200
    success: final_success
    failure: final_failure
    failure_timeout: final_failure_timeout
    failure_retries: final_failure_retries
    failure_exception: final_failure_exception
    failure_guard: final_failure_guard
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": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
                "version": "1.0.2",
                "target": "vserver.vserver-name",
                "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
                "from": "DCAE"
}
Code Block
titleAAI named-query request
linenumberstrue
collapsetrue
{
	"query-parameters": {
    	"named-query": {
        	"named-query-uuid": "4ff56a54-9e3f-46b7-a337-07a1d3c6b469"
        }
    },
    "instance-filters": {
    	"instance-filter": [{
        	"vserver": {
            	"vserver-name": "dfw1lb01lb01"
            }
        }]
    }
}
Code Block
titleAAI named-query response
linenumberstrue
collapsetrue
{
    "inventory-response-item": [
        {
            "vserver": {
                "vserver-id": "6ed3642c-f7a1-4a7c-9290-3d51fe1531eb",
                "vserver-name": "zdfw1lb01lb02",
                "vserver-name2": "zdfw1lb01lb02",
                "prov-status": "ACTIVE",
                "vserver-selflink": "http://10.12.25.2:8774/v2.1/41d6d38489bd40b09ea8a6b6b852dcbd/servers/6ed3642c-f7a1-4a7c-9290-3d51fe1531eb",
                "in-maint": false,
                "is-closed-loop-disabled": false,
                "resource-version": "1510606403522"
            },
            "extra-properties": {},
            "inventory-response-items": {
                "inventory-response-item": [
                    {
                        "model-name": "vLoadBalancer",
                        "generic-vnf": {
                            "vnf-id": "db373a8d-f7be-4d02-8ac8-6ca4c305d144",
                            "vnf-name": "Vfmodule_vLB1113",
                            "vnf-type": "vLoadBalancer-1106/vLoadBalancer 0",
                            "service-id": "66f157fc-4148-4880-95f5-e120677e98d1",
                            "prov-status": "PREPROV",
                            "orchestration-status": "Created",
                            "in-maint": false,
                            "is-closed-loop-disabled": false,
                            "resource-version": "1510604011851",
                            "model-invariant-id": "cee050ed-92a5-494f-ab04-234307a846dc",
                            "model-version-id": "fd65becc-6b2c-4fe8-ace9-cc29db9a3da2",
                            "model-customization-id": "1983c783-444f-4e79-af3a-85e5d49628f3",
                            "nf-type": "",
                            "nf-function": "",
                            "nf-role": "",
                            "nf-naming-code": ""
                        },
                        "extra-properties": {
                            "extra-property": [
                                {
                                    "property-name": "model-ver.model-version-id",
                                    "property-value": "fd65becc-6b2c-4fe8-ace9-cc29db9a3da2"
                                },
                                {
                                    "property-name": "model-ver.model-name",
                                    "property-value": "vLoadBalancer"
                                },
                                {
                                    "property-name": "model.model-type",
                                    "property-value": "resource"
                                },
                                {
                                    "property-name": "model.model-invariant-id",
                                    "property-value": "cee050ed-92a5-494f-ab04-234307a846dc"
                                },
                                {
                                    "property-name": "model-ver.model-version",
                                    "property-value": "1.0"
                                }
                            ]
                        },
                        "inventory-response-items": {
                            "inventory-response-item": [
                                {
                                    "model-name": "vLoadBalancer-1106",
                                    "service-instance": {
                                        "service-instance-id": "3b12f31f-8f2d-4f5c-b875-61ff1194b941",
                                        "service-instance-name": "vLoadBalancer-1113",
                                        "model-invariant-id": "1321d60d-f7ff-4300-96c2-6bf0b3268b7a",
                                        "model-version-id": "732d4692-4b97-46f9-a996-0b3339e88c50",
                                        "resource-version": "1510603936425"
                                    },
                                    "extra-properties": {
                                        "extra-property": [
                                            {
                                                "property-name": "model-ver.model-version-id",
                                                "property-value": "732d4692-4b97-46f9-a996-0b3339e88c50"
                                            },
                                            {
                                                "property-name": "model-ver.model-name",
                                                "property-value": "vLoadBalancer-1106"
                                            },
                                            {
                                                "property-name": "model.model-type",
                                                "property-value": "service"
                                            },
                                            {
                                                "property-name": "model.model-invariant-id",
                                                "property-value": "1321d60d-f7ff-4300-96c2-6bf0b3268b7a"
                                            },
                                            {
                                                "property-name": "model-ver.model-version",
                                                "property-value": "1.0"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "model-name": "Vloadbalancer..base_vlb..module-0",
                                    "vf-module": {
                                        "vf-module-id": "e6b3e3eb-34e1-4c00-b8c1-2a4fbe479b12",
                                        "vf-module-name": "Vfmodule_vLB1113-1",
                                        "heat-stack-id": "Vfmodule_vLB1113-1/3dd6d900-772f-4fcc-a0cb-e250ab2bb4db",
                                        "orchestration-status": "active",
                                        "is-base-vf-module": true,
                                        "resource-version": "1510604612557",
                                        "model-invariant-id": "6d760188-9a24-451a-b05b-e08b86cb94f2",
                                        "model-version-id": "93facad9-55f2-4fe0-9574-814c2bc2d071",
                                        "model-customization-id": "93fd5bd4-8051-4074-8530-c0c504604df5",
                                        "module-index": 0
                                    },
                                    "extra-properties": {
                                        "extra-property": [
                                            {
                                                "property-name": "model-ver.model-version-id",
                                                "property-value": "93facad9-55f2-4fe0-9574-814c2bc2d071"
                                            },
                                            {
                                                "property-name": "model-ver.model-name",
                                                "property-value": "Vloadbalancer..base_vlb..module-0"
                                            },
                                            {
                                                "property-name": "model.model-type",
                                                "property-value": "resource"
                                            },
                                            {
                                                "property-name": "model.model-invariant-id",
                                                "property-value": "6d760188-9a24-451a-b05b-e08b86cb94f2"
                                            },
                                            {
                                                "property-name": "model-ver.model-version",
                                                "property-value": "1"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "model-name": "Vloadbalancer..dnsscaling..module-1",
                                    "vf-module": {
                                        "vf-module-id": "dummy_db373a8d-f7be-4d02-8ac8-6ca4c305d144",
                                        "vf-module-name": "dummy_db373a8d-f7be-4d02-8ac8-6ca4c305d144",
                                        "is-base-vf-module": false,
                                        "resource-version": "1510610079687",
                                        "model-invariant-id": "356a1cff-71f2-4086-9980-a2927ce11c1c",
                                        "model-version-id": "6b93d804-cfc8-4be3-92cc-9336d135859a"
                                    },
                                    "extra-properties": {
                                        "extra-property": [
                                            {
                                                "property-name": "model-ver.model-version-id",
                                                "property-value": "6b93d804-cfc8-4be3-92cc-9336d135859a"
                                            },
                                            {
                                                "property-name": "model-ver.model-name",
                                                "property-value": "Vloadbalancer..dnsscaling..module-1"
                                            },
                                            {
                                                "property-name": "model.model-type",
                                                "property-value": "resource"
                                            },
                                            {
                                                "property-name": "model.model-invariant-id",
                                                "property-value": "356a1cff-71f2-4086-9980-a2927ce11c1c"
                                            },
                                            {
                                                "property-name": "model-ver.model-version",
                                                "property-value": "1"
                                            }
                                        ]
                                    }
                                }
                            ]
                        }
                    },
                    {
                        "tenant": {
                            "tenant-id": "41d6d38489bd40b09ea8a6b6b852dcbd",
                            "tenant-name": "Integration-SB-00",
                            "resource-version": "1509587770200"
                        },
                        "extra-properties": {},
                        "inventory-response-items": {
                            "inventory-response-item": [
                                {
                                    "cloud-region": {
                                        "cloud-owner": "CloudOwner",
                                        "cloud-region-id": "RegionOne",
                                        "cloud-type": "SharedNode",
                                        "owner-defined-type": "OwnerType",
                                        "cloud-region-version": "v1",
                                        "cloud-zone": "CloudZone",
                                        "sriov-automation": false,
                                        "resource-version": "1509587770092"
                                    },
                                    "extra-properties": {}
                                }
                            ]
                        }
                    }
                ]
            }
        }
    ]
}
Code Block
titleSO request
linenumberstrue
collapsetrue
NOTE: Robot must add preload for dummy module for this to work.
{

  "requestDetails": {

    "modelInfo": {

      "modelType": "vfModule",

      "modelInvariantId": "356a1cff-71f2-4086-9980-a2927ce11c1c",

      "modelVersionId": "6b93d804-cfc8-4be3-92cc-9336d135859a",

      "modelName": "Vloadbalancer..dnsscaling..module-1",

      "modelVersion": "1"

    },

    "cloudConfiguration": {

      "lcpCloudRegionId": "RegionOne",

      "tenantId": "41d6d38489bd40b09ea8a6b6b852dcbd"

    },

    "requestInfo": {

      "instanceName": "vDNS_vLB1113-1",

      "source": "POLICY",

      "suppressRollback": false,

      "requestorId": "policy"

    },

    "relatedInstanceList": [

      {

        "relatedInstance": {

          "instanceId": "3b12f31f-8f2d-4f5c-b875-61ff1194b941",

          "modelInfo": {

            "modelType": "service",

            "modelInvariantId": "1321d60d-f7ff-4300-96c2-6bf0b3268b7a",

            "modelVersionId": "732d4692-4b97-46f9-a996-0b3339e88c50",

            "modelName": "vLoadBalancer-1106",

            "modelVersion": "1.0"

          }

        }

      },

      {

        "relatedInstance": {

          "instanceId": "db373a8d-f7be-4d02-8ac8-6ca4c305d144",

          "modelInfo": {

            "modelType": "vnf",

            "modelInvariantId": "cee050ed-92a5-494f-ab04-234307a846dc",

            "modelVersionId": "fd65becc-6b2c-4fe8-ace9-cc29db9a3da2",

            "modelName": "vLoadBalancer",

            "modelVersion": "1.0",

            "modelCustomizationName": "vLoadBalancer 0"

          }

        }

      }

    ],

    "requestParameters": {}

  }

}
Code Block
titleSO Response
linenumberstrue
collapsetrue
SUCCESS:
{
	"requestReferences": {
    	"instanceId": "ff305d54-75b4-ff1b-bdb2-eb6b9e5460ff",
    	"requestId": "e4f95e0c-a013-4530-8e59-c5c5f9e539b6"
  	},
  	"httpResponseCode": 200
}


VOLTE Use Case


Code Block
titleVOLTE - Operational Policy
linenumberstrue
collapsetrue
controlLoop:
  version: 2.0.0
  controlLoopName: ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b
  trigger_policy: unique-policy-id-1-restart
  timeout: 3600
  abatement: false

policies:
  - id: unique-policy-id-1-restart
    name: Restart the VM
    description:
    actor: VFC
    recipe: Restart
    target:
      type: VM
    retry: 3
    timeout: 1200
    success: final_success
    failure: final_failure
    failure_timeout: final_failure_timeout
    failure_retries: final_failure_retries
    failure_exception: final_failure_exception
    failure_guard: final_failure_guard
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=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"
}
Code Block
titleA&AI Call
linenumberstrue
collapsetrue
This call is a simple GET in order to retrieve "is-closed-loop-diable" flag.
Code Block
titleA&AI Response
linenumberstrue
collapsetrue
Below is a sample GET response format. Field values are just examples. Will update to real values later.

{
   "vnf-id": "5e49ca06-2972-4532-9ed4-6d071588d792",
   "vnf-name": "USUCP0PCOIL0110UJRT01",
   "vnf-type": "RT",
   "service-id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
   "equipment-role": "UCPE",
   "orchestration-status": "created",
   "management-option": "ATT",
   "ipv4-oam-address": "32.40.68.35",
   "ipv4-loopback0-address": "32.40.64.57",
   "nm-lan-v6-address": "2001:1890:e00e:fffe::1345",
   "management-v6-address": "2001:1890:e00e:fffd::36",
   "in-maint": false,
   "is-closed-loop-disabled": false,
   "resource-version": "1493389458092",
   "relationship-list": {"relationship": [
		{
         	"related-to": "service-instance",
         	"related-link": "https://aai-int1.test.att.com:8443/aai/v9/business/customers/customer/1610_Func_Global_20160817084727/service-subscriptions/service-subscription/uCPE-VMS/service-instances/service-instance/USUCP0PCOIL0110UJZZ01",
         	"relationship-data": [
         	{
               "relationship-key": "customer.global-customer-id",
               "relationship-value": "1610_Func_Global_20160817084727"
            },
            {
               "relationship-key": "service-subscription.service-type",
               "relationship-value": "uCPE-VMS"
            },
            {
               "relationship-key": "service-instance.service-instance-id",
               "relationship-value": "USUCP0PCOIL0110UJZZ01"
            }
         	],
         "related-to-property": [{"property-key": "service-instance.service-instance-name"}]
      	},
        {
         	"related-to": "vserver",
         	"related-link": "https://aai-int1.test.att.com:8443/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/USUCP0PCOIL0110UJZZ01%3A%3AuCPE-VMS/vservers/vserver/3b2558f4-39d8-40e7-bfc7-30660fb52c45",
         	"relationship-data": [
            {
               "relationship-key": "cloud-region.cloud-owner",
               "relationship-value": "att-aic"
            },
            {
               "relationship-key": "cloud-region.cloud-region-id",
               "relationship-value": "AAIAIC25"
            },
            {
               "relationship-key": "tenant.tenant-id",
               "relationship-value": "USUCP0PCOIL0110UJZZ01::uCPE-VMS"
            },
            {
               "relationship-key": "vserver.vserver-id",
               "relationship-value": "3b2558f4-39d8-40e7-bfc7-30660fb52c45"
            }
         	],
         	"related-to-property": [      
			{
            	"property-key": "vserver.vserver-name",
            	"property-value": "USUCP0PCOIL0110UJZZ01-vsrx"
         	}]
      	}
   	]}
}
Code Block
titleVFC request
linenumberstrue
collapsetrue
Request URI: 
POST http(s)://[hostname][:port]/api/nslcm/v1/ns/{nsInstanceId }/heal

Request JSON:
{
    " healVnfData": {
        “vnfInstanceId”: ”1”,
        “cause”: ”vm is down”,
        “additionalParams”: {
            “action”: ”restartvm”,
            “actionvminfo”: {
                “vmid”: ”33”,
                “vmname”: ”xgw - smp11”
            }
        }
    }
}
Code Block
titleVFC response
linenumberstrue
collapsetrue
Response JSON with response code 202:
{
	“jobId”:”1”
} 

Get Operation Status to read the status
GET http(s)://[hostname][:port]/api/nslcm/v1/jobs/{jobId}&responseId={responseId}

Response JSON with response code 200:
{
    "jobId": "1234566",
    "responseDescriptor": {
        "progress": "40",
        "status": "proccessing",
        "statusDescription": "OMC VMs are decommissioned in VIM",
        "errorCode": null,
        "responseId": "42",
        "responseHistoryList": [{
                "progress": "40",
                "status": "proccessing",
                "statusDescription": "OMC VMs are decommissioned in VIM",
                "errorCode": null,
                "responseId": "1"
            }, {
                "progress": "41",
                "status": "proccessing",
                "statusDescription": "OMC VMs are decommissioned in VIM",
                "errorCode": null,
                "responseId": "2"
            }
        ]
    }
}


vCPE Use Case


Code Block
titlevCPE - TCA Configuration Policy Payload
linenumberstrue
collapsetrue
tca_policy: "{
       "domain": "measurementsForVfScaling",
       "metricsPerEventName": [{
              "eventName": "Measurement_vGMUX",
              "controlLoopSchemaType": "VNF",
              "policyScope": "DCAE",
              "policyName": "DCAE.Config_tca-hi-lo",
              "policyVersion": "v0.0.1",
              "thresholds": [{
                     "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
                     "version": "1.0.2",
                     "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value",
                     "thresholdValue": 0,
                     "direction": "EQUAL",
                     "severity": "MAJOR",
                     "closedLoopEventStatus": "ABATED"
              }, {
                     "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
                     "version": "1.0.2",
                     "fieldPath": "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value",
                     "thresholdValue": 0,
                     "direction": "GREATER",
                     "severity": "CRITICAL",
                     "closedLoopEventStatus": "ONSET"
              }]
       }]
}"
Code Block
titlevCPE Operational Policy
linenumberstrue
collapsetrue
controlLoop:
  version: 2.0.0
  controlLoopName: ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
  trigger_policy: unique-policy-id-1-restart
  timeout: 3600
  abatement: true

policies:
  - id: unique-policy-id-1-restart
    name: Restart the VM
    description:
    actor: APPC
    recipe: Restart
    target:
      type: VM
    retry: 3
    timeout: 1200
    success: final_success
    failure: final_failure
    failure_timeout: final_failure_timeout
    failure_retries: final_failure_retries
    failure_exception: final_failure_exception
    failure_guard: final_failure_guard
Code Block
titleDCAE Control Loop Event (TCA) - vCPE
linenumberstrue
collapsetrue
{
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-nameclosedLoopControlName": "dfw1lb01lb01"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
                }"version": "1.0.2",
                "closedLoopAlarmStartrequestID": 1484677482204798"0abc0000-b032-4e4b-bd30-88260f444888",
                "closedLoopEventStatusclosedLoopAlarmStart": "ONSET"1478189220547,
                "closedLoopControlNameclosedLoopEventClient": "CL-DNS-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8DCAE_INSTANCE_ID.dcae-tca",
                "versiontarget_type": "1.0.2VNF",
                "target": "vservergeneric-vnf.vservervnf-name",
                "requestIDAAI": "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
{
     "generic-vnf.vnf-name" : "vCPE_Infrastructure_vGMUX_demo_app"
            },
            "from": "DCAE",
            "policyScope": "DCAE",
            "closedLoopEventClientpolicyName": "DCAE.HolmesInstanceConfig_tca-hi-lo",
    
            "policyVersion": "1v0.0.0.51",
                "policyNameclosedLoopEventStatus": "vVOLTE",ONSET"
}
Code Block
titleAPPC request
linenumberstrue
collapsetrue
{
  "body": {
    "input": {
        "policyScopecommon-header": "resource=volte,service=VolteSErvice,type=SampleType,closedLoopControlName=CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
     {
           "target_type"timestamp": "VM2017-08-25T21:06:23.037Z",
        "api-ver": "2.00",
        "AAIoriginator-id": {
								# the value "dfw1lb01lb01" comes from VES sourceName field"a20e2073-30b1-4357-893b-f5ed57b66ef0",
        "request-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0",
            "sub-request-id": "1",
           "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"flags": {}
      },
      "action": "Restart",
      "action-identifiers": {
        "vnf-id": "vCPE_Infrastructure_vGMUX_demo_app"
      }
      }
    },
  "version": "2.0",
             "closedLoopAlarmStart": 1484677482204798"rpc-name": "restart",
  "correlation-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0-1",
  "type": "request"
}
Code Block
titleAPPC response
linenumberstrue
collapsetrue
{
  "body": {
          "closedLoopEventStatus"output": "ONSET",{
        "common-header": {
        "closedLoopControlNametimestamp": "CL2017-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
        08-25T21:06:23.037Z",
        "versionapi-ver": "12.0.200",
                "target"originator-id": "vserver.vserver-namea20e2073-30b1-4357-893b-f5ed57b66ef0",
                "requestID"request-id": "97964e10a20e2073-686e30b1-47904357-8c45893b-bdfa61df770ff5ed57b66ef0",
         "sub-request-id": "1",
        "fromflags": "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

...

{}
      },
      "status": {
        "code": 400,
        "message": "Restart Successful"
      }
    }
  },
  "version": "2.00",
  "rpc-name": "restart",
  "correlation-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0-1",
  "type": "response"
}
Code Block
titleDCAE ABATED Control Loop Event (TCA) - vCPE
linenumberstrue
collapsetrue
{
            "closedLoopControlName": "CL-VCPE-UNIQUE-ID-1ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
            "version": "1.0.2",
            "requestID": "0abc0000-b032-4e4b-bd30-88260f444888",
            "closedLoopAlarmStart": 1478189220547,
            "closedLoopAlarmEnd": 1478589220547,
            "closedLoopEventClient": "tca.instance00001DCAE_INSTANCE_ID.dcae-tca",
            "target_type": "VNF",
            "target": "generic-vnf.vnf-idname",
            "AAI": {
                        
			"generic-vnf.vnf-idname" : "???? "vCPE_Infrastructure_vGMUX_demo_app"
            },
            "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": "ONSETABATED"
}
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