public void SetData(ApplicationStorageView application)
        {
            this._app = application;

            this.lbName.Text = _app.ApplicationName;

            txId.Text = _app.ApplicationId;
            txUsername.Text = _app.Username;

            if (_app.TimeCreatedSet)
            {
                txCreated.Text = _app.TimeCreated.ToString();
            }

            if (_app.TimeCompletedSet)
            {
                txCompleted.Text = _app.TimeCompleted.ToString();
            }

            txState.Text = _app.StateString;
            chkPrimary.Checked = _app.Primary;
            txNumThreads.Text = _app.TotalThreads.ToString();

            btnStop.Enabled = (_app.State != ApplicationState.Stopped);
        }
Example #2
0
        public void Admon_DeleteApplication(SecurityCredentials sc, ApplicationStorageView applicationToDelete)
        {
            AuthenticateUser(sc);
            EnsurePermission(sc, Permission.ManageAllApps);

            logger.Debug(String.Format("Deleting application {0}.", applicationToDelete.ApplicationId));

            ManagerStorageFactory.ManagerStorage().DeleteApplication(applicationToDelete);
        }
        public void TimeCompletedSetTestSettingIt()
        {
            ApplicationStorageView application = new ApplicationStorageView("username1");

            Assert.IsFalse(application.TimeCompletedSet);

            application.TimeCompleted = DateTime.Now;

            Assert.IsTrue(application.TimeCompletedSet);
        }
        public void TimeCreatedSetTestSettingIt()
        {
            ApplicationStorageView application = new ApplicationStorageView("username1");

            Assert.IsFalse(application.TimeCreatedSet);

            application = new ApplicationStorageView(ApplicationState.AwaitingManifest, DateTime.Now, false, "username1");

            Assert.IsTrue(application.TimeCreatedSet);
        }
        public string AddApplication(ApplicationStorageView application)
        {
            if (application == null)
            {
                return null;
            }

            string applicationId = Guid.NewGuid().ToString();

            application.ApplicationId = applicationId;

            _applications.Add(application);

            return applicationId;
        }
        public void TotalThreadsTestNotSet()
        {
            ApplicationStorageView application = new ApplicationStorageView("username1");

            try
            {
                int result = application.TotalThreads;
            }
            catch
            {
                // exception expected
                return;
            }

            Assert.Fail("An exception was expected");
        }
        public String AddApplication(ApplicationStorageView application)
        {
            if (application == null)
            {
                return null;
            }

            if (m_applications == null)
            {
                m_applications = new ArrayList();
            }

            String applicationId = Guid.NewGuid().ToString();

            application.ApplicationId = applicationId;

            m_applications.Add(application);

            return applicationId;
        }
        public string AddApplication(ApplicationStorageView application)
        {
            if (application == null)
            {
                return null;
            }

            string applicationId = Guid.NewGuid().ToString();

            application.ApplicationId = applicationId;

            IObjectContainer container = GetStorage();
            try
            {
                container.Set(application);
            }
            finally
            {
                container.Close();
            }
            return applicationId;
        }
        public string AddApplication(ApplicationStorageView application)
        {
            if (application == null)
            {
                return null;
            }

            string applicationId = Guid.NewGuid().ToString();

            IDataParameter timeCreatedParameter = GetParameter(DatabaseParameterDecoration() + "time_created", application.TimeCreated, DbType.DateTime);
            if (!application.TimeCreatedSet)
            {
                timeCreatedParameter.Value = DBNull.Value;
            }

            IDataParameter timeCompletedParameter = GetParameter(DatabaseParameterDecoration() + "time_completed", application.TimeCompleted, DbType.DateTime);
            if (!application.TimeCompletedSet)
            {
                timeCompletedParameter.Value = DBNull.Value;
            }

            RunSql(String.Format("insert into application(application_id, state, time_created, time_completed, is_primary, usr_name) values ('{1}', {2}, {0}time_created,{0}time_completed, {3}, '{4}')",
                DatabaseParameterDecoration(),
                applicationId,
                (int)application.State,
                Convert.ToInt16(application.Primary),
                Utils.MakeSqlSafe(application.Username)
                ),
                timeCreatedParameter,
                timeCompletedParameter);

            application.ApplicationId = applicationId;

            UpdateApplicationName(application);

            return applicationId;
        }
        public ApplicationStorageView[] GetApplications(string userName, bool populateThreadCount)
        {
            ArrayList applications = new ArrayList();

            string sql = string.Format("select application_id, state, time_created, is_primary, usr_name, application_name, time_completed from application where usr_name = '{0}'", Utils.MakeSqlSafe(userName));

            using(IDataReader dataReader = RunSqlReturnDataReader(sql))
            {
                while(dataReader.Read())
                {
                    // in SQL the application ID is stored as a GUID so we use GetValue instead of GetString in order to maximize compatibility with other databases
                    string applicationId = dataReader.GetValue(dataReader.GetOrdinal("application_id")).ToString();

                    ApplicationState state = (ApplicationState)dataReader.GetInt32(dataReader.GetOrdinal("state"));
                    DateTime timeCreated = GetDateTime(dataReader, "time_created");
                    bool primary = dataReader.GetBoolean(dataReader.GetOrdinal("is_primary"));
                    string username = dataReader.GetString(dataReader.GetOrdinal("usr_name"));

                    ApplicationStorageView application = new ApplicationStorageView(
                        applicationId,
                        state,
                        timeCreated,
                        primary,
                        username
                        );

                    application.ApplicationName = dataReader.IsDBNull(dataReader.GetOrdinal("application_name")) ? "" : dataReader.GetString(dataReader.GetOrdinal("application_name"));
                    application.TimeCompleted = GetDateTime(dataReader, "time_completed");

                    if (populateThreadCount)
                    {
                        int totalThreads;
                        int unfinishedThreads;

                        GetApplicationThreadCount(application.ApplicationId, out totalThreads, out unfinishedThreads);

                        application.TotalThreads = totalThreads;
                        application.UnfinishedThreads = unfinishedThreads;
                    }

                    applications.Add(application);
                }

                dataReader.Close();
            }

            return (ApplicationStorageView[])applications.ToArray(typeof(ApplicationStorageView));
        }
        public ApplicationStorageView GetApplication(string applicationId)
        {
            using (IDataReader dataReader = RunSqlReturnDataReader(String.Format("select application_id, application_name, state, time_created, is_primary, usr_name, time_completed from application where application_id='{0}'", applicationId)))
            {
                if(dataReader.Read())
                {
                    ApplicationState state = (ApplicationState)dataReader.GetInt32(dataReader.GetOrdinal("state"));
                    DateTime timeCreated = GetDateTime(dataReader, "time_created");
                    bool primary = dataReader.GetBoolean(dataReader.GetOrdinal("is_primary"));
                    string username = dataReader.GetString(dataReader.GetOrdinal("usr_name"));

                    ApplicationStorageView application = new ApplicationStorageView(
                        applicationId,
                        state,
                        timeCreated,
                        primary,
                        username
                        );

                    application.ApplicationName = dataReader.IsDBNull(dataReader.GetOrdinal("application_name")) ? "" : dataReader.GetString(dataReader.GetOrdinal("application_name"));
                    application.TimeCompleted = GetDateTime(dataReader, "time_completed");

                    dataReader.Close();
                    return application;
                }
                else
                {
                    dataReader.Close();
                    return null;
                }

            }
        }
