private void prePopulate(AlertBoltSpec alertSpec, List<VersionedPolicyDefinition> list) { Map<String, PolicyDefinition> policyMap = listToMap(list); for (Entry<String, List<String>> policyEntry : alertSpec.getBoltPolicyIdsMap().entrySet()) { List<PolicyDefinition> pds = alertSpec.getBoltPoliciesMap().get(policyEntry.getKey()); if (pds == null) { pds = new ArrayList<PolicyDefinition>(); alertSpec.getBoltPoliciesMap().put(policyEntry.getKey(), pds); } for (String policyName : policyEntry.getValue()) { if (policyMap.containsKey(policyName)) { pds.add(policyMap.get(policyName)); } } } }
@SuppressWarnings("unchecked") @Override public synchronized void onAlertBoltSpecChange(AlertBoltSpec spec, Map<String, StreamDefinition> sds) { List<PolicyDefinition> newPolicies = spec.getBoltPoliciesMap().get(boltId); if (newPolicies == null) { LOG.info("no new policy with AlertBoltSpec {} for this bolt {}", spec, boltId);
private AlertBoltSpec createAlertSpec() throws Exception { AlertBoltSpec spec = new AlertBoltSpec(); spec.setVersion("version1"); spec.setTopologyName("testTopology"); List<PolicyDefinition> policies = mapper.readValue(TestStateCheckPolicy.class.getResourceAsStream("/statecheck/policies.json"), new TypeReference<List<PolicyDefinition>>() { }); Assert.assertTrue(policies.size() > 0); spec.addBoltPolicy("alertBolt1", policies.get(0).getName()); spec.getBoltPoliciesMap().put("alertBolt1", new ArrayList<>(policies)); return spec; }
sendData(alertBolt, definitionMap, spec.getBoltPoliciesMap().values().iterator().next().get(0));
private void pushAlertBoltSpec(StreamPartition sp, AlertBolt bolt) { Map<String, StreamDefinition> sds = new HashMap<>(); sds.put("correlatedStream", createCorrelateStream("correlatedStream")); sds.put("symptomaticAlertOutputStream", createCorrelateStream("symptomaticAlertOutputStream")); // output of updated correlatedStream sds.put("deviceDownAlertStream", createCorrelateStream("deviceDownAlertStream")); PolicyDefinition pd = new PolicyDefinition(); pd.setName("network_symptomatic"); pd.setInputStreams(Arrays.asList("correlatedStream")); pd.setOutputStreams(Arrays.asList("deviceDownAlertStream", "symptomaticAlertOutputStream")); pd.setPartitionSpec(Arrays.asList(sp)); PolicyDefinition.Definition def = new PolicyDefinition.Definition(); def.setType(PolicyStreamHandlers.SIDDHI_ENGINE); def.setValue("from correlatedStream#window.externalTime(timestamp, 3 min) select UUID() as docId, linkedSwitch, '' as parentKey, timestamp group by linkedSwitch having count() > 0 insert into deviceDownAlertStream; " + " from correlatedStream#window.externalTime(timestamp, 3 min) as left join deviceDownAlertStream#window.time(3 min) as right on left.linkedSwitch == right.linkedSwitch" + " select left.docId, left.timestamp, left.linkedSwitch, right.docId as parentKey insert into symptomaticAlertOutputStream;"); pd.setDefinition(def); AlertBoltSpec spec = new AlertBoltSpec(); spec.setVersion("version1"); spec.setTopologyName("testTopology"); spec.addBoltPolicy("alertBolt1", pd.getName()); spec.getBoltPoliciesMap().put("alertBolt1", new ArrayList<>(Arrays.asList(pd))); bolt.onAlertBoltSpecChange(spec, sds); }
def.setOutputStreams(Arrays.asList("out")); boltSpecs.getBoltPoliciesMap().put(bolt.getBoltId(), Arrays.asList(def)); bolt = createAlertBolt(collector); bolt.onAlertBoltSpecChange(boltSpecs, sds);
def.setDefinition(definition); boltSpecs.getBoltPoliciesMap().put(bolt.getBoltId(), Arrays.asList(def));
AlertBolt bolt = createAlertBolt(collector); boltSpecs.getBoltPoliciesMap().put(bolt.getBoltId(), Arrays.asList(def)); boltSpecs.setVersion("spec_" + System.currentTimeMillis());
AlertBolt bolt = createAlertBolt(collector); boltSpecs.getBoltPoliciesMap().put(bolt.getBoltId(), Arrays.asList(def)); boltSpecs.setVersion("spec_" + System.currentTimeMillis()); def.setDefinition(definition); def.setPartitionSpec(Arrays.asList(createPartition())); boltSpecs.getBoltPoliciesMap().put(bolt.getBoltId(), Arrays.asList(def));
pd.getDefinition().value = "from cpuUsageStream[col1=='value1' OR col1=='value2'] select col1 insert into testAlertStream;"; spec.addBoltPolicy("alertBolt1", pd.getName()); spec.getBoltPoliciesMap().put("alertBolt1", new ArrayList<PolicyDefinition>(Arrays.asList(pd))); spec.addPublishPartition("testAlertStream", "policy1", "testAlertPublish", null); bolt.onAlertBoltSpecChange(spec, sds);