/// <summary> /// 执行命令,调用成功返回执行活动ID(inv-xxxxxxxx),每个执行活动内部有一个或多个执行任务(invt-xxxxxxxx),每个执行任务代表命令在一台 CVM 或一台 Lighthouse 上的执行记录。 /// /// * 如果指定实例未安装 agent,或 agent 不在线,返回失败 /// * 如果命令类型与 agent 运行环境不符,返回失败 /// * 指定的实例需要处于 VPC 网络 /// * 指定的实例需要处于 `RUNNING` 状态 /// * 不可同时指定 CVM 和 Lighthouse /// </summary> /// <param name="req"><see cref="RunCommandRequest"/></param> /// <returns><see cref="RunCommandResponse"/></returns> public RunCommandResponse RunCommandSync(RunCommandRequest req) { JsonResponseModel <RunCommandResponse> rsp = null; try { var strResp = this.InternalRequestSync(req, "RunCommand"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <RunCommandResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); switch (ParameterSetName) { case IdParameterSet: { var resource = new ResourceIdentifier(Id); ResourceGroupName = resource.ResourceGroupName; Name = resource.ResourceName; break; } case InputObjectParameterSet: { var resource = new ResourceIdentifier(InputObject.Id); ResourceGroupName = resource.ResourceGroupName; Name = resource.ResourceName; break; } } var msg = $"{Name} in {ResourceGroupName}"; ConfirmAction(Force.IsPresent, string.Format(Resources.DoYouWantToExecuteCommandOnCluster, Name), string.Format(Resources.ExecutingCommandOnCluster, Name), msg, () => { ManagedCluster cluster = Client.ManagedClusters.Get(ResourceGroupName, Name); RunCommandRequest request = new RunCommandRequest { Command = Command, Context = GetCommandContext() }; if (cluster.AadProfile != null && cluster.AadProfile.Managed != null) { request.ClusterToken = GetClusterToken(); } RunCommandResult response = Client.ManagedClusters.RunCommand(ResourceGroupName, Name, request); WriteObject(PSMapper.Instance.Map <PSRunCommandResult>(response)); }); }