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)); } } } }
@Test public void testDataSources() throws Exception { InMemScheduleConext context = loadContext("/multi/"); TestTopologyMgmtService mgmtService = new TestTopologyMgmtService(4, 10); GreedyPolicyScheduler ps = new GreedyPolicyScheduler(); ps.init(context, mgmtService); ScheduleState state = ps.schedule(new ScheduleOption()); Assert.assertNotNull(state); Assert.assertEquals(2, state.getAssignments().size()); Assert.assertEquals(1, state.getAlertSpecs().size()); Assert.assertEquals(10, state.getAlertSpecs().get("alertUnitTopology_1").getBoltPolicyIdsMap().size()); }
Assert.assertEquals(5, as.getBoltPolicyIdsMap().size()); for (List<String> pdList : as.getBoltPolicyIdsMap().values()) { Assert.assertEquals(1, pdList.size()); Assert.assertEquals(TEST_POLICY_3, pdList.get(0));
String topo1 = alertSpec.getTopologyName(); LOG.info("alert spec topology name {}", topo1); for (List<String> definitions : alertSpec.getBoltPolicyIdsMap().values()) { Assert.assertEquals(1, definitions.size()); Assert.assertEquals(TEST_POLICY_1, definitions.get(0)); String topo1 = alertSpec.getTopologyName(); LOG.info("alert spec topology name {}", topo1); Assert.assertEquals(0, alertSpec.getBoltPolicyIdsMap().size());
String topo1 = alertSpec.getTopologyName(); LOG.info("alert spec topology name {}", topo1); for (List<String> definitions : alertSpec.getBoltPolicyIdsMap().values()) { Assert.assertEquals(2, definitions.size()); Assert.assertEquals(0, spec.getBoltPolicyIdsMap().size());