Table of Contents |
---|
Test Case Id | Description | Pre-conditions | Test Steps | Expected Results | ||||||
---|---|---|---|---|---|---|---|---|---|---|
1 | Perform healthcheck for the Policy components using Healthcheck API
|
| API – healthcheck Method - GET Endpoint: http://<host>:8081/healthcheck | All the policy components should return health status as “true” | ||||||
|
|
|
|
| ||||||
3 | Create config Policy for the following use cases
| 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
| 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 (
| 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. |
| 6 | Create Operational policy for the following use cases
| Policy components up and running | API - createPolicy Method – PUT Endpoint: https://<host>:8081/Pdp/createPolicy | Operational Policy should be created in Policy Engine (PAP) |
76 | Push operational Policy to the PDP Engines for each use case
| Policy components up and running | API - pushPolicy Method - PUT Endpoint: https:// <host>:8081/Pdp/pushPolicy | Operational Policy should be pushed to the PDP group | ||||||
87 | Retrieve the configs for the following use cases
| 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 | ||||||
9 |
|
|
|
| ||||||
10 | ||||||||||
11 |
|
|
|
| ||||||
12 | ||||||||||
13 | ||||||||||
14 | ||||||||||
15 |
|
|
|
| ||||||
16 |
|
|
|
| ||||||
17 |
|
|
|
|
vFirewall Use Case
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
tca_policy: "{ "domain": "measurementsForVfScaling", "metricsPerEventName": [ { "eventName": "vFirewallBroadcastPackets", "controlLoopSchemaType": "VNF", "policyScope": "DCAE", "policyName": "DCAE.Config_tca-hi-lo", "policyVersion": "v0.0.1", "thresholds": [ { "closedLoopControlName": "CLControlLoop-FRWLvFirewall-LOWd0a1dfc6-TRAFFIC94f5-SIG4fd4-d925ed73-8231-4d02-9545-db4e101f88f8a5b5-4630b438850a", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArrayvNicUsageArray[*].receivedBroadcastPacketsAccumulatedreceivedTotalPacketsDelta", "thresholdValue": 4000300, "direction": "LESS_OR_EQUAL", "severity": "MAJOR", "closedLoopEventStatus": "ONSET" }, { "closedLoopControlName": "CLControlLoop-FRWLvFirewall-HIGHd0a1dfc6-TRAFFIC94f5-SIG4fd4-EA36FE84-9342-5E13-A656-EC5F21309A09a5b5-4630b438850a", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArrayvNicUsageArray[*].receivedBroadcastPacketsAccumulatedreceivedTotalPacketsDelta", "thresholdValue": 20000700, "direction": "GREATER_OR_EQUAL", "severity": "CRITICAL", "closedLoopEventStatus": "ONSET" } ] } ] }" |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca", "policyVersion": "1controlLoop: version: 2.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 |
...
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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 | ||||||
---|---|---|---|---|---|---|
| ||||||
https://{aai}/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=zdfw1fwl01fwl02 |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
*TODO
|
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"query-parameters": {
"named-query": {
"named-query-uuid": "4ff56a54-9e3f-46b7-a337-07a1d3c6b469"
}
},
"instance-filters": {
"instance-filter": [{
"vserver": {
"vserver-name": "dfw1lb01lb01"
}
}]
}
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
SUCCESS:
{
"requestReferences": {
"instanceId": "ff305d54-75b4-ff1b-bdb2-eb6b9e5460ff",
"requestId": "e4f95e0c-a013-4530-8e59-c5c5f9e539b6"
},
"httpResponseCode": 200
}
|
VOLTE Use Case
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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 | ||||||
---|---|---|---|---|---|---|
| ||||||
This call is a simple GET in order to retrieve "is-closed-loop-diable" flag. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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",
| ||||||
Code Block | ||||||
| ||||||
tca_policy: "{ "domain": "measurementsForVfScaling", "metricsPerEventName": [ { "eventName": "vLoadBalancer", "controlLoopSchemaType": "VM", "policyScope": "DCAE", "policyName": "DCAE.Config_tca-hi-lo", "policyVersion": "v0.0.1", "thresholds": [ { "closedLoopControlNameerrorCode": "CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A", null, "version": "1.0.2", "fieldPathresponseId": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",1" "thresholdValue": 500, }, { "directionprogress": "LESS_OR_EQUAL41", "severitystatus": "MAJORproccessing", "closedLoopEventStatusstatusDescription": "ONSET" OMC VMs are decommissioned }in VIM", { "closedLoopControlNameerrorCode": "CL-LBAL-HIGH-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B", null, "versionresponseId": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", } ] "thresholdValue": 5000, } } |
vCPE Use Case
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
tca_policy: "{ "directiondomain": "GREATER_OR_EQUALmeasurementsForVfScaling", "severitymetricsPerEventName": "CRITICAL", [{ "closedLoopEventStatuseventName": "ONSETMeasurement_vGMUX", } "controlLoopSchemaType": "VNF", ] } ] }" | ||||||
Code Block | ||||||
| ||||||
{"policyScope": "DCAE", "closedLoopEventClientpolicyName": "DCAE_INSTANCE_ID.dcae-tca.Config_tca-hi-lo", "policyVersion": "1v0.0.0.51", "policyNamethresholds": "vLoadBalancer", [{ "policyScopeclosedLoopControlName": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop", ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "target_typeversion": "VM1.0.2", "AAIfieldPath": {"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "vserver.vserver-namethresholdValue": "dfw1lb01lb01"0, }, "direction": "EQUAL", "closedLoopAlarmStart": 1484677482204798, "closedLoopEventStatusseverity": "ONSETMAJOR", "closedLoopControlNameclosedLoopEventStatus": "CL-DNS-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8", ABATED" }, { "version": "1.0.2", "targetclosedLoopControlName": "vserver.vserver-nameControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "requestIDversion": "97964e10-686e-4790-8c45-bdfa61df770f1.0.2", "fromfieldPath": "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 | ||||||
---|---|---|---|---|---|---|
| ||||||
*TBD from Holmes Team
|
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ $.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value", "thresholdValue": 0, "direction": "GREATER", "closedLoopEventClientseverity": "DCAE.HolmesInstanceCRITICAL", "policyVersionclosedLoopEventStatus": "1.0.0.5", ONSET" }] }] }" |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", "version": "1.0.2","policyName": "vVOLTE", "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-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" }, "requestID": "0abc0000-b032-4e4b-bd30-88260f444888", "closedLoopAlarmStart": 14846774822047981478189220547, "closedLoopEventStatusclosedLoopEventClient": "ONSETDCAE_INSTANCE_ID.dcae-tca", "closedLoopControlNametarget_type": "CL-VOLTE-SIG-d925ed73-8231-4d02-9545-db4e101f88f8VNF", "versiontarget": "1.0.2generic-vnf.vnf-name", "AAI": { "target": "vserver.vserver-name", "requestID": "97964e10-686e-4790-8c45-bdfa61df770f", generic-vnf.vnf-name" : "vCPE_Infrastructure_vGMUX_demo_app" }, "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
,
"policyScope": "DCAE",
"policyName": "DCAE.Config_tca-hi-lo",
"policyVersion": "v0.0.1",
"closedLoopEventStatus": "ONSET"
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"body": {
"input": {
"common-header": {
| ||||||
Code Block | ||||||
| ||||||
tca_policy: "{ "domain": "measurementsForVfScaling", "metricsPerEventName": [ { "eventNametimestamp": "vCPEvGMUXPacketLoss2017-08-25T21:06:23.037Z", "controlLoopSchemaTypeapi-ver": "VM2.00", "policyScopeoriginator-id": "DCAEa20e2073-30b1-4357-893b-f5ed57b66ef0", "policyName": "DCAE.Config_tca-hi-lo", request-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0", "sub-request-id": "1", "policyVersionflags": "v0.0.1" {} }, "thresholdsaction": ["Restart", "action-identifiers": { "closedLoopControlNamevnf-id": "CL-vCPEvGMUX-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241ABA1", vCPE_Infrastructure_vGMUX_demo_app" } } }, "version": "12.0.2", "rpc-name": "restart", "correlation-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0-1", "fieldPathtype": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", request" } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "body": { "thresholdValueoutput": 0, { "directioncommon-header": "EQUAL",{ "severitytimestamp": "MAJOR2017-08-25T21:06:23.037Z", "closedLoopEventStatusapi-ver": "ABATED }, { "2.00", "closedLoopControlNameoriginator-id": "CLa20e2073-vCPEvGMUX30b1-TRAFFIC4357-SIG-FB480F95-A453-6F24-B767-FD703241ABA1893b-f5ed57b66ef0", "versionrequest-id": "1.0.2a20e2073-30b1-4357-893b-f5ed57b66ef0", "fieldPath"sub-request-id": "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta1", "thresholdValueflags": 1000,{} }, "directionstatus": "GREATER_OR_EQUAL", { "severitycode": "CRITICAL"400, "closedLoopEventStatusmessage": "ONSETRestart Successful" } } }, ]"version": "2.00", }"rpc-name": "restart", "correlation-id": "a20e2073-30b1-4357-893b-f5ed57b66ef0-1", ] "type": "response" }" |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "closedLoopControlName": "CLControlLoop-vCPEvGMUXvCPE-TRAFFIC48f0c2c3-SIGa172-FB480F954192-A453-6F24-B767-FD703241ABA19ae3-052274181b6e", "version": "1.0.2", "requestID": "0abc0000-b032-4e4b-bd30-88260f444888", "closedLoopAlarmStart": 1478189220547, "closedLoopAlarmEnd": 1478589220547, "closedLoopEventClient": "tca.instance00001"DCAE_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": "DCAE", "policyName": "DCAE.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 |