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; }
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); } }