Ejemplo n.º 1
0
        private void StartOrConnectToDeployment(Deployment deployment)
        {
            Log.Print(LogLevel.Info, $"Deployment {deployment.Name}, Status {deployment.Status}.");

            var request = DeploymentModifier.GetGetDeploymentRequest(deployment.Id, workerConfig.ProjectName);

            while (deployment.Status == Deployment.Types.Status.Starting || deployment.Status == Deployment.Types.Status.Stopping)
            {
                // Wait before checking the deployment status again.
                Task.Delay(TaskDelay).Wait();
                deployment = DeploymentModifier.GetDeployment(request);
            }

            switch (deployment.Status)
            {
            case Deployment.Types.Status.Running:
                ConnectToDeployment(deployment);
                break;

            case Deployment.Types.Status.Stopped:
                StartDeployment(deployment.Name);
                break;

            case Deployment.Types.Status.Unknown:
            case Deployment.Types.Status.Error:
                Log.Print(LogLevel.Warn, $"The deployment {deployment.Name} is in an unrecoverable state ({deployment.Status}). Trying to restart it.", serviceConnection);
                DeploymentModifier.StopDeployment(deployment);
                Task.Delay(TaskDelay).Wait();
                StartOrConnectToDeployment(deployment);
                break;
            }
        }
Ejemplo n.º 2
0
        private void UpdateDeploymentStatus(Improbable.Session.Status status)
        {
            DeploymentModifier.UpdateDeploymentTag(request, Tags.Status, status.ToString().ToLower());

            if (status == Improbable.Session.Status.STOPPED)
            {
                var deployment = DeploymentModifier.GetDeployment(request);
                DeploymentModifier.StopDeployment(deployment);
            }
        }