/** * Update a node pool and waits until the work request finished * * @param containerEngineClient the service client to use to update the node pool * @param nodePoolId the node pool ID * @param newNodePoolName The new node pool name * */ private static async Task UpdateNodePool(ContainerEngineClient containerEngineClient, string nodePoolId, string newDisplayName) { var updateNodePoolDetails = new UpdateNodePoolDetails { Name = newDisplayName }; var updateNodePoolRequest = new UpdateNodePoolRequest { NodePoolId = nodePoolId, UpdateNodePoolDetails = updateNodePoolDetails }; var updateNodePoolResponse = await containerEngineClient.UpdateNodePool(updateNodePoolRequest); string workRequestId = updateNodePoolResponse.OpcWorkRequestId; var workRequestResponse = WaitForWorkRequestFinished(containerEngineClient, workRequestId); GetNodePoolRequest getNodePoolRequest = new GetNodePoolRequest { NodePoolId = nodePoolId }; GetNodePoolResponse getNodePoolResponse = await containerEngineClient.GetNodePool(getNodePoolRequest); NodePool nodePool = getNodePoolResponse.NodePool; logger.Info($"Node pool name changed to {nodePool.Name}"); }
/// <summary> /// Update the details of a node pool. /// </summary> /// <param name="request">The request object containing the details to send. Required.</param> /// <param name="retryConfiguration">The retry configuration that will be used by to send this request. Optional.</param> /// <param name="cancellationToken">The cancellation token to cancel this operation. Optional.</param> /// <returns>A response object containing details about the completed operation</returns> /// <example>Click <a href="https://docs.cloud.oracle.com/en-us/iaas/tools/dot-net-examples/latest/containerengine/UpdateNodePool.cs.html">here</a> to see an example of how to use UpdateNodePool API.</example> public async Task <UpdateNodePoolResponse> UpdateNodePool(UpdateNodePoolRequest request, RetryConfiguration retryConfiguration = null, CancellationToken cancellationToken = default) { logger.Trace("Called updateNodePool"); Uri uri = new Uri(this.restClient.GetEndpoint(), System.IO.Path.Combine(basePathWithoutHost, "/nodePools/{nodePoolId}".Trim('/'))); HttpMethod method = new HttpMethod("PUT"); HttpRequestMessage requestMessage = Converter.ToHttpRequestMessage(uri, method, request); requestMessage.Headers.Add("Accept", "application/json"); GenericRetrier retryingClient = Retrier.GetPreferredRetrier(retryConfiguration, this.retryConfiguration); HttpResponseMessage responseMessage; try { if (retryingClient != null) { responseMessage = await retryingClient.MakeRetryingCall(this.restClient.HttpSend, requestMessage, cancellationToken).ConfigureAwait(false); } else { responseMessage = await this.restClient.HttpSend(requestMessage).ConfigureAwait(false); } this.restClient.CheckHttpResponseMessage(requestMessage, responseMessage); return(Converter.FromHttpResponseMessage <UpdateNodePoolResponse>(responseMessage)); } catch (Exception e) { logger.Error($"UpdateNodePool failed with error: {e.Message}"); throw; } }
/// <summary> /// 更新指定节点池 /// </summary> public async Task <UpdateNodePoolResponse> UpdateNodePoolAsync(UpdateNodePoolRequest updateNodePoolRequest) { Dictionary <string, string> urlParam = new Dictionary <string, string>(); urlParam.Add("cluster_id", updateNodePoolRequest.ClusterId.ToString()); urlParam.Add("nodepool_id", updateNodePoolRequest.NodepoolId.ToString()); string urlPath = HttpUtils.AddUrlPath("/api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id}", urlParam); SdkRequest request = HttpUtils.InitSdkRequest(urlPath, "application/json", updateNodePoolRequest); HttpResponseMessage response = await DoHttpRequestAsync("PUT", request); return(JsonUtils.DeSerialize <UpdateNodePoolResponse>(response)); }
protected override void ProcessRecord() { base.ProcessRecord(); UpdateNodePoolRequest request; try { request = new UpdateNodePoolRequest { NodePoolId = NodePoolId, UpdateNodePoolDetails = UpdateNodePoolDetails, IfMatch = IfMatch, OpcRequestId = OpcRequestId }; response = client.UpdateNodePool(request).GetAwaiter().GetResult(); WriteOutput(response, CreateWorkRequestObject(response.OpcWorkRequestId)); FinishProcessing(response); } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }