internal static async Task CleanupOnErrorAsync( string traceType, bool autoRemove, bool isContainerRoot, string cgroupName, string containerName, string applicationId, IContainerActivatorService activatorService, TimeoutHelper timeoutHelper, FabricException originalEx) { HostingTrace.Source.WriteWarning( traceType, "CleanupOnErrorAsync(): Deactivating Container='{0}', AppId={1}.", containerName, applicationId); try { var deactivationArg = new ContainerDeactivationArgs() { ContainerName = containerName, ConfiguredForAutoRemove = autoRemove, IsContainerRoot = isContainerRoot, CgroupName = cgroupName, IsGracefulDeactivation = false }; await Utility.ExecuteWithRetryOnTimeoutAsync( (operationTimeout) => { return(activatorService.DeactivateContainerAsync( deactivationArg, operationTimeout)); }, $"CleanupOnErrorAsync_DeactivateContainerAsync_{containerName}", traceType, HostingConfig.Config.DockerRequestTimeout, timeoutHelper.RemainingTime); } catch (FabricException) { // Ignore. } throw originalEx; }
private void RegisterContainerActivatorServiceHelper(IContainerActivatorService service) { var broker = new ContainerActivatorServiceBroker(service); this.nativeManager.RegisterContainerActivatorService(broker); }
public void RegisterContainerActivatorService(IContainerActivatorService service) { Utility.WrapNativeSyncInvokeInMTA( () => this.RegisterContainerActivatorServiceHelper(service), "FabricContainerActivatorServiceAgent.RegisterContainerActivatorService"); }
internal ContainerActivatorServiceBroker(IContainerActivatorService activator) { this.activatorService = activator; }