public FairSchedulerInfo(FairScheduler fs) { scheduler = fs; rootQueue = new FairSchedulerQueueInfo(scheduler.getQueueManager(). getRootQueue(), scheduler); }
@Override protected void render(Block html) { ResponseInfo ri = info("\'" + qinfo.getQueueName() + "\' Queue Status"). __("Used Resources:", qinfo.getUsedResources().toString()). __("Min Resources:", qinfo.getMinResources().toString()). __("Max Resources:", qinfo.getMaxResources().toString()). __("Max Container Allocation:", qinfo.getMaxContainerAllocation().toString()). __("Reserved Resources:", qinfo.getReservedResources().toString()); int maxApps = qinfo.getMaxApplications(); if (maxApps < Integer.MAX_VALUE) { ri.__("Max Running Applications:", qinfo.getMaxApplications()); } ri.__(STEADY_FAIR_SHARE + ":", qinfo.getSteadyFairShare().toString()); ri.__(INSTANTANEOUS_FAIR_SHARE + ":", qinfo.getFairShare().toString()); html.__(InfoBlock.class); // clear the info contents so this queue's info doesn't accumulate into another queue's info ri.clear(); } }
@Override public void render(Block html) { Collection<FairSchedulerQueueInfo> subQueues = fsqinfo.qinfo.getChildQueues(); UL<Hamlet> ul = html.ul("#pq"); for (FairSchedulerQueueInfo info : subQueues) { float capacity = info.getMaxResourcesFraction(); float steadyFairShare = info.getSteadyFairShareMemoryFraction(); float instantaneousFairShare = info.getFairShareMemoryFraction(); float used = info.getUsedMemoryFraction(); LI<UL<Hamlet>> li = ul. li(). ";font-size:1px;left:0%;", used > instantaneousFairShare ? Q_OVER : Q_UNDER)). _('.')._(). span(".q", info.getQueueName())._(). span().$class("qstats").$style(left(Q_STATS_POS)). _(join(percent(used), " used"))._();
@Test public void testEmptyChildQueues() throws Exception { FairSchedulerConfiguration conf = new FairSchedulerConfiguration(); FairScheduler scheduler = mock(FairScheduler.class); AllocationConfiguration allocConf = new AllocationConfiguration(conf); when(scheduler.getAllocationConfiguration()).thenReturn(allocConf); when(scheduler.getConf()).thenReturn(conf); when(scheduler.getClusterResource()).thenReturn(Resource.newInstance(1, 1)); when(scheduler.getResourceCalculator()).thenReturn( new DefaultResourceCalculator()); SystemClock clock = SystemClock.getInstance(); when(scheduler.getClock()).thenReturn(clock); QueueManager queueManager = new QueueManager(scheduler); queueManager.initialize(conf); FSQueue testQueue = queueManager.getLeafQueue("test", true); FairSchedulerQueueInfo queueInfo = new FairSchedulerQueueInfo(testQueue, scheduler); Collection<FairSchedulerQueueInfo> childQueues = queueInfo.getChildQueues(); Assert.assertNotNull(childQueues); Assert.assertEquals("Child QueueInfo was not empty", 0, childQueues.size()); } }
FairSchedulerInfo sinfo = new FairSchedulerInfo(fs); fsqinfo.qinfo = sinfo.getRootQueueInfo(); float used = fsqinfo.qinfo.getUsedMemoryFraction();
childQueues = getChildQueues(queue, scheduler);
@Override public void render(Block html) { Collection<FairSchedulerQueueInfo> subQueues = fsqinfo.qinfo.getChildQueues(); UL<Hamlet> ul = html.ul("#pq"); for (FairSchedulerQueueInfo info : subQueues) { float capacity = info.getMaxResourcesFraction(); float steadyFairShare = info.getSteadyFairShareMemoryFraction(); float instantaneousFairShare = info.getFairShareMemoryFraction(); float used = info.getUsedMemoryFraction(); LI<UL<Hamlet>> li = ul. li(). ";font-size:1px;left:0%;", used > instantaneousFairShare ? Q_OVER : Q_UNDER)). _('.')._(). span(".q", info.getQueueName())._(). span().$class("qstats").$style(left(Q_STATS_POS)). _(join(percent(used), " used"))._();
FairSchedulerInfo sinfo = new FairSchedulerInfo(fs); fsqinfo.qinfo = sinfo.getRootQueueInfo(); float used = fsqinfo.qinfo.getUsedMemoryFraction();
@Override public void render(Block html) { Collection<FairSchedulerQueueInfo> subQueues = fsqinfo.qinfo.getChildQueues(); UL<Hamlet> ul = html.ul("#pq"); for (FairSchedulerQueueInfo info : subQueues) { float capacity = info.getMaxResourcesFraction(); float steadyFairShare = info.getSteadyFairShareMemoryFraction(); float instantaneousFairShare = info.getFairShareMemoryFraction(); float used = info.getUsedMemoryFraction(); LI<UL<Hamlet>> li = ul. li(). ";font-size:1px;left:0%;", used > instantaneousFairShare ? Q_OVER : Q_UNDER)). __('.').__(). span(".q", info.getQueueName()).__(). span().$class("qstats").$style(left(Q_STATS_POS)). __(join(percent(used), " used")).__();
public FairSchedulerInfo(FairScheduler fs) { scheduler = fs; rootQueue = new FairSchedulerQueueInfo(scheduler.getQueueManager(). getRootQueue(), scheduler); }
FairSchedulerInfo sinfo = new FairSchedulerInfo(fs); fsqinfo.qinfo = sinfo.getRootQueueInfo(); float used = fsqinfo.qinfo.getUsedMemoryFraction();
public FairSchedulerInfo(FairScheduler fs) { scheduler = fs; rootQueue = new FairSchedulerQueueInfo(scheduler.getQueueManager(). getRootQueue(), scheduler); }
protected FairSchedulerQueueInfoList getChildQueues(FSQueue queue, FairScheduler scheduler) { // Return null to omit 'childQueues' field from the return value of // REST API if it is empty. We omit the field to keep the consistency // with CapacitySchedulerQueueInfo, which omits 'queues' field if empty. Collection<FSQueue> children = queue.getChildQueues(); if (children.isEmpty()) { return null; } FairSchedulerQueueInfoList list = new FairSchedulerQueueInfoList(); for (FSQueue child : children) { if (child instanceof FSLeafQueue) { list.addToQueueInfoList( new FairSchedulerLeafQueueInfo((FSLeafQueue) child, scheduler)); } else { list.addToQueueInfoList( new FairSchedulerQueueInfo(child, scheduler)); } } return list; }
childQueues.add(new FairSchedulerLeafQueueInfo((FSLeafQueue)child, scheduler)); } else { childQueues.add(new FairSchedulerQueueInfo(child, scheduler));
childQueues.add(new FairSchedulerLeafQueueInfo((FSLeafQueue)child, scheduler)); } else { childQueues.add(new FairSchedulerQueueInfo(child, scheduler));