/// <summary> /// Update specified launch. /// </summary> /// <param name="id">ID of launch to update.</param> /// <param name="request">Information about launch.</param> /// <returns>A message from service.</returns> public virtual async Task <MessageResponse> UpdateAsync(long id, UpdateLaunchRequest request) { var uri = BaseUri.Append($"{ProjectName}/launch/{id}/update"); var body = ModelSerializer.Serialize <UpdateLaunchRequest>(request); var response = await HttpClient.PutAsync(uri, new StringContent(body, Encoding.UTF8, "application/json")).ConfigureAwait(false); response.VerifySuccessStatusCode(); return(ModelSerializer.Deserialize <MessageResponse>(await response.Content.ReadAsStringAsync().ConfigureAwait(false))); }
public void Update(UpdateLaunchRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } TraceLogger.Verbose($"Scheduling request to update launch in {GetHashCode()} proxy instance"); if (StartTask == null) { var exp = new InsufficientExecutionStackException("The launch wasn't scheduled for starting to finish it properly."); TraceLogger.Error(exp.ToString()); throw exp; } if (FinishTask != null) { var exp = new InsufficientExecutionStackException("The launch is already scheduled for finishing."); TraceLogger.Error(exp.ToString()); throw exp; } var dependentTasks = new List <Task>(); dependentTasks.Add(StartTask); if (_logsReporter != null) { dependentTasks.Add(_logsReporter.ProcessingTask); } if (_additionalTasks != null) { dependentTasks.AddRange(_additionalTasks); } UpdateTask = Task.Factory.ContinueWhenAll(dependentTasks.ToArray(), async(dts) => await _requestExecuter.ExecuteAsync(() => _service.Launch.UpdateAsync(Info.Uuid, request), null).ConfigureAwait(false)); }
public async Task UpdateLaunchAttributes() { var originalLaunchRequest = new StartLaunchRequest { Name = "UpdateLaunchAttributes", StartTime = DateTime.UtcNow, Mode = LaunchMode.Default }; var launch = await Service.Launch.StartAsync(originalLaunchRequest); var tempLaunch = await Service.Launch.GetAsync(launch.Uuid); var updateRequest = new UpdateLaunchRequest() { Attributes = new List <ItemAttribute> { new ItemAttribute { Key = "k1", Value = "v1" } } }; var updateMessage = await Service.Launch.UpdateAsync(tempLaunch.Id, updateRequest); updateMessage.Info.Should().Contain("successfully updated"); await Service.Launch.FinishAsync(launch.Uuid, new FinishLaunchRequest { EndTime = DateTime.UtcNow }); var gotLaunch = await Service.Launch.GetAsync(launch.Uuid); gotLaunch.Name.Should().Be(originalLaunchRequest.Name); gotLaunch.Mode.Should().Be(originalLaunchRequest.Mode); gotLaunch.Description.Should().BeNull(); gotLaunch.Attributes.Should().BeEquivalentTo(updateRequest.Attributes); await Service.Launch.DeleteAsync(gotLaunch.Id); }
public Task <MessageResponse> UpdateAsync(long id, UpdateLaunchRequest model) { throw new NotImplementedException(); }
public Task <MessageResponse> UpdateAsync(string uuid, UpdateLaunchRequest request) { return(PutAsJsonAsync <MessageResponse, UpdateLaunchRequest>($"{ProjectName}/launch/{uuid}/update", request)); }
public async Task <MessageResponse> UpdateAsync(long id, UpdateLaunchRequest request) { return(await PutAsJsonAsync <MessageResponse, UpdateLaunchRequest>($"{ProjectName}/launch/{id}/update", request)); }