public void AvailableDedicatedExecutorsTestSimpleScenario() { // add one that is OK ExecutorStorageView executor1 = new ExecutorStorageView(true, true, DateTime.Now, "hostname", 10, "username", 1, 1, 1, 1); // add one that is timed out ExecutorStorageView executor2 = new ExecutorStorageView(true, true, DateTime.Now.AddDays((-1)), "hostname", 10, "username", 1, 1, 1, 1); // add one that is not connected ExecutorStorageView executor3 = new ExecutorStorageView(false, false, DateTime.Now, "hostname", 10, "username", 1, 1, 1, 1); string executorId1 = _managerStorage.AddExecutor(executor1); string executorId2 = _managerStorage.AddExecutor(executor2); string executorId3 = _managerStorage.AddExecutor(executor3); string applicationId = Guid.NewGuid().ToString(); // add a few threads _managerStorage.AddThread(new ThreadStorageView(applicationId, executorId1, 1, ThreadState.Started, DateTime.Now, DateTime.Now, 1, false)); _managerStorage.AddThread(new ThreadStorageView(applicationId, executorId2, 1, ThreadState.Dead, DateTime.Now, DateTime.Now, 1, false)); _managerStorage.AddThread(new ThreadStorageView(applicationId, executorId3, 1, ThreadState.Started, DateTime.Now, DateTime.Now, 1, false)); ExecutorStorageView[] executors = _executorCollection.AvailableDedicatedExecutors; Assert.AreEqual(1, executors.Length); Assert.AreEqual(executorId2, executors[0].ExecutorId); }
public void DisconnectTimedOutExecutorsTestSimpleScenario() { // add one that is OK ExecutorStorageView executor1 = new ExecutorStorageView(true, true, DateTime.Now, "hostname", 10, "username", 1, 1, 1, 1); // add one that is timed out ExecutorStorageView executor2 = new ExecutorStorageView(true, true, DateTime.Now.AddDays((-1)), "hostname", 10, "username", 1, 1, 1, 1); // add one that is not connected ExecutorStorageView executor3 = new ExecutorStorageView(false, false, DateTime.Now, "hostname", 10, "username", 1, 1, 1, 1); string executorId1 = _managerStorage.AddExecutor(executor1); string executorId2 = _managerStorage.AddExecutor(executor2); string executorId3 = _managerStorage.AddExecutor(executor3); // whatever was not responsive in the last 60 seconds should get lost TimeSpan timeSpan = new TimeSpan(0, 0, 60); //TODO: This is now moved to the "watchdog" class //need a seperate tester for that. //DisconnectTimedOutExecutors(timeSpan); Assert.Fail("DisconnectTimedOutExecutors(timeSpan) is moved to a seperate class now. Need a new test case."); // check what was disconnected Assert.IsTrue(_managerStorage.GetExecutor(executorId1).Connected); Assert.IsFalse(_managerStorage.GetExecutor(executorId2).Connected); Assert.IsFalse(_managerStorage.GetExecutor(executorId3).Connected); }
public void DisconnectTimedOutExecutorsTestSimpleScenario() { // add one that is OK ExecutorStorageView executor1 = new ExecutorStorageView(true, true, DateTime.Now, "hostname", 10, "username", 1, 1, 1, 1); // add one that is timed out ExecutorStorageView executor2 = new ExecutorStorageView(true, true, DateTime.Now.AddDays((-1)), "hostname", 10, "username", 1, 1, 1, 1); // add one that is not connected ExecutorStorageView executor3 = new ExecutorStorageView(false, false, DateTime.Now, "hostname", 10, "username", 1, 1, 1, 1); String executorId1 = m_managerStorage.AddExecutor(executor1); String executorId2 = m_managerStorage.AddExecutor(executor2); String executorId3 = m_managerStorage.AddExecutor(executor3); // whatever was not responsive in the last 60 seconds should get lost TimeSpan timeSpan = new TimeSpan(0, 0, 60); DisconnectTimedOutExecutors(timeSpan); // check what was disconnected Assert.IsTrue(m_managerStorage.GetExecutor(executorId1).Connected); Assert.IsFalse(m_managerStorage.GetExecutor(executorId2).Connected); Assert.IsFalse(m_managerStorage.GetExecutor(executorId3).Connected); }
public void Admon_PerformStorageMaintenanceTestWithParameters() { SetupApplicationsGroupsAndUsers(Permission.ManageAllApps); SecurityCredentials sc = new SecurityCredentials("username1", HashUtil.GetHash("password1", HashType.MD5)); _managerStorage.AddApplication(new ApplicationStorageView("username1")); _managerStorage.AddExecutor(new ExecutorStorageView(true, true, DateTime.Now, "test", 1, "test", 1, 1, 1, 1)); StorageMaintenanceParameters maintenanceParameters = new StorageMaintenanceParameters(); maintenanceParameters.RemoveAllExecutors = true; maintenanceParameters.RemoveAllApplications = true; // just to keep things honest make sure there is something there Assert.AreNotEqual(0, _managerStorage.GetExecutors().Length); Assert.AreNotEqual(0, _managerStorage.GetApplications().Length); Admon_PerformStorageMaintenance(sc, maintenanceParameters); Assert.AreEqual(0, _managerStorage.GetExecutors().Length); Assert.AreEqual(0, _managerStorage.GetApplications().Length); }
/// <summary> /// Add all kinds of objects to the storage so the maintenance functions have something to play with. /// </summary> private void PrepareComplexStorageForMaintenanceTests() { DateTime pingTime = DateTime.Now; _managerStorage.AddExecutor(new ExecutorStorageView(true, true, pingTime.AddDays(-1), "hostname", 1, "username", 1, 2, 3, 4)); _managerStorage.AddExecutor(new ExecutorStorageView(false, true, pingTime.AddDays(2), "hostname", 1, "username", 1, 2, 3, 4)); _managerStorage.AddExecutor(new ExecutorStorageView(true, false, pingTime.AddDays(1), "hostname", 1, "username", 1, 2, 3, 4)); _managerStorage.AddExecutor(new ExecutorStorageView(false, false, pingTime.AddDays(-2), "hostname", 1, "username", 1, 2, 3, 4)); DateTime timeCreated = DateTime.Now; ApplicationStorageView application1; ApplicationStorageView application2; ApplicationStorageView application3; ApplicationStorageView application4; ApplicationStorageView application5; application1 = new ApplicationStorageView(ApplicationState.AwaitingManifest, timeCreated.AddDays(-5), false, "username1"); application2 = new ApplicationStorageView(ApplicationState.Stopped, timeCreated.AddDays(-4), false, "username1"); application3 = new ApplicationStorageView(ApplicationState.Ready, timeCreated.AddDays(1), false, "username1"); application4 = new ApplicationStorageView(ApplicationState.AwaitingManifest, timeCreated.AddDays(-3), false, "username1"); application5 = new ApplicationStorageView(ApplicationState.Stopped, timeCreated.AddDays(2), false, "username1"); // leave time completed not set for application1 to test that scenario as well application2.TimeCompleted = DateTime.Now.AddDays(-4); application3.TimeCompleted = DateTime.Now.AddDays(2); application4.TimeCompleted = DateTime.Now.AddDays(-3); application5.TimeCompleted = DateTime.Now.AddDays(3); _managerStorage.AddApplication(application1); _managerStorage.AddApplication(application2); _managerStorage.AddApplication(application3); _managerStorage.AddApplication(application4); _managerStorage.AddApplication(application5); }