Example #12
0
        public void IsApplicationCreatorTestInvalidApplication()
        {
            ApplicationStorageView application = new ApplicationStorageView("username1");

            string applicationId = _managerStorage.AddApplication(application);
            string invalidApplicationId = Guid.NewGuid().ToString();

            SecurityCredentials sc = new SecurityCredentials("username1", HashUtil.GetHash("password1", HashType.MD5));

            bool result = IsApplicationCreator(sc, invalidApplicationId);

            Assert.IsFalse(result);
        }
        public void UpdateApplicationTest2()
        {
            DateTime timeCreated = DateTime.Now.AddDays(1);

            ApplicationStorageView updatedApplication = new ApplicationStorageView(ApplicationState.AwaitingManifest, timeCreated, false, "username2");

            updatedApplication.ApplicationId = "";

            ManagerStorage.UpdateApplication(updatedApplication);

            ApplicationStorageView[] applications = ManagerStorage.GetApplications();

            Assert.AreEqual(0, applications.Length);
        }
Example #14
0
        /// <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;

            m_managerStorage.AddExecutor(new ExecutorStorageView(true, true, pingTime.AddDays(-1), "hostname", 1, "username", 1, 2, 3, 4));
            m_managerStorage.AddExecutor(new ExecutorStorageView(false, true, pingTime.AddDays(2), "hostname", 1, "username", 1, 2, 3, 4));
            m_managerStorage.AddExecutor(new ExecutorStorageView(true, false, pingTime.AddDays(1), "hostname", 1, "username", 1, 2, 3, 4));
            m_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);

            m_managerStorage.AddApplication(application1);
            m_managerStorage.AddApplication(application2);
            m_managerStorage.AddApplication(application3);
            m_managerStorage.AddApplication(application4);
            m_managerStorage.AddApplication(application5);
        }
        public void UnfinishedThreadsTestNotSet()
        {
            ApplicationStorageView application = new ApplicationStorageView("username1");

            try
            {
                Int32 result = application.UnfinishedThreads;
            }
            catch
            {
                // exception expected
                return;
            }

            Assert.Fail("An exception was expected");
        }
