public virtual void TestRemoveDoesNotEnableAnyApp()
        {
            FSLeafQueue leaf1 = queueManager.GetLeafQueue("root.queue1", true);
            FSLeafQueue leaf2 = queueManager.GetLeafQueue("root.queue2", true);

            queueMaxApps["root"]        = 2;
            queueMaxApps["root.queue1"] = 1;
            queueMaxApps["root.queue2"] = 1;
            FSAppAttempt app1 = AddApp(leaf1, "user");

            AddApp(leaf2, "user");
            AddApp(leaf2, "user");
            NUnit.Framework.Assert.AreEqual(1, leaf1.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumNonRunnableApps());
            RemoveApp(app1);
            NUnit.Framework.Assert.AreEqual(0, leaf1.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumNonRunnableApps());
        }
        public virtual void TestRemoveEnablesAppOnCousinQueue()
        {
            FSLeafQueue leaf1 = queueManager.GetLeafQueue("root.queue1.subqueue1.leaf1", true
                                                          );
            FSLeafQueue leaf2 = queueManager.GetLeafQueue("root.queue1.subqueue2.leaf2", true
                                                          );

            queueMaxApps["root.queue1"] = 2;
            FSAppAttempt app1 = AddApp(leaf1, "user");

            AddApp(leaf2, "user");
            AddApp(leaf2, "user");
            NUnit.Framework.Assert.AreEqual(1, leaf1.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumNonRunnableApps());
            RemoveApp(app1);
            NUnit.Framework.Assert.AreEqual(0, leaf1.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(2, leaf2.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(0, leaf2.GetNumNonRunnableApps());
        }
        public virtual void TestRemoveEnablesOneByQueueOneByUser()
        {
            FSLeafQueue leaf1 = queueManager.GetLeafQueue("root.queue1.leaf1", true);
            FSLeafQueue leaf2 = queueManager.GetLeafQueue("root.queue1.leaf2", true);

            queueMaxApps["root.queue1.leaf1"] = 2;
            userMaxApps["user1"] = 1;
            FSAppAttempt app1 = AddApp(leaf1, "user1");

            AddApp(leaf1, "user2");
            AddApp(leaf1, "user3");
            AddApp(leaf2, "user1");
            NUnit.Framework.Assert.AreEqual(2, leaf1.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf1.GetNumNonRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumNonRunnableApps());
            RemoveApp(app1);
            NUnit.Framework.Assert.AreEqual(2, leaf1.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(1, leaf2.GetNumRunnableApps());
            NUnit.Framework.Assert.AreEqual(0, leaf1.GetNumNonRunnableApps());
            NUnit.Framework.Assert.AreEqual(0, leaf2.GetNumNonRunnableApps());
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Returns true if there are no applications, running or not, in the given
 /// queue or any of its descendents.
 /// </summary>
 protected internal virtual bool IsEmpty(FSQueue queue)
 {
     if (queue is FSLeafQueue)
     {
         FSLeafQueue leafQueue = (FSLeafQueue)queue;
         return(queue.GetNumRunnableApps() == 0 && leafQueue.GetNumNonRunnableApps() == 0);
     }
     else
     {
         foreach (FSQueue child in queue.GetChildQueues())
         {
             if (!IsEmpty(child))
             {
                 return(false);
             }
         }
         return(true);
     }
 }