protected override void ProcessRecord()
        {
            base.ProcessRecord();

            if (!ConfirmDelete("OCIComputeTerminateInstance", "Invoke"))
            {
                return;
            }

            TerminateInstanceRequest request;

            try
            {
                request = new TerminateInstanceRequest
                {
                    InstanceId          = InstanceId,
                    IfMatch             = IfMatch,
                    PreserveBootVolume  = PreserveBootVolume,
                    PreserveDataVolumes = PreserveDataVolumes
                };

                response = client.TerminateInstance(request).GetAwaiter().GetResult();
                WriteOutput(response);
                FinishProcessing(response);
            }
            catch (Exception ex)
            {
                TerminatingErrorDuringExecution(ex);
            }
        }
示例#2
0
        /// <summary>
        /// 销毁EMR实例。此接口仅支持弹性MapReduce正式计费版本。
        /// </summary>
        /// <param name="req"><see cref="TerminateInstanceRequest"/></param>
        /// <returns><see cref="TerminateInstanceResponse"/></returns>
        public TerminateInstanceResponse TerminateInstanceSync(TerminateInstanceRequest req)
        {
            JsonResponseModel <TerminateInstanceResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "TerminateInstance");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <TerminateInstanceResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
示例#3
0
        /// <summary>
        /// Terminates the specified instance.
        /// Any attached VNICs and volumes are automatically detached when the instance terminates.
        /// To preserve the boot volume associated with the instance, specify true for PreserveBootVolumeQueryParam.To delete
        /// the boot volume when the instance is deleted, specify false or do not specify a value for PreserveBootVolumeQueryParam.
        /// This is an asynchronous operation.The instance's lifecycleState will change to TERMINATING temporarily until the instance
        /// is completely removed.
        /// </summary>
        /// <param name="deleteRequest"></param>
        /// <returns></returns>
        public TerminateInstanceResponse TerminateInstance(TerminateInstanceRequest deleteRequest)
        {
            var uri = new Uri($"{GetEndPoint(CoreServices.Instance, this.Region)}/{deleteRequest.InstanceId}");

            using (var webResponse = this.RestClient.Delete(uri, new HttpRequestHeaderParam()
            {
                IfMatch = deleteRequest.IfMatch
            }, deleteRequest.PreserveBootVolume))
                using (var stream = webResponse.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        var response = reader.ReadToEnd();

                        return(new TerminateInstanceResponse()
                        {
                            OpcRequestId = webResponse.Headers.Get("opc-request-id")
                        });
                    }
        }
        private static async Task terminateInstance(ComputeClient computeClient, Instance instance)
        {
            logger.Info($"Terminating Instance: {instance.Id}");
            TerminateInstanceRequest terminateInstanceRequest = new TerminateInstanceRequest {
                InstanceId = instance.Id
            };
            await computeClient.TerminateInstance(terminateInstanceRequest);

            WaiterConfiguration waiterConfiguration = new WaiterConfiguration
            {
                MaxAttempts           = 20,
                GetNextDelayInSeconds = DelayStrategy.GetExponentialDelayInSeconds
            };
            GetInstanceRequest getInstanceRequest = new GetInstanceRequest {
                InstanceId = instance.Id
            };

            computeClient.Waiters.ForInstance(getInstanceRequest, waiterConfiguration, Instance.LifecycleStateEnum.Terminated).Execute();

            logger.Info($"Terminated Instance: {instance.Id}");
        }
示例#5
0
 public void TerminateInstance(TerminateInstanceRequest request)
 {
     Channel.TerminateInstance(request);
 }