import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import org.onap.clamp.clds.config.ClampProperties;
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.policy.api.AttributeType;
+import org.onap.policy.api.RuleProvider;
public class GuardPolicyAttributesConstructor {
private static final EELFLogger logger = EELFManager.getInstance()
private GuardPolicyAttributesConstructor() {
}
- public static Map<AttributeType, Map<String, String>> formatAttributes(ClampProperties refProp,
- ModelProperties modelProperties, String modelElementId, PolicyItem policyItem) {
- Map<String, String> matchingAttributes = prepareMatchingAttributes(refProp, policyItem, modelProperties);
+ public static Map<AttributeType, Map<String, String>> formatAttributes(ModelProperties modelProperties, PolicyItem policyItem) {
+ Map<String, String> matchingAttributes = prepareMatchingAttributes(policyItem, modelProperties);
return createAttributesMap(matchingAttributes);
}
- private static Map<String, String> prepareMatchingAttributes(ClampProperties refProp,
- PolicyItem policyItem, ModelProperties modelProp) {
+ public static List<PolicyItem> getAllPolicyGuardsFromPolicyChain(PolicyChain policyChain) {
+ List<PolicyItem> listItem = new ArrayList<>();
+ for (PolicyItem policyItem : policyChain.getPolicyItems()) {
+ if ("on".equals(policyItem.getEnableGuardPolicy())) {
+ listItem.add(policyItem);
+ }
+ }
+ return listItem;
+ }
+
+ private static Map<String, String> prepareMatchingAttributes(PolicyItem policyItem, ModelProperties modelProp) {
logger.info("Preparing matching attributes for guard...");
Map<String, String> matchingAttributes = new HashMap<>();
matchingAttributes.put("actor",policyItem.getActor());
matchingAttributes.put("recipe",policyItem.getRecipe());
matchingAttributes.put("targets",policyItem.getGuardTargets());
matchingAttributes.put("clname",modelProp.getControlNameAndPolicyUniqueId());
- if ("MinMax".equals(policyItem.getGuardPolicyType())) {
+ if (RuleProvider.GUARD_MIN_MAX.equals(RuleProvider.valueOf(policyItem.getGuardPolicyType()))) {
matchingAttributes.put("min",policyItem.getMinGuard());
matchingAttributes.put("max",policyItem.getMaxGuard());
- } else if ("FrequencyLimiter".equals(policyItem.getGuardPolicyType())) {
+ } else if (RuleProvider.GUARD_YAML.equals(RuleProvider.valueOf(policyItem.getGuardPolicyType()))) {
matchingAttributes.put("limit",policyItem.getLimitGuard());
matchingAttributes.put("timeWindow",policyItem.getTimeWindowGuard());
matchingAttributes.put("timeUnits",policyItem.getTimeUnitsGuard());