import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.core.type.TypeReference;
-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.JacksonUtils;
+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"]},{
private String targetResourceId;
private String recipeInfo;
private String recipeLevel;
+ 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
- * @throws IOException
- */
- public PolicyItem(JsonNode node) throws IOException {
- 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");
- String payload = AbstractModelElement.getValueByName(node, "recipeInput");
-
+ 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()) {
- //recipePayload = JacksonUtils.getObjectMapperInstance().convertValue(payload, Map.class);
- recipePayload = JacksonUtils.getObjectMapperInstance().readValue(payload, new TypeReference<Map<String, String>>(){});
+ 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 = AbstractModelElement.getValueByName(node, "oapRop");
- oapLimit = AbstractModelElement.getValueByName(node, "oapLimit");
- actor = AbstractModelElement.getValueByName(node, "actor");
+ 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() {
}
/**
+ * Get the recipe.
* @return the recipe
*/
public String getRecipe() {
}
/**
- * @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() {
}
/**
+ * Get the retry time limit.
* @return the retryTimeLimit
*/
public int getRetryTimeLimit() {
}
/**
+ * Get the parent policy.
* @return the parentPolicy
*/
public String getParentPolicy() {
}
/**
+ * Get the list of parent policy conditions.
* @return the parentPolicyConditions
*/
public List<String> getParentPolicyConditions() {
}
/**
+ * Get the actor.
* @return the actor
*/
public String getActor() {
}
/**
- * @set the actor
+ * Set the actor.
+ * @param the actor
*/
public void setActor(String actor) {
this.actor = actor;
return recipeLevel;
}
+ 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";
return oapRop;
}
+ /**
+ * Get oap limit.
+ * @return the oap limit
+ */
public String getOapLimit() {
if (oapLimit == null) {
oapLimit = "0";
}
return oapLimit;
}
+
+ 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;
+ }
+
}