private void TryCleanupContainerFolderScheduledForRemoval(ContainerFolderScheduledForRemoval containerScheduledForRemoval) { if (containerScheduledForRemoval.IsProcessingWaitTimeExpired(this.containerEnvironment.MaxContainerLogsProcessingWaitTime) && this.TryRemovingContainerAppInstanceAndLogFolder(containerScheduledForRemoval)) { ContainerFolderScheduledForRemoval unusedOutParameter; if (this.containersFoldersScheduledForRemoval.TryRemove( containerScheduledForRemoval.ContainerLogFullPath, out unusedOutParameter)) { Utility.TraceSource.WriteInfo( TraceType, "Successfully removed container traces folder: {0}, and AppInstance : {1}", containerScheduledForRemoval.ContainerLogFullPath, ContainerEnvironment.GetAppInstanceIdFromContainerFolderFullPath(containerScheduledForRemoval.ContainerLogFullPath)); } else { Utility.TraceSource.WriteInfo( TraceType, "Failed to removed container traces folder from ContainerFolderScheduledForRemoval list. Container folder path : {0}", containerScheduledForRemoval.ContainerLogFullPath); } } }
private bool TryRemovingContainerAppInstanceAndLogFolder(ContainerFolderScheduledForRemoval deletedContainer) { try { lock (this.appInstanceManagerLock) { this.appInstanceManager.DeleteApplicationInstance(ContainerEnvironment.GetAppInstanceIdFromContainerFolderFullPath(deletedContainer.ContainerLogFullPath)); } } catch (Exception e) { Utility.TraceSource.WriteInfo(TraceType, "Failed to remove appInstance with exception: {0}", e); } return(this.TryRemoveContainerFolder(deletedContainer.ContainerLogFullPath)); }