Remove dead code
[clamp.git] / src / main / java / org / onap / clamp / clds / model / properties / PolicyItem.java
index 75bf6ae..1855468 100644 (file)
  * limitations under the License.
  * ============LICENSE_END============================================
  * ===================================================================
- * 
+ *
  */
 
 package org.onap.clamp.clds.model.properties;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.databind.JsonNode;
 
+import com.google.gson.JsonElement;
+import com.google.gson.reflect.TypeToken;
+import java.io.IOException;
 import java.util.List;
+import java.util.Map;
+
+import org.onap.clamp.clds.util.JsonUtils;
+import org.yaml.snakeyaml.Yaml;
 
 /**
  * Parse policyConfigurations from Policy json properties.
- * <p>
  * Example json:
  * "Policy_005sny1":[[{"name":"timeout","value":"5"}],{"policyConfigurations":[[
  * {"name":"recipe","value":["restart"]},{"name":"maxRetries","value":["3"]},{
@@ -61,34 +66,71 @@ public class PolicyItem implements Cloneable {
     private String targetResourceId;
     private String recipeInfo;
     private String recipeLevel;
-    private String recipePayload;
+    private String recipeInput;
+    private Map<String, String> recipePayload;
     private String oapRop;
     private String oapLimit;
 
+    private String enableGuardPolicy;
+    private String guardPolicyType;
+    private String guardTargets;
+    private String minGuard;
+    private String maxGuard;
+    private String limitGuard;
+    private String timeUnitsGuard;
+    private String timeWindowGuard;
+    private String guardActiveStart;
+    private String guardActiveEnd;
+
     /**
-     * Parse Policy given json node.
+     * Parse Policy given JSON node.
      *
-     * @param node
-     */
-    public PolicyItem(JsonNode node) {
-        id = AbstractModelElement.getValueByName(node, "_id");
-        recipe = AbstractModelElement.getValueByName(node, "recipe");
-        maxRetries = AbstractModelElement.getIntValueByName(node, "maxRetries");
-        retryTimeLimit = AbstractModelElement.getIntValueByName(node, "retryTimeLimit");
-        parentPolicy = AbstractModelElement.getValueByName(node, "parentPolicy");
-        parentPolicyConditions = AbstractModelElement.getValuesByName(node, "parentPolicyConditions");
-        targetResourceId = AbstractModelElement.getValueByName(node, "targetResourceId");
+     * @param item policy in JSON format
+     * @throws IOException IO exception
+     */
+    public PolicyItem(JsonElement item) throws IOException {
+        id = JsonUtils.getStringValueByName(item, "_id");
+        recipe = JsonUtils.getStringValueByName(item, "recipe");
+        maxRetries = JsonUtils.getIntValueByName(item, "maxRetries");
+        retryTimeLimit = JsonUtils.getIntValueByName(item, "retryTimeLimit");
+        parentPolicy = JsonUtils.getStringValueByName(item, "parentPolicy");
+        parentPolicyConditions = JsonUtils.getStringValuesByName(item, "parentPolicyConditions");
+        targetResourceId = JsonUtils.getStringValueByName(item, "targetResourceId");
         if (targetResourceId != null && targetResourceId.isEmpty()) {
             this.setTargetResourceId(null);
         }
-        recipeInfo = AbstractModelElement.getValueByName(node, "recipeInfo");
-        recipeLevel = AbstractModelElement.getValueByName(node, "recipeLevel");
-        recipePayload = AbstractModelElement.getValueByName(node, "recipeInput");
-        oapRop = AbstractModelElement.getValueByName(node, "oapRop");
-        oapLimit = AbstractModelElement.getValueByName(node, "oapLimit");
+        recipeInfo = JsonUtils.getStringValueByName(item, "recipeInfo");
+        recipeLevel = JsonUtils.getStringValueByName(item, "recipeLevel");
+        recipeInput = JsonUtils.getStringValueByName(item, "recipeInput");
+        String payload = JsonUtils.getStringValueByName(item, "recipePayload");
+
+        if (payload != null && !payload.isEmpty()) {
+            if (payload.trim().startsWith("{") && payload.trim().endsWith("}")) {
+                // Seems to be a JSON
+                recipePayload = JsonUtils.GSON.fromJson(payload, new TypeToken<Map<String, String>>() {}.getType());
+            } else {
+                // SHould be a YAML then
+                recipePayload = new Yaml().load(payload);
+            }
+        }
+        oapRop = JsonUtils.getStringValueByName(item, "oapRop");
+        oapLimit = JsonUtils.getStringValueByName(item, "oapLimit");
+        actor = JsonUtils.getStringValueByName(item, "actor");
+
+        enableGuardPolicy = JsonUtils.getStringValueByName(item, "enableGuardPolicy");
+        guardPolicyType = JsonUtils.getStringValueByName(item, "guardPolicyType");
+        guardTargets = JsonUtils.getStringValueByName(item, "guardTargets");
+        minGuard = JsonUtils.getStringValueByName(item, "minGuard");
+        maxGuard = JsonUtils.getStringValueByName(item, "maxGuard");
+        limitGuard = JsonUtils.getStringValueByName(item, "limitGuard");
+        timeUnitsGuard = JsonUtils.getStringValueByName(item, "timeUnitsGuard");
+        timeWindowGuard = JsonUtils.getStringValueByName(item, "timeWindowGuard");
+        guardActiveStart = JsonUtils.getStringValueByName(item, "guardActiveStart");
+        guardActiveEnd = JsonUtils.getStringValueByName(item, "guardActiveEnd");
     }
 
     /**
+     * Get the id.
      * @return the id
      */
     public String getId() {
@@ -96,6 +138,7 @@ public class PolicyItem implements Cloneable {
     }
 
     /**
+     * Get the recipe.
      * @return the recipe
      */
     public String getRecipe() {
@@ -103,48 +146,55 @@ public class PolicyItem implements Cloneable {
     }
 
     /**
-     * @set the id
+     * Set the id.
+     * @param the id
      */
     public void setId(String id) {
         this.id = id;
     }
 
     /**
-     * @set the recipe
+     * Set the recipe.
+     * @param the recipe
      */
     public void setRecipe(String recipe) {
         this.recipe = recipe;
     }
 
     /**
-     * @set the parentPolicy
+     * Set the parent policy.
+     * @param the parentPolicy
      */
     public void setParentPolicy(String parentPolicy) {
         this.parentPolicy = parentPolicy;
     }
 
     /**
-     * @set the maxRetries
+     * Set the max retries.
+     * @param the maxRetries
      */
     public void setMaxRetries(int maxRetries) {
         this.maxRetries = maxRetries;
     }
 
     /**
-     * @set the retryTimeLimit
+     * Set the retry time limit.
+     * @param the retryTimeLimit
      */
     public void setRetryTimeLimit(int retryTimeLimit) {
         this.retryTimeLimit = retryTimeLimit;
     }
 
     /**
-     * @set the parentPolicyConditions
+     * Set the parent policy conditions.
+     * @param the parentPolicyConditions
      */
     public void setParentPolicyConditions(List<String> parentPolicyConditions) {
         this.parentPolicyConditions = parentPolicyConditions;
     }
 
     /**
+     * Get the max retires.
      * @return the maxRetries
      */
     public int getMaxRetries() {
@@ -152,6 +202,7 @@ public class PolicyItem implements Cloneable {
     }
 
     /**
+     * Get the retry time limit.
      * @return the retryTimeLimit
      */
     public int getRetryTimeLimit() {
@@ -159,6 +210,7 @@ public class PolicyItem implements Cloneable {
     }
 
     /**
+     * Get the parent policy.
      * @return the parentPolicy
      */
     public String getParentPolicy() {
@@ -166,6 +218,7 @@ public class PolicyItem implements Cloneable {
     }
 
     /**
+     * Get the list of parent policy conditions.
      * @return the parentPolicyConditions
      */
     public List<String> getParentPolicyConditions() {
@@ -173,6 +226,7 @@ public class PolicyItem implements Cloneable {
     }
 
     /**
+     * Get the actor.
      * @return the actor
      */
     public String getActor() {
@@ -180,7 +234,8 @@ public class PolicyItem implements Cloneable {
     }
 
     /**
-     * @set the actor
+     * Set the actor.
+     * @param the actor
      */
     public void setActor(String actor) {
         this.actor = actor;
@@ -202,10 +257,18 @@ public class PolicyItem implements Cloneable {
         return recipeLevel;
     }
 
-    public String getRecipePayload() {
+    public String getRecipeInput() {
+        return recipeInput;
+    }
+
+    public Map<String, String> getRecipePayload() {
         return recipePayload;
     }
 
+    /**
+     * Get oap rop.
+     * @return The oap rop?
+     */
     public String getOapRop() {
         if (oapRop == null) {
             oapRop = "0m";
@@ -213,6 +276,10 @@ public class PolicyItem implements Cloneable {
         return oapRop;
     }
 
+    /**
+     * Get oap limit.
+     * @return the oap limit
+     */
     public String getOapLimit() {
         if (oapLimit == null) {
             oapLimit = "0";
@@ -220,8 +287,44 @@ public class PolicyItem implements Cloneable {
         return oapLimit;
     }
 
-    @Override
-    public Object clone() throws CloneNotSupportedException {
-        return super.clone();
+    public String getEnableGuardPolicy() {
+        return enableGuardPolicy;
+    }
+
+    public String getGuardPolicyType() {
+        return guardPolicyType;
+    }
+
+    public String getGuardTargets() {
+        return guardTargets;
+    }
+
+    public String getMinGuard() {
+        return minGuard;
+    }
+
+    public String getMaxGuard() {
+        return maxGuard;
+    }
+
+    public String getLimitGuard() {
+        return limitGuard;
+    }
+
+    public String getTimeUnitsGuard() {
+        return timeUnitsGuard;
+    }
+
+    public String getTimeWindowGuard() {
+        return timeWindowGuard;
+    }
+
+    public String getGuardActiveStart() {
+        return guardActiveStart;
+    }
+
+    public String getGuardActiveEnd() {
+        return guardActiveEnd;
     }
+
 }