public static void postSchedule(IMetadataServiceClient client, ScheduleState state, ConfigBusProducer producer) { // persist state client.addScheduleState(state); // notify ConfigValue value = new ConfigValue(); value.setValue(state.getVersion()); value.setValueVersionId(true); for (String topo : state.getSpoutSpecs().keySet()) { producer.send(MessageFormat.format(ZK_ALERT_CONFIG_SPOUT, topo), value); } for (String topo : state.getGroupSpecs().keySet()) { producer.send(MessageFormat.format(ZK_ALERT_CONFIG_ROUTER, topo), value); } for (String topo : state.getAlertSpecs().keySet()) { producer.send(MessageFormat.format(ZK_ALERT_CONFIG_ALERT, topo), value); } for (String topo : state.getPublishSpecs().keySet()) { producer.send(MessageFormat.format(ZK_ALERT_CONFIG_PUBLISHER, topo), value); } }
case ALERT_BOLT: AlertBoltSpec alertSpec = state.getAlertSpecs().get(topologyId); if (alertSpec == null) { LOG.error(" alert spec for version {} not found for topology {} !", version, topologyId); } else { notifyAlertPublishBolt(pubSpec, sds); if (state.getAlertSpecs().get(topologyId) != null) { notifyAlertPublishBolt(listToMap(state.getPolicySnapshots()), sds);
IMetadataServiceClient client = new MetadataServiceClientImpl(this.getConfig()); String topologyId = spec.getTopologyName(); AlertBoltSpec latestSpec = client.getVersionedSpec().getAlertSpecs().get(topologyId); if (latestSpec != null) { spec = latestSpec;
for (String key : state.getAlertSpecs().keySet()) { AlertBoltSpec alertBoltSpec = state.getAlertSpecs().get(key); addOne(alertSpecs, alertBoltSpec);
@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()); }
@Test public void testIrregularPolicyParallelismHint() { Config config = ConfigFactory.load(); int defaultParallelism = config.getInt("coordinator.policyDefaultParallelism"); TestTopologyMgmtService mgmtService = new TestTopologyMgmtService(5, 12); InMemScheduleConext context = createScheduleContext(mgmtService); // recreate test poicy context.getPolicies().clear(); // make the hint bigger than bolt number int irregularParallelism = defaultParallelism + 2; createSamplePolicy(context, "irregularPolicy", STREAM1, irregularParallelism); GreedyPolicyScheduler ps = new GreedyPolicyScheduler(); ps.init(context, mgmtService); ScheduleState scheduled = ps.schedule(new ScheduleOption()); Assert.assertEquals(2, scheduled.getSpoutSpecs().size()); Assert.assertEquals(2, scheduled.getGroupSpecs().size()); Assert.assertEquals(2, scheduled.getAlertSpecs().size()); // assertion RouterSpec spec = scheduled.getGroupSpecs().get(TOPO1); Assert.assertTrue(spec.getRouterSpecs().size() > 0); // must be allocated for (StreamRouterSpec routerSpec : spec.getRouterSpecs()) { Assert.assertEquals(1, routerSpec.getTargetQueue().size()); // irregularParallelism is prompted to 2 * defaultParallelism = 10 Assert.assertEquals(10, routerSpec.getTargetQueue().get(0).getWorkers().size()); } }
AlertBoltSpec alertSpec = state.getAlertSpecs().get(joinTopo);
Assert.assertEquals(2, status.getAlertSpecs().values().size()); Iterator<AlertBoltSpec> asit = status.getAlertSpecs().values().iterator();
Assert.assertEquals(2, status.getAlertSpecs().values().size()); Iterator<AlertBoltSpec> asit = status.getAlertSpecs().values().iterator();
Assert.assertEquals(2, status.getAlertSpecs().values().size()); Iterator<AlertBoltSpec> asit = status.getAlertSpecs().values().iterator();