internal ContainerEventManager(ContainerActivatorService activator)
        {
            this.activatorService = activator;

            var eventTypeList = new List <string>()
            {
                "stop", "die"
            };

            if (HostingConfig.Config.EnableDockerHealthCheckIntegration)
            {
                eventTypeList.Add("health_status");
            }

            this.eventsConfig = new ContainerEventsConfig
            {
                Filters = new Dictionary <string, IList <string> >()
                {
                    { "type", new List <string> ()
                      {
                          "container"
                      } },
                    { "event", eventTypeList }
                }
            };

            this.maxContinuousFailureCount = HostingConfig.Config.ContainerEventManagerMaxContinuousFailure;
            this.retryDelay = TimeSpan.FromSeconds(HostingConfig.Config.ContainerEventManagerFailureBackoffInSec);

            this.continuousFailureCount = 0;
        }
Esempio n. 2
0
 public UpdateRoutesContainerOperation(
     string traceType,
     string containerId,
     string containerName,
     string applicationId,
     string applicationName,
     string cgroupName,
     List <string> gatewayIpAddresses,
     bool autoRemove,
     bool isContainerRoot,
     ContainerNetworkType networkType,
     ContainerActivatorService activator,
     TimeoutHelper timeoutHelper)
 {
     this.traceType          = traceType;
     this.containerId        = containerId;
     this.containerName      = containerName;
     this.applicationId      = applicationId;
     this.applicationName    = applicationName;
     this.cgroupName         = cgroupName;
     this.gatewayIpAddresses = gatewayIpAddresses;
     this.autoRemove         = autoRemove;
     this.isContainerRoot    = isContainerRoot;
     this.networkType        = networkType;
     this.activator          = activator;
     this.timeoutHelper      = timeoutHelper;
 }
 public ContainerImageDownloader(ContainerActivatorService activator)
 {
     this.activator  = activator;
     this.imageCache = new ConcurrentDictionary <string, object>();
     this.downloadProgressStatusInterval = TimeSpan.FromSeconds(15);
     webClient = new WebClient();
 }
Esempio n. 4
0
        public static int Main(string[] args)
        {
            Utility.InitializeTracing();
            HostingTrace.Initialize();

            try
            {
                HostingConfig.Initialize();

                var containerActivatorService = new ContainerActivatorService();
                containerActivatorService.Start();

                Thread.Sleep(Timeout.Infinite);

                GC.KeepAlive(containerActivatorService);
            }
            catch (Exception ex)
            {
                HostingTrace.Source.WriteError("FabricCAS", "Failed with Exception={0}", ex.ToString());

                throw ex;
            }

            return(0);
        }
        public ContainerImageDownloader(ContainerActivatorService activator)
        {
            this.activator  = activator;
            this.imageCache = new ConcurrentDictionary <string, object>();
            this.downloadProgressStatusInterval = TimeSpan.FromSeconds(15);
            webClient = new WebClient();

            #if !DotNetCoreClr
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
            #endif
        }
Esempio n. 6
0
        public ActivateContainerOperation(
            ContainerActivatorService activator,
            ContainerActivationArgs activationArgs,
            TimeSpan timeout)
        {
            this.activator      = activator;
            this.activationArgs = activationArgs;

            this.timeoutHelper = new TimeoutHelper(timeout);
            this.dockerVersion = string.Empty;
            this.containerId   = string.Empty;
        }
Esempio n. 7
0
        internal DeactivateContainerOperation(
            ContainerActivatorService activator,
            ContainerDeactivationArgs deactivationArgs,
            TimeSpan timeout)
        {
            this.activator        = activator;
            this.deactivationArgs = deactivationArgs;
            this.timeout          = timeout;

            this.timeoutHelper       = new TimeoutHelper(timeout);
            this.maxRetryCount       = HostingConfig.Config.ContainerTerminationMaxRetryCount;
            this.retryDelay          = TimeSpan.FromSeconds(HostingConfig.Config.ContainerDeactivationRetryDelayInSec);
            this.deactivationTimeout = HostingConfig.Config.ContainerDeactivationTimeout;

            this.retryCount = 0;
        }
        internal DeactivateContainerOperation(
            ContainerActivatorService activator,
            ContainerDeactivationArgs deactivationArgs,
            TimeSpan timeout)
        {
            this.activator        = activator;
            this.deactivationArgs = deactivationArgs;

            //
            // NonGracefulDeactivation (i.e. abort request) should never timeout.
            //
            this.timeout = deactivationArgs.IsGracefulDeactivation ? timeout : TimeSpan.MaxValue;

            this.timeoutHelper       = new TimeoutHelper(timeout);
            this.retryDelay          = TimeSpan.FromSeconds(HostingConfig.Config.ContainerDeactivationRetryDelayInSec);
            this.deactivationTimeout = HostingConfig.Config.ContainerDeactivationTimeout;

            this.retryCount = 0;
        }
        public ExecuteContainerUpdateRoutesOperation(
            ContainerActivatorService activator,
            ContainerUpdateRouteArgs updateRouteArgs,
            TimeSpan timeout)
        {
            this.updateRouteArgs = updateRouteArgs;
            this.timeoutHelper   = new TimeoutHelper(timeout);

            updateRoutesOperation = new UpdateRoutesContainerOperation(
                TraceType,
                updateRouteArgs.ContainerId,
                updateRouteArgs.ContainerName,
                updateRouteArgs.ApplicationId,
                updateRouteArgs.ApplicationName,
                updateRouteArgs.CgroupName,
                updateRouteArgs.GatewayIpAddresses,
                updateRouteArgs.AutoRemove,
                updateRouteArgs.IsContainerRoot,
                updateRouteArgs.NetworkType,
                activator,
                timeoutHelper);
        }