Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 1 addition & 14 deletions src/KubernetesClient.Basic/AbstractKubernetes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,6 @@ public override string ToString()
}
}

private Task<HttpResponseMessage> SendRequest<T>(T body, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
{
if (body != null)
{
var requestContent = KubernetesJson.Serialize(body);
httpRequest.Content = new StringContent(requestContent, System.Text.Encoding.UTF8);
httpRequest.Content.Headers.ContentType = GetHeader(body);
return SendRequestRaw(requestContent, httpRequest, cancellationToken);
}

return SendRequestRaw("", httpRequest, cancellationToken);
}

public virtual TimeSpan HttpClientTimeout { get; set; } = TimeSpan.FromSeconds(100);

protected virtual MediaTypeHeaderValue GetHeader(object body)
Expand Down Expand Up @@ -108,7 +95,7 @@ private MediaTypeHeaderValue GetHeader(V1Patch body)

protected abstract Task<HttpOperationResponse<T>> CreateResultAsync<T>(HttpRequestMessage httpRequest, HttpResponseMessage httpResponse, bool? watch, CancellationToken cancellationToken);

protected abstract HttpRequestMessage CreateRequest(string relativeUri, HttpMethod method, IReadOnlyDictionary<string, IReadOnlyList<string>> customHeaders);
protected abstract Task<HttpResponseMessage> SendRequest<T>(string relativeUri, HttpMethod method, IReadOnlyDictionary<string, IReadOnlyList<string>> customHeaders, T body, CancellationToken cancellationToken);

protected abstract Task<HttpResponseMessage> SendRequestRaw(string requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken);
}
12 changes: 10 additions & 2 deletions src/KubernetesClient/Kubernetes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ protected override async Task<HttpOperationResponse<T>> CreateResultAsync<T>(Htt
return result;
}

protected override HttpRequestMessage CreateRequest(string relativeUri, HttpMethod method, IReadOnlyDictionary<string, IReadOnlyList<string>> customHeaders)
protected override Task<HttpResponseMessage> SendRequest<T>(string relativeUri, HttpMethod method, IReadOnlyDictionary<string, IReadOnlyList<string>> customHeaders, T body, CancellationToken cancellationToken)
{
var httpRequest = new HttpRequestMessage();
httpRequest.Method = method;
Expand All @@ -117,7 +117,15 @@ protected override HttpRequestMessage CreateRequest(string relativeUri, HttpMeth
}
}

return httpRequest;
if (body != null)
{
var requestContent = KubernetesJson.Serialize(body);
httpRequest.Content = new StringContent(requestContent, System.Text.Encoding.UTF8);
httpRequest.Content.Headers.ContentType = GetHeader(body);
return SendRequestRaw(requestContent, httpRequest, cancellationToken);
}

return SendRequestRaw("", httpRequest, cancellationToken);
}

protected override async Task<HttpResponseMessage> SendRequestRaw(string requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
Expand Down
11 changes: 6 additions & 5 deletions src/LibKubernetesGenerator/templates/Operations.cs.template
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,20 @@ public partial class AbstractKubernetes : I{{name}}Operations
{{/IfListNotEmpty operation.parameters}}

// Create HTTP transport
var httpRequest = CreateRequest(url, HttpMethods.{{Method}}, customHeaders);
{{#IfParamContains operation "body"}}
var httpResponse = await SendRequest(body, httpRequest, cancellationToken);
var httpResponse = await SendRequest(url, HttpMethods.{{Method}}, customHeaders, body, cancellationToken);
{{/IfParamContains operation "body"}}
{{#IfParamDoesNotContain operation "body"}}
var httpResponse = await SendRequestRaw("", httpRequest, cancellationToken);
var httpResponse = await SendRequest<object>(url, HttpMethods.{{Method}}, customHeaders, null, cancellationToken);
{{/IfParamDoesNotContain operation "body"}}
// Create Result
// Create Result
var httpRequest = httpResponse.RequestMessage;
{{#IfReturnType operation "void"}}
HttpOperationResponse result = new HttpOperationResponse() { Request = httpRequest, Response = httpResponse };
{{/IfReturnType operation "void"}}
{{#IfReturnType operation "obj"}}
var result = await CreateResultAsync{{GetReturnType operation "<>"}}(httpRequest,
var result = await CreateResultAsync{{GetReturnType operation "<>"}}(
httpRequest,
httpResponse,
{{#IfParamContains operation "watch"}}
watch,
Expand Down