Ejemplo n.º 1
0
        /// <summary>
        /// Remove all applications from storage.
        /// </summary>
        /// <param name="storage">Target storage where this maintanance will be performed.</param>
        public void RemoveAllApplications(IManagerStorage storage)
        {
            ApplicationStorageView[] applications = storage.GetApplications();

            foreach (ApplicationStorageView application in applications)
            {
                storage.DeleteApplication(application);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Remove all applications that were submitted before the given cut-off date.
 /// </summary>
 /// <param name="storage">Target storage where this maintanance will be performed.</param>
 /// <param name="timeCreatedCutOff"></param>
 public void RemoveApplications(IManagerStorage storage, DateTime timeCreatedCutOff)
 {
     ApplicationStorageView[] applications = storage.GetApplications();
     foreach (ApplicationStorageView application in applications)
     {
         if (application.TimeCreated < timeCreatedCutOff)
         {
             storage.DeleteApplication(application);
         }
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Remove applications that have the given application state
        /// This will also remove the threads associated with these applications
        /// </summary>
        /// <param name="storage">Target storage where this maintanance will be performed.</param>
        /// <param name="applicationStates"></param>
        public void RemoveApplications(IManagerStorage storage, params ApplicationState[] applicationStates)
        {
            if (applicationStates == null || applicationStates.Length == 0)
            {
                return;
            }

            ApplicationStorageView[] applications = storage.GetApplications();
            foreach (ApplicationStorageView application in applications)
            {
                int stateIndex;

                stateIndex = Array.IndexOf <ApplicationState>(applicationStates, application.State);

                if (stateIndex >= 0)
                {
                    storage.DeleteApplication(application);
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Perform various maintenance actions as defined in the maintenance parameters.
        /// </summary>
        /// <param name="storage"></param>
        /// <param name="maintenanceParameters"></param>
        public void PerformMaintenance(IManagerStorage storage, StorageMaintenanceParameters maintenanceParameters)
        {
            RemoveApplications(storage, maintenanceParameters.ApplicationStatesToRemove);

            if (maintenanceParameters.RemoveAllApplications)
            {
                RemoveAllApplications(storage);
            }

            if (maintenanceParameters.RemoveAllExecutors)
            {
                RemoveAllExecutors(storage);
            }

            if (maintenanceParameters.ApplicationTimeCreatedCutOffSet)
            {
                RemoveApplications(storage, maintenanceParameters.ApplicationTimeCreatedCutOff);
            }

            if (maintenanceParameters.ExecutorPingTimeCutOffSet)
            {
                RemoveExecutors(storage, maintenanceParameters.ExecutorPingTimeCutOff);
            }

            if (maintenanceParameters.ApplicationTimeCompletedCutOffSet)
            {
                DateTime timeCompletedCutOff = DateTime.Now.Subtract(maintenanceParameters.ApplicationTimeCompletedCutOff);

                ApplicationStorageView[] applications = storage.GetApplications();
                foreach (ApplicationStorageView application in applications)
                {
                    if (application.TimeCompletedSet && application.TimeCompleted < timeCompletedCutOff)
                    {
                        storage.DeleteApplication(application);
                    }
                }
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Perform various maintenance actions as defined in the maintenance parameters.
        /// </summary>
        /// <param name="storage"></param>
        /// <param name="maintenanceParameters"></param>
        public void PerformMaintenance(IManagerStorage storage, StorageMaintenanceParameters maintenanceParameters)
        {
            RemoveApplications(storage, maintenanceParameters.ApplicationStatesToRemove);

            if (maintenanceParameters.RemoveAllApplications)
            {
                RemoveAllApplications(storage);
            }

            if (maintenanceParameters.RemoveAllExecutors)
            {
                RemoveAllExecutors(storage);
            }

            if (maintenanceParameters.ApplicationTimeCreatedCutOffSet)
            {
                RemoveApplications(storage, maintenanceParameters.ApplicationTimeCreatedCutOff);
            }

            if (maintenanceParameters.ExecutorPingTimeCutOffSet)
            {
                RemoveExecutors(storage, maintenanceParameters.ExecutorPingTimeCutOff);
            }

            if (maintenanceParameters.ApplicationTimeCompletedCutOffSet)
            {
                DateTime timeCompletedCutOff = DateTime.Now.Subtract(maintenanceParameters.ApplicationTimeCompletedCutOff);

                ApplicationStorageView[] applications = storage.GetApplications();
                foreach (ApplicationStorageView application in applications)
                {
                    if (application.TimeCompletedSet && application.TimeCompleted < timeCompletedCutOff)
                    {
                        storage.DeleteApplication(application);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Remove all applications from storage.
        /// </summary>
        /// <param name="storage">Target storage where this maintanance will be performed.</param>
        public void RemoveAllApplications(IManagerStorage storage)
        {
            ApplicationStorageView[] applications = storage.GetApplications();

            foreach (ApplicationStorageView application in applications)
            {
                storage.DeleteApplication(application);
            }
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Remove all applications that were submitted before the given cut-off date.
 /// </summary>
 /// <param name="storage">Target storage where this maintanance will be performed.</param>
 /// <param name="timeCreatedCutOff"></param>
 public void RemoveApplications(IManagerStorage storage, DateTime timeCreatedCutOff)
 {
     ApplicationStorageView[] applications = storage.GetApplications();
     foreach (ApplicationStorageView application in applications)
     {
         if (application.TimeCreated < timeCreatedCutOff)
         {
             storage.DeleteApplication(application);
         }
     }
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Remove applications that have the given application state
        /// This will also remove the threads associated with these applications
        /// </summary>
        /// <param name="storage">Target storage where this maintanance will be performed.</param>
        /// <param name="applicationStates"></param>
        public void RemoveApplications(IManagerStorage storage, params ApplicationState[] applicationStates)
        {
            if (applicationStates == null || applicationStates.Length == 0)
            {
                return;
            }

            ApplicationStorageView[] applications = storage.GetApplications();
            foreach (ApplicationStorageView application in applications)
            {
                int stateIndex;

                stateIndex = Array.IndexOf<ApplicationState>(applicationStates, application.State);

                if (stateIndex >= 0)
                {
                    storage.DeleteApplication(application);
                }
            }
        }