Example #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;
 }
Example #2
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;
            }
        }
 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);
     }
 }