...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevCPE\", \"description\": \"MicroService vCPE Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"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\" }] }] } } }", "policyConfigType": "MicroService", "policyName": "com.MicroServicevCPE", "onapName": "DCAE" }' 'http://pdp:8081/pdp/api/createPolicy' |
TODO - Get the payload from Marco Platania
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 Scalea outnew theVF VNFModule description: actor: SO recipe: scaleOutVF Module Create target: type: VNF payload: # Need to get from Marco # TODO convert to YAML "requestParameters":{ "userParams":[ { "name":"mmc", "value":"001" }, { requestParameters: '{"usePreload":true,"userParams":[]}' configurationParameters: '[{"ip-addr":"$.vf-module-topology.vf-module-parameters.param[9]","oam-ip-addr":"$.vf-module-topology.vf-module-parameters.param[16]","enabled":"$.vf-module-topology.vf-module-parameters.param[23]"}]' 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 | ||||||
---|---|---|---|---|---|---|
| ||||||
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "policyConfigType": "BRMS_PARAM", "namepolicyName": "mnccom.BRMSParamvDNS", "policyDescription": "BRMS Param vDNS policy", "value "policyScope": "01com", "attributes": { }, "MATCHING": { "namecontroller" : "mme_addramsterdam", }, "value":"vmme_private_ip_0" }, "RULE": { { "nametemplateName": "gtp_bind_addrClosedLoopControlName", "value":"vmme_private_ip_0" }, { "name":"n_prob", "value":50 }, "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3", { "namecontrolLoopYaml": "vnfHostIpAddress", "value": " veb_private_ip_0" } ], "usePreload":true } 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 |
TODO - Update the HTML escaped YAML
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "policyConfigType": "BRMS_PARAM", "policyName": "com.BRMSParamvDNS", "policyDescription": "BRMS Param vDNS policy",controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0D%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-scale-up%0D%0A++++name%3A+Create+a+new+VF+Module%0D%0A++++description%3A%0D%0A++++actor%3A+SO%0D%0A++++recipe%3A+VF+Module+Create%0D%0A++++target%3A%0D%0A++++++type%3A+VNF%0D%0A++++payload%3A%0D%0A++++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue,%22userParams%22%3A%5B%5D%7D%27%0D%0A++++++configurationParameters%3A+%27%5B%7B%22availability-zone%22%3A%22$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone%5B0%5D%22,%22xtz-123%22%3A%22$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone%5B0%5D%22%7D%5D%27%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard" "policyScope": "com", } "attributes": { "MATCHING": { "controller" : "amsterdam"} }' 'http://pdp:8081/pdp/api/createPolicy' |
Code Block | ||||
---|---|---|---|---|
| ||||
# PROTOTYPE - development needs to be done first curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "policyClass": "Decision", "policyName": "com.vDNS.MinMax", "policyDescription": "Ensure number of instances within a range", "onapName": "PDPD", }, "ruleProvider": "GUARD_MIN_MAX", "attributes": { "RULEMATCHING": { "templateNameactor": "ClosedLoopControlNameSO", "closedLoopControlNamerecipe": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3scaleOut", "controlLoopYamltargets": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+.*", "clname": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0D%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-scale-up%0D%0A++++name%3A+Create+a+new+VF+Module%0D%0A++++description%3A%0D%0A++++actor%3A+SO%0D%0A++++recipe%3A+VF+Module+Create%0D%0A++++target%3A%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"cc953cf779b3", "min": "1", "max": "5", "guardActiveStart": "00:00:01-05:00", "guardActiveEnd": "00:00:00-05:00" } } }' 'http://pdp:8081/pdp/api/createPolicy' |
Code Block | ||||
---|---|---|---|---|
| ||||
# DRAFT - this needs to be tested first
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
"policyClass": "Decision",
"policyName": "com.vDNS.Frequency",
"policyDescription": "Limit vDNS Scale Up over time period",
"onapName": "PDPD",
"ruleProvider": "GUARD_YAML",
"attributes": {
"MATCHING": {
"actor": "SO",
"recipe": "scaleOut",
"targets": ".*",
"clname": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
"limit": "1",
"timeWindow": "10",
"timeUnits": "minute",
"guardActiveStart": "00:00:01-05:00",
"guardActiveEnd": "00:00:00-05:00"
}
}
}' 'http://pdp:8081/pdp/api/createPolicy'
|
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
"pdpGroup": "default",
"policyName": "com.BRMSParamvDNS",
"policyType": "BRMS_Param"
}' 'http://pdp:8081/pdp/api/pushPolicy'
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
"pdpGroup": "default",
"policyName": "com.vDNS.MinMax",
"policyType": "DECISION"
}' 'http://pdp:8081/pdp/api/pushPolicy'
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
"pdpGroup": "default",
"policyName": "com.vDNS.Frequency",
"policyType": "DECISION"
}' 'http://pdp:8081/pdp/api/pushPolicy'
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
"pdpGroup": "default",
"policyName": "com.MicroServicevDNS",
"policyType": "MicroService"
}' 'http://pdp:8081/pdp/api/pushPolicy' |
DCAE Events and A&AI Enrichment (if necessary)
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
#PLD find the vserver version
https://{aai}/aai/v11/nodes/vservers?vserver-name=dfw1lb01lb01
|
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"vserver": [
{
"in-maint": false,
"is-closed-loop-disabled": true,
"prov-status": "ACTIVE",
"relationship-list": {
"relationship": [
{
"related-link": "/aai/v11/network/generic-vnfs/generic-vnf/807a3f02-f878-436b-870c-f0e91e81570d",
"related-to": "generic-vnf",
"related-to-property": [
{
"property-key": "generic-vnf.vnf-name",
"property-value": "vLoadBalancerMS-Vnf-0809-2"
}
],
"relationship-data": [
{
"relationship-key": "generic-vnf.vnf-id",
"relationship-value": "807a3f02-f878-436b-870c-f0e91e81570d"
}
]
},
{
"related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/6e219e86-cd94-4989-9119-def29aa10b12",
"related-to": "image",
"related-to-property": [
{
"property-key": "image.image-name",
"property-value": "unknown"
}
],
"relationship-data": [
{
"relationship-key": "cloud-region.cloud-owner",
"relationship-value": "CloudOwner"
},
{
"relationship-key": "cloud-region.cloud-region-id",
"relationship-value": "RegionOne"
},
{
"relationship-key": "image.image-id",
"relationship-value": "6e219e86-cd94-4989-9119-def29aa10b12"
}
]
},
{
"related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39",
"related-to": "flavor",
"related-to-property": [
{
"property-key": "flavor.flavor-name",
"property-value": "m1.medium"
}
],
"relationship-data": [
{
"relationship-key": "cloud-region.cloud-owner",
"relationship-value": "CloudOwner"
},
{
"relationship-key": "cloud-region.cloud-region-id",
"relationship-value": "RegionOne"
},
{
"relationship-key": "flavor.flavor-id",
"relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39"
}
]
}
]
},
"resource-version": "1533850964910",
"vserver-id": "1c94da3f-16f1-4fc7-9ed1-e018dfa62774",
"vserver-name": "vlb-ms-0809-1",
"vserver-name2": "vlb-ms-0809-7",
"vserver-selflink": "http://localhost:8774/v2.1/4086f396c5e04caf9502c5fdeca575c4/servers/1c94da3f-16f1-4fc7-9ed1-e018dfa62774"
}
]
}
|
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"
# TODO - add in the enriched A&AI
},
"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"
} |
A&AI API Interaction
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#PLD find the vserver version
https://{aai}/aai/search/named-query
{
"query-parameters": {
"named-query": {
"named-query-uuid": "4ff56a54-9e3f-46b7-a337-07a1d3c6b469"
}
},
"instance-filters": {
"instance-filter": [
{
"vserver": {
"vserver-name": "vserver-71c978fb-29b8-437d-80e6-acf3a3a91e69"
}
}
]
}
}
|
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "inventory-response-item": [ { "vserver": { "vserver-id": "143473ac-1b32-47bc-aa07-10a680d2bbbb", "vserver-name": "vlb-ms-0706-1", "vserver-name2": "vlb-ms-0706-1", "prov-status": "ACTIVE", "vserver-selflink": "http://ecompctl1.research.att.com:8774/v2/3f2aaef74ecb4b19b35e26d0849fe9a2/servers/143473ac-1b32-47bc-aa07-10a680d2bbbb", "in-maint": false, "is-closed-loop-disabled": false, "resource-version": "1531949079952" }, "extra-properties": {}, "inventory-response-items": { "inventory-response-item": [ { "model-name": "vLoadBalancerMS", "generic-vnf": { "vnf-id": "f524b92a-b5bd-4c9d-9c92-2ef672bc070f", "vnf-name": "vLoadBalancerMS-Vnf-0706-1", "vnf-type": "vLoadBalancerMS/vLoadBalancerMS 0", "service-id": "50e1b0be-e0c9-48e2-9f42-15279a783ee8", "prov-status": "PROV", "orchestration-status": "Active", "ipv4-oam-address": "10.0.150.1", "in-maint": false, "is-closed-loop-disabled": false, "resource-version": "1533141664663", "model-invariant-id": "32f7ec6a-1c54-4c06-a548-fe84832e3c40", "model-version-id": "2db7689c-a979-4418-b71f-6a45a32f4791", "model-customization-id": "f3af2f41-8ea2-4f3c-8d85-aaede9699a71", "nf-type": "nf-type", "nf-function": "nf-function", "nf-role": "nf-role", "nf-naming-code": "" }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "2db7689c-a979-4418-b71f-6a45a32f4791" }, { "property-name": "model-ver.model-name", "property-value": "vLoadBalancerMS" }, { "property-name": "model.model-type", "property-value": "resource" }, { "property-name": "model.model-invariant-id", "property-value": "32f7ec6a-1c54-4c06-a548-fe84832e3c40" }, { "property-name": "model-ver.model-version", "property-value": "1.0" } ] }, "inventory-response-items": { "inventory-response-item": [ { "model-name": "vLoadBalancerMS", "service-instance": { "service-instance-id": "f242d516-7c96-4b02-a74d-4363b4267459", "service-instance-name": "vLoadBalancerMS-Service-0706-1", "environment-context": "General_Revenue-Bearing", "workload-context": "Production", "model-invariant-id": "2d4e2c32-2ffb-494a-9677-073a08f637dd", "model-version-id": "4dd37f02-7da5-451c-ba76-032a5b465c65", "resource-version": "1530889799597", "orchestration-status": "Active" }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "4dd37f02-7da5-451c-ba76-032a5b465c65" }, { "property-name": "model-ver.model-name", "property-value": "vLoadBalancerMS" }, { "property-name": "model.model-type", "property-value": "service" }, { "property-name": "model.model-invariant-id", "property-value": "2d4e2c32-2ffb-494a-9677-073a08f637dd" }, { "property-name": "model-ver.model-version", "property-value": "1.0" } ] } }, { "model-name": "Vloadbalancerms..dnsscaling..module-1", "vf-module": { "vf-module-id": "c0831ca7-0a20-4f03-a183-1135381b8707", "vf-module-name": "vLoadBalancerMS-Vnf-0706-1_2", "heat-stack-id": "vLoadBalancerMS-Vnf-0706-1_2/122b563a-2c56-4804-aa81-970ba7741b55", "orchestration-status": "active", "is-base-vf-module": false, "resource-version": "1531510457103", "model-invariant-id": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b", "model-version-id": "3db507c6-bec6-47a3-9ac3-5978d3f03882", "model-customization-id": "1726b74e-8831-4b0a-a1f3-c254cc2e8fef", "module-index": 0 }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "3db507c6-bec6-47a3-9ac3-5978d3f03882" }, { "property-name": "model-ver.model-name", "property-value": "Vloadbalancerms..dnsscaling..module-1" }, { "property-name": "model.model-type", "property-value": "resource" }, { "property-name": "model.model-invariant-id", "property-value": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b" }, { "property-name": "model-ver.model-version", "property-value": "1" } ] } }, { "model-name": "Vloadbalancerms..dnsscaling..module-1", "vf-module": { "vf-module-id": "50e6e588-fe87-4663-aa10-51964f51a67d", "vf-module-name": "vLoadBalancerMS-Vnf-0706-1_4", "heat-stack-id": "vLoadBalancerMS-Vnf-0706-1_4/ec246cff-38e3-4c89-99bf-21bc925b073c", "orchestration-status": "active", "is-base-vf-module": false, "resource-version": "1531925572435", "model-invariant-id": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b", "model-version-id": "3db507c6-bec6-47a3-9ac3-5978d3f03882", "model-customization-id": "1726b74e-8831-4b0a-a1f3-c254cc2e8fef", "module-index": 2 }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "3db507c6-bec6-47a3-9ac3-5978d3f03882" }, { "property-name": "model-ver.model-name", "property-value": "Vloadbalancerms..dnsscaling..module-1" }, { "property-name": "model.model-type", "property-value": "resource" }, { "property-name": "model.model-invariant-id", "property-value": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b" }, { "property-name": "model-ver.model-version", "property-value": "1" } ] } }, { "model-name": "Vloadbalancerms..dnsscaling..module-1", "vf-module": { "vf-module-id": "8853e587-07d9-4081-9f90-61af87cd34bf", "vf-module-name": "vLoadBalancerMS-Vnf-0706-1_3", "heat-stack-id": "vLoadBalancerMS-Vnf-0706-1_3/10d56b1b-1d3e-4677-a31f-3449e1e3c457", "orchestration-status": "active", "is-base-vf-module": false, "resource-version": "1531840660936", "model-invariant-id": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b", "model-version-id": "3db507c6-bec6-47a3-9ac3-5978d3f03882", "model-customization-id": "1726b74e-8831-4b0a-a1f3-c254cc2e8fef", "module-index": 1 }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "3db507c6-bec6-47a3-9ac3-5978d3f03882" }, { "property-name": "model-ver.model-name", "property-value": "Vloadbalancerms..dnsscaling..module-1" }, { "property-name": "model.model-type", "property-value": "resource" }, { "property-name": "model.model-invariant-id", "property-value": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b" }, { "property-name": "model-ver.model-version", "property-value": "1" } ] } }, { "model-name": "Vloadbalancerms..dnsscaling..module-1", "vf-module": { "vf-module-id": "51dbbf67-6e25-4d0c-8c18-ba7f21b8cfb3", "vf-module-name": "vLoadBalancerMS-Vnf-0706-1_6", "heat-stack-id": "vLoadBalancerMS-Vnf-0706-1_6/8486eafa-d860-4c17-a1bf-a1c436290806", "orchestration-status": "active", "is-base-vf-module": false, "resource-version": "1532638352675", "model-invariant-id": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b", "model-version-id": "3db507c6-bec6-47a3-9ac3-5978d3f03882", "model-customization-id": "1726b74e-8831-4b0a-a1f3-c254cc2e8fef", "module-index": 4 }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "3db507c6-bec6-47a3-9ac3-5978d3f03882" }, { "property-name": "model-ver.model-name", "property-value": "Vloadbalancerms..dnsscaling..module-1" }, { "property-name": "model.model-type", "property-value": "resource" }, { "property-name": "model.model-invariant-id", "property-value": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b" }, { "property-name": "model-ver.model-version", "property-value": "1" } ] } }, { "model-name": "Vloadbalancerms..dnsscaling..module-1", "vf-module": { "vf-module-id": "c6256fd8-dfa7-49fd-a320-4be08bb3a49d", "vf-module-name": "vLoadBalancerMS-Vnf-0706-1_7", "heat-stack-id": "vLoadBalancerMS-Vnf-0706-1_7/8a587bc3-96b1-4ba7-9f4a-d40f669d08de", "orchestration-status": "active", "is-base-vf-module": false, "resource-version": "1532702700715", "model-invariant-id": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b", "model-version-id": "3db507c6-bec6-47a3-9ac3-5978d3f03882", "model-customization-id": "1726b74e-8831-4b0a-a1f3-c254cc2e8fef", "module-index": 5 }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "3db507c6-bec6-47a3-9ac3-5978d3f03882" }, { "property-name": "model-ver.model-name", "property-value": "Vloadbalancerms..dnsscaling..module-1" }, { "property-name": "model.model-type", "property-value": "resource" }, { "property-name": "model.model-invariant-id", "property-value": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b" }, { "property-name": "model-ver.model-version", "property-value": "1" } ] } }, { "model-name": "Vloadbalancerms..dnsscaling..module-1", "vf-module": { "vf-module-id": "dummy_f524b92a-b5bd-4c9d-9c92-2ef672bc070f", "vf-module-name": "vLoadBalancerMS-Vnf-0706-1_0", "is-base-vf-module": false, "resource-version": "1537212348939", "model-invariant-id": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b", "model-version-id": "3db507c6-bec6-47a3-9ac3-5978d3f03882", "model-customization-id": "1726b74e-8831-4b0a-a1f3-c254cc2e8fef" }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "3db507c6-bec6-47a3-9ac3-5978d3f03882" }, { "property-name": "model-ver.model-name", "property-value": "Vloadbalancerms..dnsscaling..module-1" }, { "property-name": "model.model-type", "property-value": "resource" }, { "property-name": "model.model-invariant-id", "property-value": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b" }, { "property-name": "model-ver.model-version", "property-value": "1" } ] } }, { "model-name": "Vloadbalancerms..dnsscaling..module-1", "vf-module": { "vf-module-id": "aa9294f3-8cd6-483c-8165-8e303b7022a4", "vf-module-name": "vLoadBalancerMS-Vnf-0706-1_5", "heat-stack-id": "vLoadBalancerMS-Vnf-0706-1_5/39e7f1bd-1746-4370-aec5-1ff83a28a9a9", "orchestration-status": "active", "is-base-vf-module": false, "resource-version": "1532616866686", "model-invariant-id": "285adb8d-b6b4-41f6-8f28-48f86ad4fa3b", "model-version-id": "3db507c6-bec6-47a3-9ac3-5978d3f03882", "model-customization-id": "1726b74e-8831-4b0a-a1f3-c254cc2e8fef", "module-index": 3 }, "extra-properties": { "extra-property": [ { "property-name": "model-ver.model-version-id", "property-value": "3db507c6-bec6-47a3-9ac3-5978d3f03882" }, { "property-name": "model-ver.model-name", "property-value": "Vloadbalancerms..dnsscaling..module-1" }, { "property-name": "model.model-type", "property-value": "resource" }, { } "property-name": "model.model-invariant-id", } }' 'http://pdp:8081/pdp/api/createPolicy' | ||||||
Code Block | ||||||
| ||||||
# PROTOTYPE - development needs to be done first curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "policyClassproperty-value": "Decision",285adb8d-b6b4-41f6-8f28-48f86ad4fa3b" "policyName": "com.vDNS.MinMax", "policyDescription": "Ensure number of instances within a range", "ecompName": "PDPD", }, "ruleProvider": "GUARD_YAML", "attributes": { "MATCHING": { { "actor": "SO", "recipeproperty-name": "scaleOutmodel-ver.model-version", "targets": ".*", "clnameproperty-value": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",1" "min": "1", } "max": "5", "guardActiveStart": "00:00:01-05:00", ] "guardActiveEnd": "00:00:00-05:00" } } }' 'http://pdp:8081/pdp/api/createPolicy' | ||||||
Code Block | ||||||
| ||||||
# DRAFT - this needs to be tested first curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ }, "policyClass": "Decision", { "policyName": "com.vDNS.Frequency", "policyDescription": "Limit vDNS Scale Up over time period", "ecompName": "PDPD", "ruleProvidermodel-name": "GUARD_YAMLVloadbalancerms..base_vlb..module-0", "attributes": { "MATCHING": { "vf-module": { "actor": "SO", "recipevf-module-id": "scaleOut155949a5-8494-45c8-84db-3675dcc5a64f", "targets": ".*", "vf-module-name": "Vfmodule_vLBMS-0706-1", "clname": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3", "limitheat-stack-id": "Vfmodule_vLBMS-0706-1", /76c42b6b-09b0-434b-85a7-2b226eb3d31c", "timeWindow": "10", "timeUnitsorchestration-status": "minuteactive", "guardActiveStart": "00:00:01-05:00", "guardActiveEnd": "00:00:00-05:00" "is-base-vf-module": true, } } }' 'http://pdp:8081/pdp/api/createPolicy' | ||||||
Code Block | ||||||
| ||||||
curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "pdpGroupresource-version": "default1530890184655", "policyName": "com.BRMSParamvDNS", "policyType": "BRMS_Param" }' 'http://pdp:8081/pdp/api/pushPolicy' curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "pdpGroup": "default", "policyNamemodel-invariant-id": "com.vDNS.MinMaxf96252ec-2729-45c7-ae73-a4e4bf495838", "policyType": "DECISION" }' 'http://pdp:8081/pdp/api/pushPolicy' curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "pdpGroup": "default", "policyNamemodel-version-id": "com.vDNS.Frequency75122eb8-1482-4c68-b7cf-dd8458f58ba5", "policyType": "DECISION" }' 'http://pdp:8081/pdp/api/pushPolicy' curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{ "pdpGroup": "default", "policyName": "com.MicroServicevDNS", "policyTypemodel-customization-id": "MicroService" }' 'http://pdp:8081/pdp/api/pushPolicy' |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{f979a817-584e-4857-b585-c8f409eccbdd", "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca", "policyVersionmodule-index": "1.0.0.5",0 "policyName": "vLoadBalancer", "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop", }, "target_type": "VM", "AAIextra-properties": { "vserver.vserverextra-nameproperty": "dfw1lb01lb01" [ }, { "closedLoopAlarmStart": 1484677482204798, "closedLoopEventStatus": "ONSET", "closedLoopControlNameproperty-name": "ControlLoopmodel-vDNSver.model-6f37f56d-a87d-4b85-b6a9-cc953cf779b3version-id", "version": "1.0.2", "targetproperty-value": "vserver.vserver-name",75122eb8-1482-4c68-b7cf-dd8458f58ba5" "requestID": "97964e10-686e-4790-8c45-bdfa61df770f", "from": "DCAE" } | ||||||
Code Block | ||||||
| ||||||
#PLD find the vserver version https://{aai}/aai/v11/nodes/vservers?vserver-name=dfw1lb01lb01}, | ||||||
Code Block | ||||||
| ||||||
{ "vserver": [ { "in-maint": false, { "is-closed-loop-disabled": true, "prov-status": "ACTIVE", "relationship-list": { "relationshipproperty-name": [ "model-ver.model-name", { "relatedproperty-linkvalue": "/aai/v11/network/generic-vnfs/generic-vnf/807a3f02-f878-436b-870c-f0e91e81570d",Vloadbalancerms..base_vlb..module-0" "related-to": "generic-vnf", }, "related-to-property": [ { { "property-key": "generic-vnf.vnf-name", "property-name": "model.model-type", "property-value": "vLoadBalancerMS-Vnf-0809-2" } "property-value": "resource" ], "relationship-data": [ }, { { "relationship-key": "generic-vnf.vnf-id", "relationshipproperty-valuename": "807a3f02model.model-f878-436b-870c-f0e91e81570d"invariant-id", } "property-value": "f96252ec-2729-45c7-ae73-a4e4bf495838" ] }, }, { "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/6e219e86-cd94-4989-9119-def29aa10b12", { "related-to": "image", "related-to-property": [ "property-name": "model-ver.model-version", { "property-keyvalue": "image.image-name",1" "property-value": "unknown" } } ] ], "relationship-data": [ } { } "relationship-key": "cloud-region.cloud-owner", ] } "relationship-value": "CloudOwner" }, }, { { "tenant": { "relationshiptenant-keyid": "cloud-region.cloud-region-id3f2aaef74ecb4b19b35e26d0849fe9a2", "relationshiptenant-valuename": "RegionOneONAP-demo-test", }, "resource-version": "1529419258510" }, { "extra-properties": {}, "relationship-key": "image.image-id", "inventory-response-items": { "relationship-value": "6e219e86-cd94-4989-9119-def29aa10b12" "inventory-response-item": [ } { ] }, "cloud-region": { { "relatedcloud-linkowner": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", "related-to "cloud-region-id": "flavorRegionOne", "related-to-property": [ "cloud-type": "openstack", { "property-key"owner-defined-type": "flavor.flavor-nameowner type", "property-value": "m1.medium" "cloud-region-version": "v2.5", } "cloud-zone": "zone-1", ], "relationship-data": [ "sriov-automation": false, { "resource-version": "1529419258443" "relationship-key": "cloud-region.cloud-owner", }, "relationship-value": "CloudOwner" "extra-properties": {}, {} ] "relationship-key": "cloud-region.cloud-region-id", } "relationship-value": "RegionOne" } ] }, } } ] } |
SO API Interaction
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
https://{so}/serviceInstantiation/v7/3b12f31f-8f2d-4f5c-b875-61ff1194b941/vnfs/db373a8d-f7be-4d02-8ac8-6ca4c305d144/vfModules/scaleOut { "requestDetails": { "modelInfo": { "modelType": "vfModule", "modelInvariantId": "356a1cff-71f2-4086-9980-a2927ce11c1c", "relationship-keymodelVersionId": "flavor.flavor-id6b93d804-cfc8-4be3-92cc-9336d135859a", "modelName": "Vloadbalancer..dnsscaling..module-1", "modelVersion": "1" }, "cloudConfiguration": { "relationship-valuelcpCloudRegionId": "764efb04-5a46-4806-a766-2bdd24559f39"RegionOne", "tenantId": "41d6d38489bd40b09ea8a6b6b852dcbd" }, "requestInfo": { "instanceName": "my_module_3", } "source": "POLICY", "suppressRollback": false, "requestorId": "policy" ] }, "relatedInstanceList": [ { } "relatedInstance": { "instanceId": ]"3b12f31f-8f2d-4f5c-b875-61ff1194b941", "modelInfo": { }, "resource-versionmodelType": "1533850964910service", "vserver-idmodelInvariantId": "1c94da3f1321d60d-16f1f7ff-4fc74300-9ed196c2-e018dfa627746bf0b3268b7a", "vserver-namemodelVersionId": "vlb732d4692-4b97-ms46f9-0809a996-10b3339e88c50", "vserver-name2modelName": "vlb-ms-0809-7vLoadBalancer-1106", "vserver-selflinkmodelVersion": "http://localhost:8774/v2.1/4086f396c5e04caf9502c5fdeca575c4/servers/1c94da3f-16f1-4fc7-9ed1-e018dfa62774" 1.0" } } }, ] { } | ||||||
Code Block | ||||||
| ||||||
{ "relatedInstance": { "closedLoopEventClientinstanceId": "DCAE_INSTANCE_ID.dcae-tca",db373a8d-f7be-4d02-8ac8-6ca4c305d144", "modelInfo": { "policyVersionmodelType": "1.0.0.5vnf", "policyNamemodelInvariantId": "vLoadBalancercee050ed-92a5-494f-ab04-234307a846dc", "policyScopemodelVersionId": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoopfd65becc-6b2c-4fe8-ace9-cc29db9a3da2", "target_type"modelName": "VMvLoadBalancer", "AAImodelVersion": { "1.0", "vserver.vserver-name"modelCustomizationName": "dfw1lb01lb01vLoadBalancer 0" # TODO - add in the enriched A&AI } } }, ], "requestParameters": { "closedLoopAlarmStartusePreload": 1484677482204798true, "userParams": [] }, "closedLoopEventStatusconfigurationParameters": "ONSET",[ { "closedLoopControlNameavailability-zone": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[0]", "version"xtz-123": "1.0.2",$.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[0]" } ] } } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "requestReferences": { "targetrequestId": "vserver.vserver-name", "requestID": "97964e10-686e-4790-8c45-bdfa61df770f", "from": "DCAE" } |
...
60533ee3-814d-4949-be93-e6b26aace580"
},
"request": {
"requestId":"d5bc27f2-1d5c-405d-a985-3e3f544c1582",
"requestStatus": {
"percentProgress": 0,
"requestState": "IN_PROGRESS",
"wasRolledBack": false
}
},
"httpResponseCode": 0
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
TODO - this is new workhttps://{so}/orchestrationRequests/v5/60533ee3-814d-4949-be93-e6b26aace580 |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
TODO - this is new work | ||||||
Code Block | ||||||
| ||||||
TODO - this is new work{ "requestReferences": { "requestId": "60533ee3-814d-4949-be93-e6b26aace580" }, "request": { "requestId":"d5bc27f2-1d5c-405d-a985-3e3f544c1582", "requestStatus": { "percentProgress": 100, "requestState": "COMPLETE", "wasRolledBack": false } }, "httpResponseCode": 0 } |
vFirewall
Policy Creation
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": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta", "thresholdValue": 300, "direction": "LESS_OR_EQUAL", "severity": "MAJOR", "closedLoopEventStatus": "ONSET" }, { "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta", "thresholdValue": 700, "direction": "GREATER_OR_EQUAL", "severity": "CRITICAL", "closedLoopEventStatus": "ONSET" } ] } ] }" |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
URL: https://<AAI host>:<AAI port>/aai/v14/network/pnfs/pnf/{pnfName}/p-interfaces?interface-name={ifName}&operational-status={status} Method: GET Resquest Body: { } Response Body: { "results" : [ { "p-interface" : { "interface-name":{ifName}", "network-ref": "some ref", "transparent": "some blue", "operational-status":"[status}", "speed-value" : "some speed", "relationship-list": "relationship" : [ { "related-to" : "logic-link", "related-link" :'url of logical-link", "relationship-data":[ "relationship-key" : "logical-link.link.name", "relationship-value"; "some name" ] } ] } ] } |
Service Instance Information
...
Queries
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
URL: https://<AAI host>:<AAI port>/aai/v14/network/network-resources/network-resource/{networkId}/pnfs/pnf/{pnfName}/p-interfaces?interface-name={ifName}&operational-status={status} Method: GET Request Body: { } Response Body: { "results": [ { "p-interface": { "interface-name": "{ifName}", "network-ref": "some ref", "transparent": "some value", "operational-status ": "{status}", "speed-value": "some speed", "relationship-list": { "relationship" : [ { "related-to": "vpn-binding", "related-link": "url of vpn-binding", "relationship-data": [ "relationship-key": "vpn-binding.vpn-id", "relationship-value": "some id" ] } ] } } } ] } |
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
URL: https://<AAI host>:<AAI port>/aai/v14/business/customers/customer/{global-custoner-id}/service-subscriptions/service-subscription/{service-type}/service-instances?service-instance-id={serviceId} Method: GET Request Body: { } Response Body: { "service-instance-id": "{service-instance-id}", "service-instance-name" : "instance name", "service-type": "some type", "service-role": "some role", "model-invariant-id": "model id", "model-version-id": "model version", "input-parameters:"request parameters", // ... This is the service instance recreation input looked up by CL. "resource-version": "some version" } Example of response body: { "service-instance-id": "176d9eba-1662-4289-8396-0097b50fd485", "service-type": "E2E Service", "service-role": "E2E Service", "model-invariant-id": "c22a9483-d2b6-49cc-b1f7-ef34c93572a1", "model-version-id": "71d0e396-e246-4c23-aa57-6da2043d6209", "input-parameters:".....;", // ... This is the service instance recreation input looked up by CL. "resource-version": "1528975017336" "relationship-list": { "relationship": [ { "related-to": "pnf", "related-link": "/aai/v11/network/pnfs/pnf/MME-0001", "relationship-data": [ { "relationship-key": "pnf.pnf-id", "relationship-value": "176d9eba-1662-4289-8396-0097b50fd466" } ], "related-to-property": [ { "property-key": "pnf.pnf-name", "property-value": "MME-0001" } ] } ] } } |
SO API Interaction
requestParameters: '{}'