Beispiel #1
0
        /// <summary>Snippet for UpdateInstance</summary>
        public void UpdateInstance_RequestObject()
        {
            // Snippet: UpdateInstance(UpdateInstanceRequest,CallSettings)
            // Create client
            InstanceAdminClient instanceAdminClient = InstanceAdminClient.Create();
            // Initialize request argument(s)
            UpdateInstanceRequest request = new UpdateInstanceRequest
            {
                Instance  = new Instance(),
                FieldMask = new FieldMask(),
            };
            // Make the request
            Operation <Instance, UpdateInstanceMetadata> response =
                instanceAdminClient.UpdateInstance(request);

            // Poll until the returned long-running operation is complete
            Operation <Instance, UpdateInstanceMetadata> completedResponse =
                response.PollUntilCompleted();
            // Retrieve the operation result
            Instance result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <Instance, UpdateInstanceMetadata> retrievedResponse =
                instanceAdminClient.PollOnceUpdateInstance(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                Instance retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
        /// <summary>Snippet for UpdateInstanceAsync</summary>
        public async Task UpdateInstanceRequestObjectAsync()
        {
            // Snippet: UpdateInstanceAsync(UpdateInstanceRequest, CallSettings)
            // Additional: UpdateInstanceAsync(UpdateInstanceRequest, CancellationToken)
            // Create client
            DataFusionClient dataFusionClient = await DataFusionClient.CreateAsync();

            // Initialize request argument(s)
            UpdateInstanceRequest request = new UpdateInstanceRequest
            {
                Instance   = new Instance(),
                UpdateMask = new FieldMask(),
            };
            // Make the request
            Operation <Instance, OperationMetadata> response = await dataFusionClient.UpdateInstanceAsync(request);

            // Poll until the returned long-running operation is complete
            Operation <Instance, OperationMetadata> completedResponse = await response.PollUntilCompletedAsync();

            // Retrieve the operation result
            Instance result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <Instance, OperationMetadata> retrievedResponse = await dataFusionClient.PollOnceUpdateInstanceAsync(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                Instance retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
Beispiel #3
0
        /// <summary>
        /// Updates certain fields on the specified instance.
        /// Fields that are not provided in the request will not be updated.
        /// Avoid entering confidential information.
        /// </summary>
        /// <param name="updateRequest"></param>
        /// <returns></returns>
        public UpdateInstanceResponse UpdateInstance(UpdateInstanceRequest updateRequest)
        {
            var uri = new Uri($"{GetEndPoint(CoreServices.Instance, this.Region)}/{updateRequest.InstanceId}");

            var httpRequestHeaderParam = new HttpRequestHeaderParam()
            {
                IfMatch       = updateRequest.IfMatch,
                OpcRetryToken = updateRequest.OpcRetryToken
            };

            using (var webResponse = this.RestClient.Put(uri, updateRequest.UpdateInstanceDetails, httpRequestHeaderParam))
                using (var stream = webResponse.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        var response = reader.ReadToEnd();

                        return(new UpdateInstanceResponse()
                        {
                            Instance = this.JsonSerializer.Deserialize <Instance>(response),
                            ETag = webResponse.Headers.Get("etag"),
                            OpcRequestId = webResponse.Headers.Get("opc-request-id"),
                            OpcWorkRequestId = webResponse.Headers.Get("opc-work-request-id")
                        });
                    }
        }
Beispiel #4
0
        /// <summary>
        /// 修改实例信息
        /// </summary>
        public async Task <UpdateInstanceResponse> UpdateInstanceAsync(UpdateInstanceRequest updateInstanceRequest)
        {
            Dictionary <string, string> urlParam = new Dictionary <string, string>();

            urlParam.Add("instance_id", updateInstanceRequest.InstanceId.ToString());
            string              urlPath  = HttpUtils.AddUrlPath("/v2/{project_id}/instances/{instance_id}", urlParam);
            SdkRequest          request  = HttpUtils.InitSdkRequest(urlPath, "application/json", updateInstanceRequest);
            HttpResponseMessage response = await DoHttpRequestAsync("PUT", request);

            return(JsonUtils.DeSerializeNull <UpdateInstanceResponse>(response));
        }
Beispiel #5
0
        /// <summary>
        /// 对集群进行节点规格变更,修改实例名称,修改配置,重置密码, 添加Kibana黑白名单等操作。参数中InstanceId为必传参数,ForceRestart为选填参数,剩余参数传递组合及含义如下:
        /// - InstanceName:修改实例名称(仅用于标识实例)
        /// - NodeInfoList: 修改节点配置(节点横向扩缩容,纵向扩缩容,增加主节点,增加冷节点等)
        /// - EsConfig:修改集群配置
        /// - Password:修改默认用户elastic的密码
        /// - EsAcl:修改访问控制列表
        /// - CosBackUp: 设置集群COS自动备份信息
        /// 以上参数组合只能传递一种,多传或少传均会导致请求失败
        /// </summary>
        /// <param name="req"><see cref="UpdateInstanceRequest"/></param>
        /// <returns><see cref="UpdateInstanceResponse"/></returns>
        public UpdateInstanceResponse UpdateInstanceSync(UpdateInstanceRequest req)
        {
            JsonResponseModel <UpdateInstanceResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "UpdateInstance");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <UpdateInstanceResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
        /// <summary>Snippet for UpdateInstanceAsync</summary>
        public async Task UpdateInstanceAsync_RequestObject()
        {
            // Snippet: UpdateInstanceAsync(UpdateInstanceRequest,CallSettings)
            // Create client
            CloudRedisClient cloudRedisClient = await CloudRedisClient.CreateAsync();

            // Initialize request argument(s)
            UpdateInstanceRequest request = new UpdateInstanceRequest
            {
                UpdateMask = new FieldMask
                {
                    Paths =
                    {
                        "display_name",
                        "memory_size_gb",
                    },
                },
                Instance = new Instance
                {
                    DisplayName  = "UpdatedDisplayName",
                    MemorySizeGb = 4,
                },
            };
            // Make the request
            Operation <Instance, OperationMetadata> response =
                await cloudRedisClient.UpdateInstanceAsync(request);

            // Poll until the returned long-running operation is complete
            Operation <Instance, OperationMetadata> completedResponse =
                await response.PollUntilCompletedAsync();

            // Retrieve the operation result
            Instance result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <Instance, OperationMetadata> retrievedResponse =
                await cloudRedisClient.PollOnceUpdateInstanceAsync(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                Instance retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
Beispiel #7
0
        private void HandleOutput(UpdateInstanceRequest request)
        {
            var waiterConfig = new WaiterConfiguration
            {
                MaxAttempts           = MaxWaitAttempts,
                GetNextDelayInSeconds = (_) => WaitIntervalSeconds
            };

            switch (ParameterSetName)
            {
            case StatusParamSet:
                response = client.Waiters.ForUpdateInstance(request, waiterConfig, WaitForStatus).Execute();
                break;

            case Default:
                response = client.UpdateInstance(request).GetAwaiter().GetResult();
                break;
            }
            WriteOutput(response, response.Instance);
        }
Beispiel #8
0
        public IHttpActionResult UpdateServiceInstance(UpdateInstanceRequest request)
        {
            var config   = Owin.ApiGateway.Configuration.Configuration.Current;
            var endpoint = config.Endpoints.FirstOrDefault(e => e.Id.Equals(request.EndpointId));

            if (endpoint != null)
            {
                var instance = endpoint.Instances.Instance.FirstOrDefault(i => i.Url.Equals(request.InstanceUrl));

                if (instance != null)
                {
                    instance.Status = request.NewStatus;

                    this.SaveAndNotify(config);
                    return(this.Ok());
                }
            }

            return(this.NotFound());
        }
Beispiel #9
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            UpdateInstanceRequest request;

            try
            {
                request = new UpdateInstanceRequest
                {
                    InstanceId            = InstanceId,
                    UpdateInstanceDetails = UpdateInstanceDetails,
                    OpcRetryToken         = OpcRetryToken,
                    IfMatch = IfMatch
                };

                HandleOutput(request);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
 partial void Modify_UpdateInstanceRequest(ref UpdateInstanceRequest request, ref CallSettings settings) =>
 ApplyResourcePrefixHeaderFromInstance(ref settings, request.Instance.Name);
 /// <summary>
 /// Creates a waiter using the provided configuration.
 /// </summary>
 /// <param name="request">Request to send.</param>
 /// <param name="config">Wait Configuration</param>
 /// <param name="targetStates">Desired resource states. If multiple states are provided then the waiter will return once the resource reaches any of the provided states</param>
 /// <returns>a new Oci.common.Waiter instance</returns>
 public Waiter <UpdateInstanceRequest, UpdateInstanceResponse> ForUpdateInstance(UpdateInstanceRequest request, WaiterConfiguration config, params WorkrequestsService.Models.WorkRequest.StatusEnum[] targetStates)
 {
     return(new Waiter <UpdateInstanceRequest, UpdateInstanceResponse>(() =>
     {
         var response = client.UpdateInstance(request).Result;
         var getWorkRequestRequest = new Oci.WorkrequestsService.Requests.GetWorkRequestRequest
         {
             WorkRequestId = response.OpcWorkRequestId
         };
         workRequestClient.Waiters.ForWorkRequest(getWorkRequestRequest, config, targetStates).Execute();
         return response;
     }));
 }
 /// <summary>
 /// Creates a waiter using default wait configuration.
 /// </summary>
 /// <param name="request">Request to send.</param>
 /// <param name="statuses">Desired resource states. If multiple states are provided then the waiter will return once the resource reaches any of the provided states</param>
 /// <returns>a new Oci.common.Waiter instance</returns>
 public Waiter <UpdateInstanceRequest, UpdateInstanceResponse> ForUpdateInstance(UpdateInstanceRequest request, params WorkrequestsService.Models.WorkRequest.StatusEnum[] targetStates)
 {
     return(this.ForUpdateInstance(request, WaiterConfiguration.DefaultWaiterConfiguration, targetStates));
 }