Example #16
0
        /// <summary>
        /// Initializes this thread.
        /// </summary>
        /// <param name="primary">specifies if this thread is a primary thread. A thread is primary if it is created and scheduled by the same manager</param>
        public void Init(bool primary)
        {
            if (primary)
            {
                ThreadStorageView threadStorage = new ThreadStorageView(_AppId, _Id, ThreadState.Ready);

                ManagerStorageFactory.ManagerStorage().AddThread(threadStorage);
            }
            else
            {
                ApplicationStorageView applicationStorage = ManagerStorageFactory.ManagerStorage().GetApplication(_AppId);

                if (applicationStorage == null)
                {
                    applicationStorage = new ApplicationStorageView(
                        _AppId,
                        ApplicationState.AwaitingManifest,
                        DateTime.Now,
                        false,
                        ""/* TODO: What's the username here?*/);

                    ManagerStorageFactory.ManagerStorage().AddApplication(applicationStorage);
                }

                ThreadStorageView threadStorage = new ThreadStorageView(_AppId, _Id, ThreadState.Ready);

                ManagerStorageFactory.ManagerStorage().AddThread(threadStorage);
            }
        }
        public void UpdateApplication(ApplicationStorageView updatedApplication)
        {
            if (updatedApplication == null)
            {
                return;
            }

            ArrayList newApplicationList = new ArrayList();

            foreach(ApplicationStorageView application in _applications)
            {
                if (application.ApplicationId == updatedApplication.ApplicationId)
                {
                    newApplicationList.Add(updatedApplication);
                }
                else
                {
                    newApplicationList.Add(application);
                }
            }

            _applications = newApplicationList;
        }
        public void UpdateApplicationTestIfTimeCompletedIsSaved()
        {
            // TB: due to rounding errors the milliseconds might be lost in the database storage.
            // TB: I think this is OK so we create a test DateTime without milliseconds
            DateTime now = DateTime.Now;
            DateTime timeCreated = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0);
            now = now.AddDays(1);
            DateTime timeCompleted = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, 0);

            string applicationId = AddApplication(ApplicationState.Ready, timeCreated, false, "test");

            ApplicationStorageView updatedApplication = new ApplicationStorageView(ApplicationState.Stopped, timeCreated, true, "test2");

            updatedApplication.ApplicationId = applicationId;
            updatedApplication.TimeCompleted = timeCompleted;

            ManagerStorage.UpdateApplication(updatedApplication);

            ApplicationStorageView[] applications = ManagerStorage.GetApplications();

            Assert.AreEqual(1, applications.Length);
            Assert.AreEqual(timeCompleted, applications[0].TimeCompleted);
        }
        public void DeleteApplication( ApplicationStorageView applicationToDelete )
        {
            if( applicationToDelete == null )
            {
                return;
            }

            ArrayList remainingApplications = new ArrayList();
            ArrayList remainingThreads = new ArrayList();

            foreach( ThreadStorageView thread in _threads )
            {
                if( thread.ApplicationId != applicationToDelete.ApplicationId )
                {
                    remainingThreads.Add( thread );
                }
            }

            foreach( ApplicationStorageView application in _applications )
            {
                if( application.ApplicationId != applicationToDelete.ApplicationId )
                {
                    remainingApplications.Add( application );
                }
            }

            _threads = remainingThreads;
            _applications = remainingApplications;
        }
        private string AddApplication(
            ApplicationState state,
            DateTime timeCreated,
            bool primary,
            string username
            )
        {
            ApplicationStorageView application = new ApplicationStorageView(
                state,
                timeCreated,
                primary,
                username
                );

            return ManagerStorage.AddApplication(application);
        }
