Remove enodeB code 81/44381/1
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Tue, 24 Apr 2018 14:15:10 +0000 (16:15 +0200)
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Tue, 24 Apr 2018 14:15:10 +0000 (16:15 +0200)
Remove useless code for operational policy

Issue-ID: CLAMP-153
Change-Id: Ib63b98f19656116935f0f8b325fc0f8b739f6c59
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
src/main/java/org/onap/clamp/clds/client/req/policy/OperationalPolicyReq.java
src/main/resources/application.properties
src/main/resources/clds/templates/op-eNodeB-recipe.json [deleted file]
src/test/java/org/onap/clamp/clds/it/OperationPolicyReqItCase.java
src/test/resources/application.properties
src/test/resources/example/operational-policy/yaml-policy-chain-1.yaml
src/test/resources/example/operational-policy/yaml-policy-chain-2.yaml

index 891c7f8..911cd6a 100644 (file)
 package org.onap.clamp.clds.client.req.policy;
 
 import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFLogger.Level;
 import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
@@ -44,9 +41,7 @@ import org.onap.clamp.clds.model.properties.Global;
 import org.onap.clamp.clds.model.properties.ModelProperties;
 import org.onap.clamp.clds.model.properties.PolicyChain;
 import org.onap.clamp.clds.model.properties.PolicyItem;
-import org.onap.clamp.clds.model.properties.Tca;
 import org.onap.policy.api.AttributeType;
-import org.onap.policy.controlloop.policy.OperationsAccumulateParams;
 import org.onap.policy.controlloop.policy.Policy;
 import org.onap.policy.controlloop.policy.PolicyResult;
 import org.onap.policy.controlloop.policy.Target;
@@ -86,24 +81,10 @@ public class OperationalPolicyReq {
         Global global = prop.getGlobal();
         prop.setCurrentModelElementId(modelElementId);
         prop.setPolicyUniqueId(policyChain.getPolicyId());
-        String templateName = "";
-        String operationTopic = "";
-        String notificationTopic = "";
-        String controller = "";
-        Tca tca = prop.getType(Tca.class);
-        if (tca != null && tca.isFound()) {
-            if (global.getActionSet().equalsIgnoreCase("enbRecipe")) {
-                templateName = refProp.getStringValue("op.eNodeB.templateName", global.getService());
-                operationTopic = refProp.getStringValue("op.eNodeB.operationTopic", global.getService());
-                notificationTopic = refProp.getStringValue("op.eNodeB.notificationTopic", global.getService());
-                controller = refProp.getStringValue("op.eNodeB.controller", global.getService());
-            } else {
-                templateName = refProp.getStringValue("op.templateName", global.getService());
-                operationTopic = refProp.getStringValue("op.operationTopic", global.getService());
-                notificationTopic = refProp.getStringValue("op.notificationTopic", global.getService());
-                controller = refProp.getStringValue("op.controller", global.getService());
-            }
-        }
+        String templateName = refProp.getStringValue("op.templateName", global.getService());
+        String operationTopic = refProp.getStringValue("op.operationTopic", global.getService());
+        String notificationTopic = refProp.getStringValue("op.notificationTopic", global.getService());
+        String controller = refProp.getStringValue("op.controller", global.getService());
         String recipeTopic = refProp.getStringValue("op.recipeTopic", global.getService());
         // ruleAttributes
         logger.info("templateName=" + templateName);
@@ -133,8 +114,7 @@ public class OperationalPolicyReq {
         } else {
             logger.info("operationTopic=" + operationTopic);
             // format yaml
-            String yaml = (tca != null && tca.isFound()) ? formateNodeBYaml(refProp, prop, modelElementId, policyChain)
-                    : formatYaml(refProp, prop, modelElementId, policyChain);
+            String yaml = formatYaml(refProp, prop, modelElementId, policyChain);
             ruleAttributes.put("OperationTopic", operationTopic);
             ruleAttributes.put("ControlLoopYaml", yaml);
         }
@@ -235,74 +215,6 @@ public class OperationalPolicyReq {
         return URLEncoder.encode(results.getSpecification(), "UTF-8");
     }
 
-    /**
-     * Format Operational Policy yaml.
-     *
-     * @param refProp
-     * @param prop
-     * @param modelElementId
-     * @param policyChain
-     * @return
-     * @throws BuilderException
-     * @throws UnsupportedEncodingException
-     */
-    protected static String formateNodeBYaml(ClampProperties refProp, ModelProperties prop, String modelElementId,
-            PolicyChain policyChain) throws BuilderException, UnsupportedEncodingException {
-        // get property objects
-        Global global = prop.getGlobal();
-        prop.setCurrentModelElementId(modelElementId);
-        prop.setPolicyUniqueId(policyChain.getPolicyId());
-        // convert values to SDC objects
-        Service service = new Service(global.getService());
-        Resource[] vfResources = convertToResource(global.getResourceVf(), ResourceType.VF);
-        Resource[] vfcResources = convertToResource(global.getResourceVfc(), ResourceType.VFC);
-        // create builder
-        ControlLoopPolicyBuilder builder = ControlLoopPolicyBuilder.Factory.buildControlLoop(prop.getControlName(),
-                policyChain.getTimeout(), service, vfResources);
-        builder.addResource(vfcResources);
-        // process each policy
-        Map<String, Policy> policyObjMap = new HashMap<>();
-        List<PolicyItem> policyItemList = addAOTSActorRecipe(refProp, global.getService(),
-                policyChain.getPolicyItems());
-        Policy lastPolicyObj = new Policy();
-        for (PolicyItem policyItem : policyItemList) {
-            Target target = new Target();
-            target.setType(TargetType.VM);
-            target.setResourceID(policyItem.getTargetResourceId());
-            String policyName = policyItem.getRecipe() + " Policy";
-            Policy policyObj;
-            if (policyItemList.indexOf(policyItem) == 0) {
-                // To set up time window payload for trigger policy
-                Map<String, String> payloadMap = new HashMap<>();
-                payloadMap.put("timeWindow", refProp.getStringValue("op.eNodeB.timeWindow"));
-                String policyDescription = policyItem.getRecipe()
-                        + " Policy - the trigger (no parent) policy - created by CLDS";
-                policyObj = builder.setTriggerPolicy(policyName, policyDescription, policyItem.getActor(), target,
-                        policyItem.getRecipe(), payloadMap, policyItem.getMaxRetries(), policyItem.getRetryTimeLimit());
-            } else {
-                Policy parentPolicyObj = policyObjMap.get(policyItem.getParentPolicy());
-                String policyDescription = policyItem.getRecipe() + " Policy - triggered conditionally by "
-                        + parentPolicyObj.getName() + " - created by CLDS";
-                policyObj = builder.setPolicyForPolicyResult(policyName, policyDescription, policyItem.getActor(),
-                        target, policyItem.getRecipe(), null, policyItem.getMaxRetries(),
-                        policyItem.getRetryTimeLimit(), parentPolicyObj.getId(),
-                        convertToPolicyResult(policyItem.getParentPolicyConditions()));
-                lastPolicyObj = policyObj;
-                logger.info("policyObj.id=" + policyObj.getId() + "; parentPolicyObj.id=" + parentPolicyObj.getId());
-            }
-            policyObjMap.put(policyItem.getId(), policyObj);
-        }
-        // To set up operations accumulate params
-        OperationsAccumulateParams operationsAccumulateParams = new OperationsAccumulateParams();
-        operationsAccumulateParams.setLimit(Integer.valueOf(refProp.getStringValue("op.eNodeB.limit")));
-        operationsAccumulateParams.setPeriod(refProp.getStringValue("op.eNodeB.period"));
-        builder.addOperationsAccumulateParams(lastPolicyObj.getId(), operationsAccumulateParams);
-        // Build the specification
-        Results results = builder.buildSpecification();
-        validate(results);
-        return URLEncoder.encode(results.getSpecification(), "UTF-8");
-    }
-
     private static void validate(Results results) {
         if (results.isValid()) {
             logger.info("results.getSpecification()=" + results.getSpecification());
@@ -318,47 +230,6 @@ public class OperationalPolicyReq {
         }
     }
 
-    /**
-     * Adding AOTS actor and other recipe for yaml
-     *
-     * @param inOrigList
-     * @return
-     */
-    private static List<PolicyItem> addAOTSActorRecipe(ClampProperties refProp, String service,
-            List<PolicyItem> inOrigList) {
-        List<PolicyItem> outList = new ArrayList<>();
-        try {
-            PolicyItem policyItem = inOrigList.get(0);
-            ObjectNode rootNode = (ObjectNode) refProp.getJsonTemplate("op.eNodeB.recipe", service);
-            Iterator<JsonNode> itr = rootNode.get("eNodeBRecipes").elements();
-            while (itr.hasNext()) {
-                PolicyItem policyItemObj = (PolicyItem) policyItem.clone();
-                JsonNode recipeNode = itr.next();
-                policyItemObj.setId(recipeNode.path("Recipe").asText());
-                policyItemObj.setActor(recipeNode.path("Actor").asText());
-                policyItemObj.setRecipe(recipeNode.path("Recipe").asText());
-                policyItemObj.setParentPolicy(recipeNode.path("ParentPolicy").asText());
-                if (!recipeNode.path("Retry").asText().isEmpty()) {
-                    policyItemObj.setMaxRetries(Integer.parseInt(recipeNode.path("Retry").asText()));
-                }
-                if (!recipeNode.path("TimeLimit").asText().isEmpty()) {
-                    policyItemObj.setRetryTimeLimit(Integer.parseInt(recipeNode.path("TimeLimit").asText()));
-                }
-                if (!recipeNode.path("PPConditions").asText().isEmpty()) {
-                    List<String> parentPolicyConditions = new ArrayList<>();
-                    for (String ppCondition : recipeNode.path("PPConditions").asText().split(",")) {
-                        parentPolicyConditions.add(ppCondition);
-                    }
-                    policyItemObj.setParentPolicyConditions(parentPolicyConditions);
-                }
-                outList.add(policyItemObj);
-            }
-        } catch (Exception e) {
-            logger.log(Level.ERROR, "Error", e);
-        }
-        return outList;
-    }
-
     /**
      * Order list of PolicyItems so that parents come before any of their
      * children
index d6be03c..457ddbd 100644 (file)
@@ -168,17 +168,6 @@ clamp.config.op.operationTopic=APPC-CL
 clamp.config.op.notificationTopic=POLICY-CL-MGT\r
 clamp.config.op.controller=amsterdam\r
 clamp.config.op.policy.appc=APPC\r
-# by service: vSCP\r
-clamp.config.op.templateName.vSCP=ClosedLoopTemplate\r
-clamp.config.op.controller.vSCP=1607-f5fw\r
-clamp.config.op.eNodeB.templateName=ClosedLoopControlName\r
-clamp.config.op.eNodeB.operationTopic=com.onap.sdnr.RanCLRequest-v00\r
-clamp.config.op.eNodeB.notificationTopic=com.onap-policy.IST-ENODEB-CL\r
-clamp.config.op.eNodeB.controller=amsterdam\r
-clamp.config.op.eNodeB.recipe=classpath:/clds/templates/op-eNodeB-recipe.json\r
-clamp.config.op.eNodeB.timeWindow=35\r
-clamp.config.op.eNodeB.limit=2\r
-clamp.config.op.eNodeB.period=10s\r
 #\r
 # Sdc service properties\r
 clamp.config.sdc.catalog.url=http://sdc.api.simpledemo.onap.org:8085/sdc/v1/catalog/\r
diff --git a/src/main/resources/clds/templates/op-eNodeB-recipe.json b/src/main/resources/clds/templates/op-eNodeB-recipe.json
deleted file mode 100644 (file)
index 7098987..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-       "eNodeBRecipes": [
-               {
-                       "Actor": "AOTS",
-                       "Recipe": "checkENodeBTicketHours",
-                       "ParentPolicy": "",
-                       "PPConditions": "",
-                       "Retry": "0",
-                       "TimeLimit": "120"
-               },
-               {
-                       "Actor": "AOTS",
-                       "Recipe": "checkEquipmentStatus",
-                       "ParentPolicy": "checkENodeBTicketHours",
-                       "PPConditions": "Success",
-                       "Retry": "0",
-                       "TimeLimit": "120"
-               },
-               {
-                       "Actor": "AOTS",
-                       "Recipe": "checkEimStatus",
-                       "ParentPolicy": "checkEquipmentStatus",
-                       "PPConditions": "Success",
-                       "Retry": "0",
-                       "TimeLimit": "120"
-               },
-               {
-                       "Actor": "AOTS",
-                       "Recipe": "checkMaintenanceWindow",
-                       "ParentPolicy": "checkEimStatus",
-                       "PPConditions": "Success",
-                       "Retry": "0",
-                       "TimeLimit": "120"
-               },
-               {
-                       "Actor": "SDNR",
-                       "Recipe": "Reset",
-                       "ParentPolicy": "checkMaintenanceWindow",
-                       "PPConditions": "Success",
-                       "Retry": "",
-                       "TimeLimit": ""
-               }
-       ]
-}
index 43f212c..a91da8a 100644 (file)
@@ -74,20 +74,24 @@ public class OperationPolicyReqItCase {
         // now validate the Yaml, to do so we replace the dynamic ID by a known
         // key so that we can compare it
         String yaml = URLDecoder.decode(attributes.get(0).get(AttributeType.RULE).get("ControlLoopYaml"), "UTF-8");
-        yaml = yaml.replaceAll("trigger_policy: (.*)", "trigger_policy: <generatedId>");
-        yaml = yaml.replaceAll("id: (.*)", "id: <generatedId>");
-        yaml = yaml.replaceAll("success: (.*)", "success: <generatedId>");
-        // Remove this field as not always present (depends of policy api)
-        yaml = yaml.replaceAll("  pnf: null" + System.lineSeparator(), "");
-        yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length());
+        yaml = replaceGeneratedValues(yaml);
         assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-1.yaml"), yaml);
         yaml = URLDecoder.decode(attributes.get(1).get(AttributeType.RULE).get("ControlLoopYaml"), "UTF-8");
+        yaml = replaceGeneratedValues(yaml);
+        assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-2.yaml"), yaml);
+    }
+
+    private String replaceGeneratedValues(String yaml) {
         yaml = yaml.replaceAll("trigger_policy: (.*)", "trigger_policy: <generatedId>");
         yaml = yaml.replaceAll("id: (.*)", "id: <generatedId>");
         yaml = yaml.replaceAll("success: (.*)", "success: <generatedId>");
         // Remove this field as not always present (depends of policy api)
         yaml = yaml.replaceAll("  pnf: null" + System.lineSeparator(), "");
+        yaml = yaml.replaceAll("failure: (.*)", "failure: <generatedId>");
+        yaml = yaml.replaceAll("failure_exception: (.*)", "failure_exception: <generatedId>");
+        yaml = yaml.replaceAll("failure_retries: (.*)", "failure_retries: <generatedId>");
+        yaml = yaml.replaceAll("failure_timeout: (.*)", "failure_timeout: <generatedId>");
         yaml = yaml.substring(yaml.indexOf("controlLoop:"), yaml.length());
-        assertEquals(ResourceFileUtil.getResourceAsString("example/operational-policy/yaml-policy-chain-2.yaml"), yaml);
+        return yaml;
     }
 }
index e0775ec..535f54a 100644 (file)
@@ -166,17 +166,6 @@ clamp.config.op.operationTopic=APPC-CL
 clamp.config.op.notificationTopic=POLICY-CL-MGT\r
 clamp.config.op.controller=amsterdam\r
 clamp.config.op.policy.appc=APPC\r
-# by service: vSCP\r
-clamp.config.op.templateName.vSCP=ClosedLoopTemplate\r
-clamp.config.op.controller.vSCP=1607-f5fw\r
-clamp.config.op.eNodeB.templateName=ClosedLoopControlName\r
-clamp.config.op.eNodeB.operationTopic=com.onap.sdnr.RanCLRequest-v00\r
-clamp.config.op.eNodeB.notificationTopic=com.onap-policy.IST-ENODEB-CL\r
-clamp.config.op.eNodeB.controller=amsterdam\r
-clamp.config.op.eNodeB.recipe=classpath:/clds/templates/op-eNodeB-recipe.json\r
-clamp.config.op.eNodeB.timeWindow=35\r
-clamp.config.op.eNodeB.limit=2\r
-clamp.config.op.eNodeB.period=10s\r
 #\r
 # Sdc service properties\r
 clamp.config.sdc.catalog.url=http://localhost:${docker.http-cache.port.host}/sdc/v1/catalog/\r
index afe9fdd..fec0e1e 100644 (file)
@@ -16,93 +16,36 @@ controlLoop:
   trigger_policy: <generatedId>
   version: 2.0.0
 policies:
-- actor: AOTS
-  description: checkENodeBTicketHours Policy - the trigger (no parent) policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
+- actor: APPC
+  description: restart Policy - the trigger (no parent) policy - created by CLDS
+  failure: <generatedId>
+  failure_exception: <generatedId>
   failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
+  failure_retries: <generatedId>
+  failure_timeout: <generatedId>
   id: <generatedId>
-  name: checkENodeBTicketHours Policy
-  operationsAccumulateParams: null
-  payload:
-    timeWindow: '35'
-  recipe: checkENodeBTicketHours
-  retry: 0
-  success: <generatedId>
-  target:
-    resourceID: resource-id
-    type: VM
-  timeout: 120
-- actor: AOTS
-  description: checkEquipmentStatus Policy - triggered conditionally by checkENodeBTicketHours Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
-  failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
-  id: <generatedId>
-  name: checkEquipmentStatus Policy
-  operationsAccumulateParams: null
-  payload: null
-  recipe: checkEquipmentStatus
-  retry: 0
-  success: <generatedId>
-  target:
-    resourceID: resource-id
-    type: VM
-  timeout: 120
-- actor: AOTS
-  description: checkEimStatus Policy - triggered conditionally by checkEquipmentStatus Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
-  failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
-  id: <generatedId>
-  name: checkEimStatus Policy
+  name: restart Policy
   operationsAccumulateParams: null
   payload: null
-  recipe: checkEimStatus
-  retry: 0
+  recipe: restart
+  retry: 3
   success: <generatedId>
   target:
     resourceID: resource-id
     type: VM
-  timeout: 120
-- actor: AOTS
-  description: checkMaintenanceWindow Policy - triggered conditionally by checkEimStatus Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
+  timeout: 180
+- actor: APPC
+  description: rebuild Policy - triggered conditionally by restart Policy - created by CLDS
+  failure: <generatedId>
+  failure_exception: <generatedId>
   failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
+  failure_retries: <generatedId>
+  failure_timeout: <generatedId>
   id: <generatedId>
-  name: checkMaintenanceWindow Policy
+  name: rebuild Policy
   operationsAccumulateParams: null
   payload: null
-  recipe: checkMaintenanceWindow
-  retry: 0
-  success: <generatedId>
-  target:
-    resourceID: resource-id
-    type: VM
-  timeout: 120
-- actor: SDNR
-  description: Reset Policy - triggered conditionally by checkMaintenanceWindow Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
-  failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
-  id: <generatedId>
-  name: Reset Policy
-  operationsAccumulateParams:
-    limit: 2
-    period: 10s
-  payload: null
-  recipe: Reset
+  recipe: rebuild
   retry: 3
   success: <generatedId>
   target:
index afe9fdd..fec0e1e 100644 (file)
@@ -16,93 +16,36 @@ controlLoop:
   trigger_policy: <generatedId>
   version: 2.0.0
 policies:
-- actor: AOTS
-  description: checkENodeBTicketHours Policy - the trigger (no parent) policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
+- actor: APPC
+  description: restart Policy - the trigger (no parent) policy - created by CLDS
+  failure: <generatedId>
+  failure_exception: <generatedId>
   failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
+  failure_retries: <generatedId>
+  failure_timeout: <generatedId>
   id: <generatedId>
-  name: checkENodeBTicketHours Policy
-  operationsAccumulateParams: null
-  payload:
-    timeWindow: '35'
-  recipe: checkENodeBTicketHours
-  retry: 0
-  success: <generatedId>
-  target:
-    resourceID: resource-id
-    type: VM
-  timeout: 120
-- actor: AOTS
-  description: checkEquipmentStatus Policy - triggered conditionally by checkENodeBTicketHours Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
-  failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
-  id: <generatedId>
-  name: checkEquipmentStatus Policy
-  operationsAccumulateParams: null
-  payload: null
-  recipe: checkEquipmentStatus
-  retry: 0
-  success: <generatedId>
-  target:
-    resourceID: resource-id
-    type: VM
-  timeout: 120
-- actor: AOTS
-  description: checkEimStatus Policy - triggered conditionally by checkEquipmentStatus Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
-  failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
-  id: <generatedId>
-  name: checkEimStatus Policy
+  name: restart Policy
   operationsAccumulateParams: null
   payload: null
-  recipe: checkEimStatus
-  retry: 0
+  recipe: restart
+  retry: 3
   success: <generatedId>
   target:
     resourceID: resource-id
     type: VM
-  timeout: 120
-- actor: AOTS
-  description: checkMaintenanceWindow Policy - triggered conditionally by checkEimStatus Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
+  timeout: 180
+- actor: APPC
+  description: rebuild Policy - triggered conditionally by restart Policy - created by CLDS
+  failure: <generatedId>
+  failure_exception: <generatedId>
   failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
+  failure_retries: <generatedId>
+  failure_timeout: <generatedId>
   id: <generatedId>
-  name: checkMaintenanceWindow Policy
+  name: rebuild Policy
   operationsAccumulateParams: null
   payload: null
-  recipe: checkMaintenanceWindow
-  retry: 0
-  success: <generatedId>
-  target:
-    resourceID: resource-id
-    type: VM
-  timeout: 120
-- actor: SDNR
-  description: Reset Policy - triggered conditionally by checkMaintenanceWindow Policy - created by CLDS
-  failure: FINAL_FAILURE
-  failure_exception: FINAL_FAILURE_EXCEPTION
-  failure_guard: FINAL_FAILURE_GUARD
-  failure_retries: FINAL_FAILURE_RETRIES
-  failure_timeout: FINAL_FAILURE_TIMEOUT
-  id: <generatedId>
-  name: Reset Policy
-  operationsAccumulateParams:
-    limit: 2
-    period: 10s
-  payload: null
-  recipe: Reset
+  recipe: rebuild
   retry: 3
   success: <generatedId>
   target: