protected internal override IList <Queue> GetChildReservationQueues(Queue queue)
        {
            PlanQueue       planQueue   = (PlanQueue)queue;
            IList <CSQueue> childQueues = planQueue.GetChildQueues();

            return(childQueues);
        }
        protected internal override Org.Apache.Hadoop.Yarn.Api.Records.Resource GetPlanResources
            (Plan plan, Queue queue, Org.Apache.Hadoop.Yarn.Api.Records.Resource clusterResources
            )
        {
            PlanQueue planQueue  = (PlanQueue)queue;
            float     planAbsCap = planQueue.GetAbsoluteCapacity();

            Org.Apache.Hadoop.Yarn.Api.Records.Resource planResources = Resources.Multiply(clusterResources
                                                                                           , planAbsCap);
            plan.SetTotalCapacity(planResources);
            return(planResources);
        }
        protected internal override void AddReservationQueue(string planQueueName, Queue
                                                             queue, string currResId)
        {
            PlanQueue planQueue = (PlanQueue)queue;

            try
            {
                ReservationQueue resQueue = new ReservationQueue(cs, currResId, planQueue);
                cs.AddQueue(resQueue);
            }
            catch (SchedulerDynamicEditException e)
            {
                Log.Warn("Exception while trying to activate reservation: {} for plan: {}", currResId
                         , planQueueName, e);
            }
            catch (IOException e)
            {
                Log.Warn("Exception while trying to activate reservation: {} for plan: {}", currResId
                         , planQueueName, e);
            }
        }
        protected internal override void CreateDefaultReservationQueue(string planQueueName
                                                                       , Queue queue, string defReservationId)
        {
            PlanQueue planQueue = (PlanQueue)queue;

            if (cs.GetQueue(defReservationId) == null)
            {
                try
                {
                    ReservationQueue defQueue = new ReservationQueue(cs, defReservationId, planQueue);
                    cs.AddQueue(defQueue);
                }
                catch (SchedulerDynamicEditException e)
                {
                    Log.Warn("Exception while trying to create default reservation queue for plan: {}"
                             , planQueueName, e);
                }
                catch (IOException e)
                {
                    Log.Warn("Exception while trying to create default reservation queue for " + "plan: {}"
                             , planQueueName, e);
                }
            }
        }