Example #21
0
        public void IsApplicationCreatorTestRealCreator()
        {
            ApplicationStorageView application = new ApplicationStorageView("username1");

            string applicationId = _managerStorage.AddApplication(application);

            SecurityCredentials sc = new SecurityCredentials("username1", HashUtil.GetHash("password1", HashType.MD5));

            bool result = IsApplicationCreator(sc, applicationId);

            Assert.IsTrue(result);
        }
Example #22
0
        public void UpdateApplication(ApplicationStorageView updatedApplication)
        {
            ApplicationStorageView application = null;
            IObjectContainer container = GetStorage();
            try
            {
                IList<ApplicationStorageView> apps =
                    container.Query<ApplicationStorageView>(delegate(ApplicationStorageView app)
                {
                    return app.ApplicationId == updatedApplication.ApplicationId;
                });

                if (apps.Count > 0)
                {
                    application = apps[0];
                    container.Delete(application);
                    container.Set(updatedApplication);
                }
            }
            finally
            {
                container.Close();
            }
        }
Example #23
0
        public void DeleteApplication(ApplicationStorageView applicationToDelete)
        {
            if (applicationToDelete == null)
            {
                return;
            }

            IObjectContainer container = GetStorage();
            try
            {
                IList<ThreadStorageView> threads =
                    container.Query<ThreadStorageView>(delegate(ThreadStorageView threadFinder)
                {
                    return threadFinder.ApplicationId == applicationToDelete.ApplicationId;
                });
                foreach (ThreadStorageView thread in threads)
                    container.Delete(thread);

                IList<ApplicationStorageView> apps =
                    container.Query<ApplicationStorageView>(delegate(ApplicationStorageView appFinder)
                {
                    return appFinder.ApplicationId == applicationToDelete.ApplicationId;
                });
                foreach (ApplicationStorageView app in apps)
                    container.Delete(app);

            }
            finally
            {
                container.Close();
            }
        }
        public void AddApplicationTestWithUsernameOnly()
        {
            ApplicationStorageView application = new ApplicationStorageView("username3");

            string applicationId = ManagerStorage.AddApplication(application);

            Assert.AreEqual(ApplicationState.Stopped, application.State);
            Assert.AreEqual(true, application.Primary);
            Assert.IsFalse(application.TimeCreatedSet);
            Assert.IsTrue(applicationId != null && applicationId.Length > 0, "Invalid ApplicationID!");
        }
