Beispiel #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;
            }
        }
Beispiel #2
0
        public NcStopApplicationResponse StopApplicationInstance(NcStopApplicationRequest request)
        {
            Log.Info(this, "StopApplicationInstance()");

            try
            {
                Authenticate(request);
                var handler = NodeCartridgeFactory.GetHandler(request.ApplicationType);
                return(handler.StopApplicationInstance(request));
            }
            catch (Exception e)
            {
                Log.Error(this, e);
                throw e;
            }
        }
Beispiel #3
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;
            }
        }
Beispiel #4
0
 public NcStopApplicationResponse StopApplicationInstance(NcStopApplicationRequest request)
 {
     throw new NotImplementedException();
 }