diff options
Diffstat (limited to 'test')
7 files changed, 252 insertions, 17 deletions
diff --git a/test/csit/plans/sdnc/healthcheck/setup.sh b/test/csit/plans/sdnc/healthcheck/setup.sh index 3db43559a..53590264b 100644 --- a/test/csit/plans/sdnc/healthcheck/setup.sh +++ b/test/csit/plans/sdnc/healthcheck/setup.sh @@ -22,7 +22,7 @@ source ${WORKSPACE}/test/csit/scripts/sdnc/script1.sh export NEXUS_USERNAME=docker export NEXUS_PASSWD=docker -export NEXUS_DOCKER_REPO=nexus3.onap.org:10003 +export NEXUS_DOCKER_REPO=nexus3.onap.org:10001 export DMAAP_TOPIC=AUTO export DOCKER_IMAGE_VERSION=1.2-STAGING-latest export CCSDK_DOCKER_IMAGE_VERSION=0.1-STAGING-latest diff --git a/test/csit/tests/aai/traversal/suite1/custom_query_all_formats.robot b/test/csit/tests/aai/traversal/suite1/custom_query_all_formats.robot new file mode 100644 index 000000000..0e582603d --- /dev/null +++ b/test/csit/tests/aai/traversal/suite1/custom_query_all_formats.robot @@ -0,0 +1,190 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library requests +Library Collections + +*** Variables *** +${GENERICVNFKEYVALUE} generic-vnf-integration-test1 +${PSERVERKEYVALUE} pserver-integration-test1 +${GENERICVNFURL} https://${HOST_IP}:8443/aai/v11/network/generic-vnfs/generic-vnf/${GENERICVNFKEYVALUE} +${PSERVERURL} https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/pservers/pserver/${PSERVERKEYVALUE} +${RELATIONSHIPURL} https://${HOST_IP}:8443/aai/v11/network/generic-vnfs/generic-vnf/${GENERICVNFKEYVALUE}/relationship-list/relationship +${CUSTOMQUERYURL} https://${HOST_IP}:8443/aai/v11/query?format=simple +${CUSTOMQUERYURL_GRAPHSON} https://${HOST_IP}:8443/aai/v11/query?format=graphson +${CUSTOMQUERYURL_ID} https://${HOST_IP}:8443/aai/v11/query?format=id +${CUSTOMQUERYURL_PATHED} https://${HOST_IP}:8443/aai/v11/query?format=pathed +${CUSTOMQUERYURL_RESOURCE} https://${HOST_IP}:8443/aai/v11/query?format=resource +${CUSTOMQUERYURL_RESOURCE_URL} https://${HOST_IP}:8443/aai/v11/query?format=resource_and_url +${CUSTOMQUERYURL_RAW} https://${HOST_IP}:8443/aai/v11/query?format=raw +${GENERICVNFDATA} {"vnf-id":"${GENERICVNFKEYVALUE}","vnf-name":"example-vnf-name-val-51663","vnf-name2":"example-vnf-name2-val-15450","vnf-type":"example-vnf-type-val-32726"} +${PSERVERDATA} { "hostname": "${PSERVERKEYVALUE}", "ptnii-equip-name": "example-ptnii-equip-name-val-91724", "number-of-cpus": 56461, "disk-in-gigabytes": 13534, "ram-in-megabytes": 66589, "equip-type": "example-equip-type-val-94149", "equip-vendor": "example-equip-vendor-val-91811", "equip-model": "example-equip-model-val-26157", "fqdn": "example-fqdn-val-19743", "pserver-selflink": "example-pserver-selflink-val-67676", "ipv4-oam-address": "example-ipv4-oam-address-val-12819", "serial-number": "example-serial-number-val-33384", "ipaddress-v4-loopback-0": "example-ipaddress-v4-loopback0-val-63311", "ipaddress-v6-loopback-0": "example-ipaddress-v6-loopback0-val-70485", "ipaddress-v4-aim": "example-ipaddress-v4-aim-val-23497", "ipaddress-v6-aim": "example-ipaddress-v6-aim-val-24473", "ipaddress-v6-oam": "example-ipaddress-v6-oam-val-38196", "inv-status": "example-inv-status-val-10016", "pserver-id": "example-pserver-id-val-90123", "internet-topology": "example-internet-topology-val-17042", "in-maint": true, "pserver-name2": "example-pserver-name2-val-12304", "purpose": "example-purpose-val-86719", "prov-status": "example-prov-status-val-68126", "management-option": "example-management-option-val-86521", "host-profile": "example-host-profile-val-48679" } +${CUSTOMQUERYDATA} {"gremlin":"g.V().has(\\'hostname\\', \\'${PSERVERKEYVALUE}\\')"} +${PSERVER_GENERIC_VNF_RELATIONSHIPDATA} {"related-to":"pserver","relationship-data":[{"relationship-key":"pserver.hostname","relationship-value":"${PSERVERKEYVALUE}"}]} + +*** Test Cases *** +Run AAI Put generic-vnf + [Documentation] Create an generic-vnf object + ${resp}= PutWithCert ${GENERICVNFURL} ${GENERICVNFDATA} + log ${GENERICVNFURL} + log ${resp.text} + Should Be Equal As Strings ${resp.status_code} 201 + +Run AAI Put pserver + [Documentation] Create an pserver object + ${resp}= PutWithCert ${PSERVERURL} ${PSERVERDATA} + log ${PSERVERURL} + log ${resp.text} + Should Be Equal As Strings ${resp.status_code} 201 + +Run AAI Put relationship of pserver and generic-vnf + [Documentation] Create relationship of pserver and generic-vnf + ${resp}= PutWithCert ${RELATIONSHIPURL} ${PSERVER_GENERIC_VNF_RELATIONSHIPDATA} + log ${RELATIONSHIPURL} + log ${resp.text} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Get pserver + [Documentation] Get the pserver object just relationship + ${resp} GetWithCert ${PSERVERURL} + log ${resp} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Get generic-vnf + [Documentation] Get the generic-vnf object just relationship + ${resp} GetWithCert ${GENERICVNFURL} + log ${resp} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Put custom query simple format + [Documentation] custom query simple format + log ${CUSTOMQUERYDATA} + ${resp}= PutWithCert ${CUSTOMQUERYURL} ${CUSTOMQUERYDATA} + log ${CUSTOMQUERYURL} + log ${resp.text} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Put custom query graphson format + [Documentation] custom query graphson format + log ${CUSTOMQUERYDATA} + ${resp}= PutWithCert ${CUSTOMQUERYURL_GRAPHSON} ${CUSTOMQUERYDATA} + log ${CUSTOMQUERYURL_GRAPHSON} + log ${resp.text} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Put custom query id format + [Documentation] custom query id format + log ${CUSTOMQUERYDATA} + ${resp}= PutWithCert ${CUSTOMQUERYURL_ID} ${CUSTOMQUERYDATA} + log ${CUSTOMQUERYURL_ID} + log ${resp.text} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Put custom query pathed format + [Documentation] custom query pathed format + log ${CUSTOMQUERYDATA} + ${resp}= PutWithCert ${CUSTOMQUERYURL_PATHED} ${CUSTOMQUERYDATA} + log ${CUSTOMQUERYURL_PATHED} + log ${resp.text} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Put custom query resource format + [Documentation] custom query resource format + log ${CUSTOMQUERYDATA} + ${resp}= PutWithCert ${CUSTOMQUERYURL_RESOURCE} ${CUSTOMQUERYDATA} + log ${CUSTOMQUERYURL_RESOURCE} + log ${resp.text} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Put custom query resource url format + [Documentation] custom query resource url format + log ${CUSTOMQUERYDATA} + ${resp}= PutWithCert ${CUSTOMQUERYURL_RESOURCE_URL} ${CUSTOMQUERYDATA} + log ${CUSTOMQUERYURL_RESOURCE_URL} + log ${resp.text} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Put custom query raw format + [Documentation] custom query raw format + log ${CUSTOMQUERYDATA} + ${resp}= PutWithCert ${CUSTOMQUERYURL_RAW} ${CUSTOMQUERYDATA} + log ${CUSTOMQUERYURL_RAW} + log ${resp.text} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + +Run AAI Get generic-vnf to delete + [Documentation] Get the generic-vnf object to delete + ${resp} GetWithCert ${GENERICVNFURL} + log ${resp} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + ${resource_version}= Evaluate $resp.json().get('resource-version') + Set Global Variable ${resource_version} + +Run AAI Delete generic-vnf + [Documentation] Delete the generic-vnf + ${resp}= DeleteWithCert ${GENERICVNFURL}?resource-version=${resource_version} + log ${resp.text} + Should Be Equal As Strings ${resp.status_code} 204 + +Run AAI Get pserver to delete + [Documentation] Get the pserver object to delete + ${resp} GetWithCert ${PSERVERURL} + log ${resp} + log ${resp.json()} + Should Be Equal As Strings ${resp.status_code} 200 + ${resource_version}= Evaluate $resp.json().get('resource-version') + Set Global Variable ${resource_version} + +Run AAI Delete pserver + [Documentation] Delete the pserver + ${resp}= DeleteWithCert ${PSERVERURL}?resource-version=${resource_version} + log ${resp.text} + Should Be Equal As Strings ${resp.status_code} 204 + +*** Keywords *** +PutWithCert + [Arguments] ${url} ${data} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.put('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False) requests + [Return] ${resp} + +PatchWithCert + [Arguments] ${url} ${data} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/merge-patch+json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.patch('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False) requests + [Return] ${resp} + +PostWithCert + [Arguments] ${url} ${data} + ${auth}= Create List AAI AAI + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.post('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False) requests + [Return] ${resp} + +GetWithCert + [Arguments] ${url} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.get('${url}', headers=${headers}, cert=${certinfo}, verify=False) requests + [Return] ${resp} + +DeleteWithCert + [Arguments] ${url} + ${auth}= Create List AAI AAI + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=integration-aai X-FromAppId=integration-aai Authorization=Basic QUFJOkFBSQ== + ${certinfo}= Evaluate ('${CURDIR}/aai.crt', '${CURDIR}/aai.key') + ${resp}= Evaluate requests.delete('${url}', headers=${headers}, cert=${certinfo}, verify=False) requests + [Return] ${resp} diff --git a/test/csit/tests/policy/suite1/Policy-CSIT.robot b/test/csit/tests/policy/suite1/Policy-CSIT.robot index be52cd2ea..c7cc7256a 100644 --- a/test/csit/tests/policy/suite1/Policy-CSIT.robot +++ b/test/csit/tests/policy/suite1/Policy-CSIT.robot @@ -7,16 +7,16 @@ Resource policy_interface.robot Resource json_templater.robot *** Variables *** -${RESOURCE_PATH_CREATE} /pdp/createPolicy -${RESOURCE_PATH_CREATE_PUSH} /pdp/pushPolicy -${RESOURCE_PATH_CREATE_DELETE} /pdp/deletePolicy -${RESOURCE_PATH_GET_CONFIG} /pdp/getConfig +${RESOURCE_PATH_CREATE} /pdp/api/createPolicy +${RESOURCE_PATH_CREATE_PUSH} /pdp/api/pushPolicy +${RESOURCE_PATH_CREATE_DELETE} /pdp/api/deletePolicy +${RESOURCE_PATH_GET_CONFIG} /pdp/api/getConfig ${CREATE_CONFIG_VFW_TEMPLATE} ${CURDIR}/configpolicy_vFW.template ${CREATE_CONFIG_VDNS_TEMPLATE} ${CURDIR}/configpolicy_vDNS.template ${CREATE_CONFIG_VCPE_TEMPLATE} ${CURDIR}/configpolicy_vCPE.template -${CREATE_OPS_VFW_TEMPLATE} ${CURDIR}/opspolicy_VFW.template +${CREATE_OPS_VFW_TEMPLATE} ${CURDIR}/opspolicy_VFW_R1.template ${PUSH_POLICY_TEMPLATE} ${CURDIR}/pushpolicy.template -${CREATE_OPS_VDNS_TEMPLATE} ${CURDIR}/opspolicy_VDNS.template +${CREATE_OPS_VDNS_TEMPLATE} ${CURDIR}/opspolicy_VDNS_R1.template ${DEL_POLICY_TEMPLATE} ${CURDIR}/deletepolicy.template ${GETCONFIG_TEMPLATE} ${CURDIR}/getconfigpolicy.template ${CONFIG_POLICY_VFW_NAME} vFirewall @@ -60,7 +60,21 @@ VCPE Config Policy Push Config Policy ${CONFIG_POLICY_VCPE_NAME} ${CONFIG_POLICY_VCPE_TYPE} #VCPE Policy Tests -#VOLTE Policy +VFW Ops Policy + ${OPS_POLICY_VFW_NAME}= Create Ops VFW Policy + Push Ops Policy ${OPS_POLICY_VFW_NAME} ${OPS_POLICY_VFW_TYPE} + +VDNS Ops Policy + ${OPS_POLICY_VDNS_NAME}= Create Ops VDNS Policy + Push Ops Policy ${OPS_POLICY_VDNS_NAME} ${OPS_POLICY_VDNS_TYPE} + +VCPE Ops Policy + ${OPS_POLICY_VCPE_NAME}= Create Ops VCPE Policy + Push Ops Policy ${OPS_POLICY_VCPE_NAME} ${OPS_POLICY_VCPE_TYPE} + +VOLTE Ops Policy + ${OPS_POLICY_VOLTE_NAME}= Create Ops VOLTE Policy + Push Ops Policy ${OPS_POLICY_VOLTE_NAME} ${OPS_POLICY_VOLTE_TYPE} #VOLTE Policy Tests *** Keywords *** @@ -216,25 +230,24 @@ Create Ops vCPE Policy [Documentation] Create Opertional Policy ${randompolicyname} = Create Policy Name ${policyname1}= Catenate com.${randompolicyname} - ${OPS_POLICY_NAME}= Set Test Variable ${policyname1} - ${dict}= Create Dictionary policy_name=${OPS_POLICY_NAME} - ${NEWPOLICY1}= Create Dictionary policy_name=com.${OPS_POLICY_NAME} + ${OPS_POLICY_VCPE_NAME}= Set Test Variable ${policyname1} + ${dict}= Create Dictionary policy_name=${policyname1} ${output} = Fill JSON Template File ${CREATE_OPS_VCPE_TEMPLATE} ${dict} ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output} Log ${put_resp} Should Be Equal As Strings ${put_resp.status_code} 200 + [Return] ${policyname1} Create Ops VolTE Policy [Documentation] Create Opertional Policy ${randompolicyname} = Create Policy Name - ${policyname2}= Catenate com.${randompolicyname} - #${OPS_POLICY_VOLTE_NAME}= Set Test Variable ${policyname2} - ${dict}= Create Dictionary policy_name=${policyname2} - #${NEWPOLICY1}= Create Dictionary policy_name=com.${OPS_POLICY_NAME} + ${policyname1}= Catenate com.${randompolicyname} + ${dict}= Create Dictionary policy_name=${policyname1} ${output} = Fill JSON Template File ${CREATE_OPS_VOLTE_TEMPLATE} ${dict} ${put_resp} = Run Policy Put Request ${RESOURCE_PATH_CREATE} ${output} Log ${put_resp} Should Be Equal As Strings ${put_resp.status_code} 200 + [Return] ${policyname1} Upload DRL file [Documentation] Upload DRL file1 diff --git a/test/csit/tests/policy/suite1/opspolicy_VDNS_R1.template b/test/csit/tests/policy/suite1/opspolicy_VDNS_R1.template index cfd43c0c8..b5312b500 100644 --- a/test/csit/tests/policy/suite1/opspolicy_VDNS_R1.template +++ b/test/csit/tests/policy/suite1/opspolicy_VDNS_R1.template @@ -8,7 +8,7 @@ "controller" : "amsterdam" }, "RULE": { - "templateName": "policy_ops_1", + "templateName": "ClosedLoopControlName", "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3", "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0D%0A++services%3A%0D%0A++++-+serviceName%3A+d4738992-6497-4dca-9db9%0D%0A++++++serviceInvariantUUID%3A+dc112d6e-7e73-4777-9c6f-1a7fb5fd1b6f%0D%0A++++++serviceUUID%3A+2eea06c6-e1d3-4c3a-b9c4-478c506eeedf%0D%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0D%0A++timeout%3A+1200%0D%0A+%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+MSO%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" } diff --git a/test/csit/tests/policy/suite1/opspolicy_VFW_R1.template b/test/csit/tests/policy/suite1/opspolicy_VFW_R1.template index 94820d431..e9893446e 100644 --- a/test/csit/tests/policy/suite1/opspolicy_VFW_R1.template +++ b/test/csit/tests/policy/suite1/opspolicy_VFW_R1.template @@ -8,7 +8,7 @@ "controller" : "amsterdam" }, "RULE": { - "templateName": "policy_ops_1", + "templateName": "ClosedLoopControlName", "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++services%3A%0D%0A++++-+serviceInvariantUUID%3A+5cfe6f4a-41bc-4247-8674-ebd4b98e35cc%0D%0A++++++serviceUUID%3A+0f40bba5-986e-4b3c-803f-ddd1b7b25f24%0D%0A++++++serviceName%3A+57e66ea7-0ed6-45c7-970f%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%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" } diff --git a/test/csit/tests/policy/suite1/opspolicy_vCPE.template b/test/csit/tests/policy/suite1/opspolicy_vCPE.template new file mode 100644 index 000000000..c17a1bc62 --- /dev/null +++ b/test/csit/tests/policy/suite1/opspolicy_vCPE.template @@ -0,0 +1,16 @@ +{ + "policyConfigType": "BRMS_PARAM", + "policyName": "${policy_name}", + "policyDescription": "BRMS Param vCPE policy", + "policyScope": "com", + "attributes": { + "MATCHING": { + "controller" : "amsterdam" + }, + "RULE": { + "templateName": "ClosedLoopControlName", + "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e", + "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%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" + } + } +}
\ No newline at end of file diff --git a/test/csit/tests/policy/suite1/opspolicy_vOLTE.template b/test/csit/tests/policy/suite1/opspolicy_vOLTE.template new file mode 100644 index 000000000..e43a3e6f9 --- /dev/null +++ b/test/csit/tests/policy/suite1/opspolicy_vOLTE.template @@ -0,0 +1,16 @@ +{ + "policyConfigType": "BRMS_PARAM", + "policyName": "${policy_name}", + "policyDescription": "BRMS Param VOLTE policy", + "policyScope": "com", + "attributes": { + "MATCHING": { + "controller" : "amsterdam" + }, + "RULE": { + "templateName": "ClosedLoopControlName", + "closedLoopControlName": "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b", + "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%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" + } + } +}
\ No newline at end of file |