Example #25
0
        public ApplicationStorageView[] GetApplications(string userName, bool populateThreadCount)
        {
            ApplicationStorageView[] allApplications;
            IObjectContainer container = GetStorage();
            try
            {
                IList<ApplicationStorageView> applicationsList =
                    container.Query<ApplicationStorageView>(delegate(ApplicationStorageView applicationFinder)
                {
                    return string.IsNullOrEmpty(userName)
                        || String.Compare(applicationFinder.Username, userName, false) == 0;
                });

                foreach (ApplicationStorageView application in applicationsList)
                {
                    if (populateThreadCount)
                    {
                        int totalThreads;
                        int unfinishedThreads;

                        GetApplicationThreadCount(application.ApplicationId, out totalThreads, out unfinishedThreads);

                        application.TotalThreads = totalThreads;
                        application.UnfinishedThreads = unfinishedThreads;
                    }
                }
                if (applicationsList.Count > 0)
                {
                    allApplications = new ApplicationStorageView[applicationsList.Count];
                    applicationsList.CopyTo(allApplications, 0);
                }
                else
                    allApplications = new ApplicationStorageView[0];
            }
            finally
            {
                container.Close();
            }

            return allApplications;
        }
        public void UpdateApplication(ApplicationStorageView updatedApplication)
        {
            if (updatedApplication == null || updatedApplication.ApplicationId == null || updatedApplication.ApplicationId.Length == 0)
            {
                return;
            }

            IDataParameter timeCreatedParameter = GetParameter(DatabaseParameterDecoration() + "time_created", updatedApplication.TimeCreated, DbType.DateTime);
            if (!updatedApplication.TimeCreatedSet)
            {
                timeCreatedParameter.Value = DBNull.Value;
            }

            IDataParameter timeCompletedParameter = GetParameter(DatabaseParameterDecoration() + "time_completed", updatedApplication.TimeCompleted, DbType.DateTime);
            if (!updatedApplication.TimeCompletedSet)
            {
                timeCompletedParameter.Value = DBNull.Value;
            }

            RunSql(String.Format("update application set state = {2}, time_created = {0}time_created, time_completed = {0}time_completed, is_primary = {3}, usr_name = '{4}' where application_id = '{1}'",
                DatabaseParameterDecoration(),
                updatedApplication.ApplicationId,
                (int)updatedApplication.State,
                Convert.ToInt16(updatedApplication.Primary),
                Utils.MakeSqlSafe(updatedApplication.Username)
                ),
                timeCreatedParameter,
                timeCompletedParameter);

            UpdateApplicationName(updatedApplication);
        }
        public void UpdateApplicationTestIfApplicationNameIsSaved()
        {
            string applicationName = "another name!";
            string applicationId = AddApplication(ApplicationState.Ready, DateTime.Now, false, "test");

            ApplicationStorageView updatedApplication = new ApplicationStorageView(ApplicationState.Stopped, DateTime.Now, true, "test2");

            updatedApplication.ApplicationId = applicationId;
            updatedApplication.ApplicationName = applicationName;

            ManagerStorage.UpdateApplication(updatedApplication);

            ApplicationStorageView[] applications = ManagerStorage.GetApplications();

            Assert.AreEqual(1, applications.Length);
            Assert.AreEqual(applicationName, applications[0].ApplicationName);
        }
 private void UpdateApplicationName(ApplicationStorageView application)
 {
     RunSql(String.Format("update application set application_name='{2}' where application_id = '{1}'",
         DatabaseParameterDecoration(),
         application.ApplicationId,
         Utils.MakeSqlSafe(application.ApplicationName)
         ));
 }
        public void DeleteApplication(ApplicationStorageView applicationToDelete)
        {
            if (applicationToDelete == null)
            {
                return;
            }

            string sqlQuery;

            sqlQuery = string.Format("DELETE FROM application WHERE application_id='{0}'; DELETE FROM thread WHERE application_id='{0}';",
                applicationToDelete.ApplicationId);

            logger.Debug(String.Format("Deleting application {0} and all threads associated with it.", applicationToDelete.ApplicationId));

            RunSql(sqlQuery);
        }
        public void AddApplicationTestIfApplicationNameIsSaved()
        {
            string applicationName = "some name!";

            ApplicationStorageView application = new ApplicationStorageView("username3");

            application.ApplicationName = applicationName;

            string applicationId = ManagerStorage.AddApplication(application);

            ApplicationStorageView resultApplication = ManagerStorage.GetApplication(applicationId);

            Assert.AreEqual(applicationName, resultApplication.ApplicationName);
        }