Esempio n. 1
0
 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));
     }
 }
Esempio n. 2
0
                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);
                }