public static boolean ListContainsStatisticalRules(ArrayOfSLA serviceLevelAggrements) { if (serviceLevelAggrements == null) { return false; } if (serviceLevelAggrements.getSLA().isEmpty()) { return false; } for (int i = 0; i < serviceLevelAggrements.getSLA().size(); i++) { if (containsStatisticalRules(serviceLevelAggrements.getSLA().get(i).getRule())) { return true; } } return false; }
/** * Create an instance of {@link ArrayOfSLA } * */ public ArrayOfSLA createArrayOfSLA() { return new ArrayOfSLA(); }
ret.setServiceLevelAggrements(new ArrayOfSLA()); for (int i = 0; i < ret.getServiceLevelAggrements().getSLA().size(); i++) { if (ret.getServiceLevelAggrements().getSLA().get(i).getRule() instanceof SLARuleGeneric) { SLARuleGeneric r = (SLARuleGeneric) ret.getServiceLevelAggrements().getSLA().get(i).getRule(); if (r.getClassName().equalsIgnoreCase("org.miloss.fgsms.sla.rules.ChangeInAvailabilityStatus")) { existingSla = true; "Change of status for " + Utility.encodeHTML(ret.getURL()) + ". This is the default status alert. This can be changed by changing the policy for this service."); s.getAction().getSLAAction().add(e); ret.getServiceLevelAggrements().getSLA().add(s); for (int i = 0; i < ret.getServiceLevelAggrements().getSLA().size(); i++) { if (ret.getServiceLevelAggrements().getSLA().get(i).getRule() instanceof SLARuleGeneric) { SLARuleGeneric r = (SLARuleGeneric) ret.getServiceLevelAggrements().getSLA().get(i).getRule(); if (r.getClassName().equalsIgnoreCase("org.miloss.fgsms.sla.rules.StaleData")) { existingSla = true; ret.getServiceLevelAggrements().getSLA().add(s);
pol.setServiceLevelAggrements(new ArrayOfSLA()); pol.getServiceLevelAggrements().getSLA().clear(); pol.getServiceLevelAggrements().getSLA().addAll(slaCache.values()); if (pol.getServiceLevelAggrements().getSLA().isEmpty()) { pol.setServiceLevelAggrements(null);
/** * does this policy have an email sla action? * * @param pc * @return */ public static boolean hasEmailSLA(ServicePolicy pc) { if (pc == null) { return false; } if (pc.getServiceLevelAggrements() == null || pc.getServiceLevelAggrements().getSLA().isEmpty()) { return false; } for (int i = 0; i < pc.getServiceLevelAggrements().getSLA().size(); i++) { if (pc.getServiceLevelAggrements().getSLA().get(i).getAction() != null && !pc.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction().isEmpty()) { for (int k = 0; k < pc.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction().size(); k++) { if (pc.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction().get(k).getImplementingClassName().equals("org.miloss.fgsms.sla.actions.EmailAlerter")) { return true; } } } } return false; }
|| pol.getServiceLevelAggrements().getSLA().isEmpty()) { return true; for (int i = 0; i < pol.getServiceLevelAggrements().getSLA().size(); i++) { if (Utility.stringIsNullOrEmpty(pol.getServiceLevelAggrements().getSLA().get(i).getGuid())) { outmsg.set("Each SLA must have a unique identifier, try UUID.randomUUID().toString() or Guid.newGuid().toString(). " + outmsg.get()); valid = false; if (pol.getServiceLevelAggrements().getSLA().get(i).getRule() == null) { outmsg.set("Each SLA must have a Rule. " + outmsg.get()); valid = false; valid = valid && (validateRulesRecursive(pol, outmsg, pol.getServiceLevelAggrements().getSLA().get(i).getRule())); if (pol.getServiceLevelAggrements().getSLA().get(i).getAction() == null || pol.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction().isEmpty()) { outmsg.set("Each SLA must have at least one Action. " + outmsg.get()); valid = false; } else { valid = valid && validateActions(pol, outmsg, pol.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction());
/** * does process specific SLA processing, scope: just right now * * @param processData * @param pooled */ private static void processMachineSLAs(AddMachineAndProcessDataRequestMsg req, MachinePolicy pol, boolean pooled) { if (pol == null || pol.getServiceLevelAggrements() == null) { return; } for (int i = 0; i < pol.getServiceLevelAggrements().getSLA().size(); i++) { RuleBaseType rule = pol.getServiceLevelAggrements().getSLA().get(i).getRule(); AtomicReference<String> msg = new AtomicReference<String>(); if (processMachineSLAsRecursive(req, rule, pol, pooled, msg)) { String id = UUID.randomUUID().toString(); RecordSLAFault(new AtomicReference<String>(msg.get()), pol.getURL(), req.getMachineData().getId(), System.currentTimeMillis(), id, pooled); ProcessAlerts(msg.get(), "<h2" + Utility.encodeHTML(msg.get()) + "</h2>", pol.getURL(), req.getMachineData().getId(), System.currentTimeMillis(), id, pooled, false, pol.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction(), pol.getServiceLevelAggrements().getSLA().get(i).getGuid(), pol, AlertType.Performance); } } }
ServicePolicy pol = SLACommon.getPolicy(uri, pooled); if (pol == null || pol.getServiceLevelAggrements() == null || pol.getServiceLevelAggrements().getSLA().isEmpty()) { return; for (int i = 0; i < pol.getServiceLevelAggrements().getSLA().size(); i++) { if (containsChangeInStatus(pol.getServiceLevelAggrements().getSLA().get(i).getRule())) { String msgplain = String.format(bundle.getString("StatusChangeEmailAlertPlain"), uri, s); String msghtml = String.format(bundle.getString("StatusChangeEmailAlertHtml"), Utility.encodeHTML(uri), oldmsg, s, (currenstatus ? "OK" : "NG")); false, pol.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction(), pol.getServiceLevelAggrements().getSLA().get(i).getGuid(), pol, AlertType.Status);
|| pol.getServiceLevelAggrements().getSLA() == null || pol.getServiceLevelAggrements().getSLA().isEmpty()) { return; for (int i = 0; i < pol.getServiceLevelAggrements().getSLA().size(); i++) { boolean flag = false; if (pol.getServiceLevelAggrements().getSLA().get(i) == null) { continue; flag = ProcessRules(req, ref, pol.getServiceLevelAggrements().getSLA().get(i).getRule()); long time = System.currentTimeMillis(); try { SLACommon.RecordSLAFault(ref, pol.getURL(), transactionid, time, incident, true); SLACommon.ProcessAlerts(ref.get(), ref.get() + "<br>" + GenerateLink(props.getProperty("fgsms.GUI.URL"), pol.getURL(), transactionid), pol.getURL(), transactionid, time, incident, true, false, pol.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction(), pol.getServiceLevelAggrements().getSLA().get(i).getGuid(), pol, AlertType.Performance);
if (servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA().isEmpty()) { continue; for (int i = 0; i < servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA().size(); i++) { boolean flag = false; StringBuffer faultMsg = new StringBuffer(); if (servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA() == null) { continue; if (servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA().get(i) == null) { continue; if (servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA().get(i).getRule() == null) { continue; faultMsg, servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA().get(i).getRule(), servicePolicyQueue.get(k).getPolicyType(), ispooled, servicePolicyQueue.get(k)); incident, ispooled, false, servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction(), servicePolicyQueue.get(k).getServiceLevelAggrements().getSLA().get(i).getGuid(), servicePolicyQueue.get(k), AlertType.Performance);
if (pol.getServiceLevelAggrements().getSLA() == null) { return; if (pol.getServiceLevelAggrements().getSLA().isEmpty()) { return; for (int i = 0; i < pol.getServiceLevelAggrements().getSLA().size(); i++) { AtomicReference<String> ref = new AtomicReference<String>(); AtomicReference<AlertType> alertType = new AtomicReference<AlertType>(); if (processStatisticalSLARulesRecursive(req, pooled, pol.getServiceLevelAggrements().getSLA().get(i).getRule(), ref, alertType)) { String id = UUID.randomUUID().toString(); RecordSLAFault(new AtomicReference<String>(ref.get()), req.getBrokerURI(), null, System.currentTimeMillis(), id, pooled); ProcessAlerts(ref.get(), Utility.encodeHTML(ref.get()), req.getBrokerURI(), null, System.currentTimeMillis(), id, pooled, false, pol.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction(), pol.getServiceLevelAggrements().getSLA().get(i).getGuid(), pol, alertType.get());
return; for (int i = 0; i < pp.getServiceLevelAggrements().getSLA().size(); i++) { RuleBaseType rule = pp.getServiceLevelAggrements().getSLA().get(i).getRule(); RecordSLAFault(new AtomicReference<String>(fault.get()), pp.getURL(), machineData.getId(), System.currentTimeMillis(), id, pooled); ProcessAlerts((fault.get()), "<h2>" + Utility.encodeHTML(fault.get()) + "</h2>", pp.getURL(), machineData.getId(), System.currentTimeMillis(), id, pooled, false, pp.getServiceLevelAggrements().getSLA().get(i).getAction().getSLAAction(), pp.getServiceLevelAggrements().getSLA().get(i).getGuid(), pp, AlertType.Performance);
/** * used to determine if we need to save the request or response * * @param pol * @return */ protected boolean containsSLAXpathOrUserIdentXpath(TransactionalWebServicePolicy pol) { boolean found = false; if (pol.getUserIdentification() != null && !pol.getUserIdentification().getUserIdentity().isEmpty()) { for (int i = 0; i < pol.getUserIdentification().getUserIdentity().size(); i++) { if (pol.getUserIdentification().getUserIdentity().get(i).getXPaths() != null && pol.getUserIdentification().getUserIdentity().get(i).getXPaths() != null && !pol.getUserIdentification().getUserIdentity().get(i).getXPaths().getXPathExpressionType().isEmpty()) { found = true; } } } if (found) { return true; } if (pol.getServiceLevelAggrements() != null && !pol.getServiceLevelAggrements().getSLA().isEmpty()) { for (int i = 0; i < pol.getServiceLevelAggrements().getSLA().size(); i++) { found = found || doesSLAContainXpath(pol.getServiceLevelAggrements().getSLA().get(i)); } } return found; }