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()); }
/// <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); } }