/// <summary> /// Creates a new container and lists it to output. /// </summary> protected override void ProcessRecord() { base.ProcessRecord(); foreach (var id in ParameterResolvers.GetImageIds(Image, Id)) { var createResult = ContainerOperations.CreateContainer( id, this.MemberwiseClone() as CreateContainerCmdlet, DkrClient); if (createResult.Warnings != null) { foreach (var w in createResult.Warnings) { if (!String.IsNullOrEmpty(w)) { WriteWarning(w); } } } if (!String.IsNullOrEmpty(createResult.ID)) { if (!DkrClient.Containers.StartContainerAsync( createResult.ID, HostConfiguration).AwaitResult()) { throw new ApplicationFailedException("The container has already started."); } var waitResponse = DkrClient.Containers.WaitContainerAsync( createResult.ID, CancelSignal.Token).AwaitResult(); WriteVerbose("Status Code: " + waitResponse.StatusCode.ToString()); ContainerOperations.ThrowOnProcessExitCode(waitResponse.StatusCode); if (RemoveAutomatically.ToBool()) { DkrClient.Containers.RemoveContainerAsync(createResult.ID, new ContainerRemoveParameters()).WaitUnwrap(); } else if (PassThru.ToBool()) { WriteObject(ContainerOperations.GetContainerById(createResult.ID, DkrClient)); } } } }
protected override async Task ProcessRecordAsync() { foreach (var id in ParameterResolvers.GetContainerIds(Container, Id)) { var waitResponse = await DkrClient.Containers.WaitContainerAsync( id, CmdletCancellationToken); WriteVerbose("Status Code: " + waitResponse.StatusCode.ToString()); ContainerOperations.ThrowOnProcessExitCode(waitResponse.StatusCode); if (PassThru.ToBool()) { WriteObject(await ContainerOperations.GetContainerById(id, DkrClient)); } } }
protected override void ProcessRecord() { base.ProcessRecord(); foreach (var id in ParameterResolvers.GetContainerIds(Container, Id)) { var waitResponse = DkrClient.Containers.WaitContainerAsync( id, CancelSignal.Token).AwaitResult(); WriteVerbose("Status Code: " + waitResponse.StatusCode.ToString()); ContainerOperations.ThrowOnProcessExitCode(waitResponse.StatusCode); if (PassThru.ToBool()) { WriteObject(ContainerOperations.GetContainerById(id, DkrClient)); } } }