public async Task TerminateOrchestration_ShouldReturnSuccess()
        {
            var taskHubClient = _host.Services.GetRequiredService <TaskHubClient>();

            var orchestrationInstance = await taskHubClient.CreateOrchestrationInstanceAsync("Test", "v1", null);

            using var httpClient = _host.GetTestClient();

            var request = new TerminateRequest
            {
                Reason = "Some reason"
            };
            var requestJson    = JsonConvert.SerializeObject(request);
            var requestContent = new StringContent(requestJson, Encoding.UTF8, "application/json");

            var httpResponse = await httpClient.PostAsync($"/api/v1/orchestrations/{orchestrationInstance.InstanceId}/terminate", requestContent);

            httpResponse.StatusCode.Should().Be(200);
            httpResponse.Content.Headers.ContentType.MediaType.Should().Be("application/json");

            var content = await httpResponse.Content.ReadAsStringAsync();

            content.Should().Be("{}");

            var messages = GetOrchestrationMessages(orchestrationInstance.InstanceId);

            messages.Should().HaveCount(2);

            var terminatedEvent = messages.Last().Event.Should().BeOfType <ExecutionTerminatedEvent>().Subject;

            terminatedEvent.Input.Should().Be("Some reason");
        }
Exemple #2
0
 private void ProcessTerminate(TerminateRequest request)
 {
     if (this.TerminateRequested != null)
     {
         this.TerminateRequested(request);
     }
 }
Exemple #3
0
        public void AbortExecution(string caller_trace)
        {
            TerminateRequest terminateRequest = new TerminateRequest();

            terminateRequest.arguments         = new TerminateArguments();
            terminateRequest.arguments.restart = false;
            Assert.True(VSCodeDebugger.Request(terminateRequest).Success, @"__FILE__:__LINE__" + "\n" + caller_trace);
        }
Exemple #4
0
        private void connection_TerminateRequested(TerminateRequest request)
        {
            Log <CafeAuthService> .Logger.WarnFormat("Response stop request from Session server: [{0}]", request);

            Option option = request.Option;

            this.processMessage(option, request.ExtendInfos, 0, request.NexonID, true);
        }
Exemple #5
0
        public override async Task <TerminateReply> Terminate(TerminateRequest request, ServerCallContext context)
        {
            // TODO: state 세분화
            ServerApplication.TerminateToken.Cancel();
            while (ServerApplication.IsServerTerminated == false)
            {
                Thread.Sleep(10);
            }

            return(new TerminateReply());
        }
Exemple #6
0
        private void connection_PacketReceive(object sender, EventArgs <ArraySegment <byte> > e)
        {
            Packet packet = new Packet(e.Value);

            switch (packet.PacketType)
            {
            case PacketType.Initialize:
            {
                InitializeResponse arg = new InitializeResponse(ref packet);
                this.thread.Enqueue(Job.Create <InitializeResponse>(new Action <InitializeResponse>(this.ProcessInitialize), arg));
                return;
            }

            case PacketType.Login:
            {
                LoginResponse arg2 = new LoginResponse(ref packet);
                this.thread.Enqueue(Job.Create <LoginResponse>(new Action <LoginResponse>(this.ProcessLogin), arg2));
                return;
            }

            case PacketType.Logout:
                break;

            case PacketType.Terminate:
            {
                TerminateRequest arg3 = new TerminateRequest(ref packet);
                this.thread.Enqueue(Job.Create <TerminateRequest>(new Action <TerminateRequest>(this.ProcessTerminate), arg3));
                break;
            }

            case PacketType.Message:
            {
                MessageRequest arg4 = new MessageRequest(ref packet);
                this.thread.Enqueue(Job.Create <MessageRequest>(new Action <MessageRequest>(this.ProcessMessage), arg4));
                return;
            }

            case PacketType.Synchronize:
            {
                SynchronizeRequest arg5 = new SynchronizeRequest(ref packet);
                this.thread.Enqueue(Job.Create <SynchronizeRequest>(new Action <SynchronizeRequest>(this.ProcessSync), arg5));
                return;
            }

            default:
                return;
            }
        }
Exemple #7
0
 /// <summary>
 /// Handles emulated <see cref="TerminateRequest"/> messages.
 /// </summary>
 /// <param name="request">The received message.</param>
 /// <returns>The tracking <see cref="Task"/>.</returns>
 private async Task OnEmulatedTerminateRequestAsync(TerminateRequest request)
 {
     await EmulatedLibraryClient.SendReplyAsync(request, new TerminateReply());
 }