Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }