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); } }
RouterSpec gSpec = state.getGroupSpecs().get(topologyId); if (gSpec == null) { LOG.error(" alert spec for version {} not found for topology {} !", version, topologyId);
for (String key : state.getGroupSpecs().keySet()) { RouterSpec groupSpec = state.getGroupSpecs().get(key); addOne(groupSpecs, groupSpec);
@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()); } }
RouterSpec groupSpec = state.getGroupSpecs().get(joinTopo); AlertBoltSpec alertSpec = state.getAlertSpecs().get(joinTopo);
Iterator<RouterSpec> gsit = status.getGroupSpecs().values().iterator(); Assert.assertEquals(2, status.getGroupSpecs().values().size());
Iterator<RouterSpec> gsit = status.getGroupSpecs().values().iterator(); Assert.assertEquals(2, status.getGroupSpecs().values().size()); Assert.assertTrue(gsit.hasNext()); RouterSpec gspec = gsit.next();
Iterator<RouterSpec> gsit = status.getGroupSpecs().values().iterator(); Assert.assertEquals(2, status.getGroupSpecs().values().size()); Assert.assertTrue(gsit.hasNext()); RouterSpec gspec = gsit.next();
ScheduleState state = ps.getState(); Assert.assertTrue(state.getGroupSpecs().get("topo2").getRouterSpecs().size() == 0); state = ps.getState(); for(StreamRouterSpec spec : state.getGroupSpecs().get("topo2").getRouterSpecs()) { if (spec.getStreamId().equals(STREAM1)) { Assert.assertTrue(spec.getTargetQueue().size() == 1);