Пример #1
0
        private bool ScaleUp(int applicationId, string tenantName, int scale)
        {
            Log.Info(this, "Scaling up application: " + applicationId);
            ApStartApplicationRequest request = new ApStartApplicationRequest(Settings.Credentials);

            request.ApplicationId     = applicationId;
            request.TenantName        = tenantName;
            request.NumberOfInstances = scale;
            GetApDashboardService().StartApplication(request);
            return(true);
        }
Пример #2
0
 public ActionResult StartApplication(StartApplicationModel model)
 {
     try
     {
         ApStartApplicationRequest request = new ApStartApplicationRequest(Credentials);
         request.ApplicationId     = model.ApplicationId;
         request.TenantName        = model.TenantName;
         request.NumberOfInstances = model.NumberOfInstances;
         EndPoints.ApDashboardService.StartApplication(request);
         return(RedirectToAction("ApplicationInstances"));
     }
     catch (Exception e)
     {
         return(ShowError(e));
     }
 }
Пример #3
0
        public ApStartApplicationResponse StartApplication(ApStartApplicationRequest request)
        {
            Log.Info(this, "StartApplication()");

            try
            {
                Authenticate(request);
                ApStartApplicationResponse response = new ApStartApplicationResponse();
                List <Node> nodes = FindAvailableNodes();
                foreach (Node node in nodes)
                {
                    if (!ApplicationExistsInNode(request.ApplicationId, node))
                    {
                        // Upload application to node
                        UploadApplicationToNode(request.ApplicationId, node);
                    }

                    NcStartApplicationInstancesRequest ncRequest = new NcStartApplicationInstancesRequest(Credentials);
                    ncRequest.ApplicationId     = request.ApplicationId;
                    ncRequest.TenantName        = request.TenantName;
                    ncRequest.NumberOfInstances = request.NumberOfInstances;
                    NcStartApplicationInstancesResponse ncResponse = EndPoints.GetNcApplicationGridService(node).StartApplicationInstances(ncRequest);
                    response.Urls = ncResponse.Urls;

                    // Update Routing Mesh in Load Balancer
                    LbAddApplicationInstancesRequest request2 = new LbAddApplicationInstancesRequest(Credentials);
                    request2.AppInstances = ncResponse.ApplicationInstances;
                    EndPoints.GetLbApplicationGridService().AddApplicationInstances(request2);
                }
                return(response);
            }
            catch (Exception e)
            {
                Log.Error(this, e);
                throw e;
            }
        }