Exemplo n.º 1
0
        public NcStopApplicationResponse StopApplicationInstance(NcStopApplicationRequest request)
        {
            Log.Info (this, "StopApplicationInstance()");

            try {
                Application application = Database.Applications.Where (x => x.Id == request.ApplicationId).FirstOrDefault ();
                if (application != null) {
                    ApplicationInstance instance = application.ApplicationInstances.Where (y => y.Id == request.InstanceId).FirstOrDefault ();
                    if (instance != null) {
                        ProcessManager.KillProcessAndChildren (instance.ProcessId);
                        application.ApplicationInstances.Remove (instance);
                        NcStopApplicationResponse response = new NcStopApplicationResponse ();
                        return response;
                    }
                    else {
                        throw new MonoscapeException ("Application instance not found");
                    }
                }
                else {
                    throw new MonoscapeException ("Application not found");
                }
            }
            catch (Exception e) {
                Log.Error (this, e);
                throw e;
            }
        }
Exemplo n.º 2
0
        public ApStopApplicationInstanceResponse StopApplicationInstance(ApStopApplicationInstanceRequest request)
        {
            Log.Info(this, "StopApplicationInstance()");

            try
            {
                Authenticate(request);
                ApStopApplicationInstanceResponse response = new ApStopApplicationInstanceResponse();
                Node node = Database.GetInstance().Nodes.Where(x => x.Id == request.NodeId).FirstOrDefault();
                if (node != null)
                {
                    // Stop application instance in the node
                    NcStopApplicationRequest ncRequest = new NcStopApplicationRequest(Credentials);
                    ncRequest.ApplicationId = request.ApplicationId;
                    ncRequest.InstanceId = request.InstanceId;
                    EndPoints.GetNcApplicationGridService(node).StopApplicationInstance(ncRequest);

                    // Update routing mesh in the load balancer
                    LbRemoveApplicationInstanceRequest request_ = new LbRemoveApplicationInstanceRequest(Credentials);
                    request_.NodeId = request.NodeId;
                    request_.ApplicationId = request.ApplicationId;
                    request_.InstanceId = request.InstanceId;
                    EndPoints.GetLbApplicationGridService().RemoveApplicationInstances(request_);
                }
                else
                {
                    throw new MonoscapeException("Node not found");
                }
                return response;
            }
            catch (Exception e)
            {
                Log.Error(this, e);
                throw e;
            }
        }
Exemplo n.º 3
0
 public NcStopApplicationResponse StopApplicationInstance(NcStopApplicationRequest request)
 {
     throw new NotImplementedException();
 }