public static async Task <ContainerExecResult> Create(API API, ContainerExec exec, JToken response, string operationUrl) { if (exec.WaitForWebSocket) { response = API.Get(operationUrl); return(await ContainerExecResultWithWebSockets.Create(API, exec, response, operationUrl)); } else if (exec.Interactive == false && exec.RecordOutput) { response = API.Get(operationUrl); return(ContainerExecResultWithRecords.Create(API, exec, response, operationUrl)); } else { API.WaitForOperationComplete(response); return(new ContainerExecResult(exec)); } }
public static new ContainerExecResult Create(API api, ContainerExec exec, JToken response, string operationUrl) { var result = new ContainerExecResultWithRecords(exec); result.API = api; response = response.SelectToken("metadata"); if (response.SelectToken("status_code").Value <int>() == 103) { var t = api.Timeout; string op_id = response.SelectToken("id").Value <string>(); api.Timeout = System.Threading.Timeout.Infinite; response = api.Get($"/1.0/operations/{op_id}/wait").SelectToken("metadata"); api.Timeout = t; } result.ReturnCode = response.SelectToken("metadata.return").Value <int>(); result.RecordUrls = (new[] { "1", "2" }).Select(s => response.SelectToken($"metadata.output.{s}").Value <string>() ).ToArray(); return(result); }