Enhance AbstractKubernetes SendRequest extensibility (#994)
This commit is contained in:
@@ -54,19 +54,6 @@ public abstract partial class AbstractKubernetes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
public virtual TimeSpan HttpClientTimeout { get; set; } = TimeSpan.FromSeconds(100);
|
||||||
|
|
||||||
protected virtual MediaTypeHeaderValue GetHeader(object body)
|
protected virtual MediaTypeHeaderValue GetHeader(object body)
|
||||||
@@ -108,7 +95,7 @@ public abstract partial class AbstractKubernetes
|
|||||||
|
|
||||||
protected abstract Task<HttpOperationResponse<T>> CreateResultAsync<T>(HttpRequestMessage httpRequest, HttpResponseMessage httpResponse, bool? watch, CancellationToken cancellationToken);
|
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);
|
protected abstract Task<HttpResponseMessage> SendRequestRaw(string requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ namespace k8s
|
|||||||
return result;
|
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
|
var httpRequest = new HttpRequestMessage
|
||||||
{
|
{
|
||||||
@@ -120,7 +120,15 @@ namespace k8s
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
protected override async Task<HttpResponseMessage> SendRequestRaw(string requestContent, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
|
||||||
|
|||||||
@@ -52,19 +52,20 @@ public partial class AbstractKubernetes : I{{name}}Operations
|
|||||||
{{/IfListNotEmpty operation.parameters}}
|
{{/IfListNotEmpty operation.parameters}}
|
||||||
|
|
||||||
// Create HTTP transport
|
// Create HTTP transport
|
||||||
var httpRequest = CreateRequest(url, HttpMethods.{{Method}}, customHeaders);
|
|
||||||
{{#IfParamContains operation "body"}}
|
{{#IfParamContains operation "body"}}
|
||||||
var httpResponse = await SendRequest(body, httpRequest, cancellationToken);
|
var httpResponse = await SendRequest(url, HttpMethods.{{Method}}, customHeaders, body, cancellationToken);
|
||||||
{{/IfParamContains operation "body"}}
|
{{/IfParamContains operation "body"}}
|
||||||
{{#IfParamDoesNotContain 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"}}
|
{{/IfParamDoesNotContain operation "body"}}
|
||||||
// Create Result
|
// Create Result
|
||||||
|
var httpRequest = httpResponse.RequestMessage;
|
||||||
{{#IfReturnType operation "void"}}
|
{{#IfReturnType operation "void"}}
|
||||||
HttpOperationResponse result = new HttpOperationResponse() { Request = httpRequest, Response = httpResponse };
|
HttpOperationResponse result = new HttpOperationResponse() { Request = httpRequest, Response = httpResponse };
|
||||||
{{/IfReturnType operation "void"}}
|
{{/IfReturnType operation "void"}}
|
||||||
{{#IfReturnType operation "obj"}}
|
{{#IfReturnType operation "obj"}}
|
||||||
var result = await CreateResultAsync{{GetReturnType operation "<>"}}(httpRequest,
|
var result = await CreateResultAsync{{GetReturnType operation "<>"}}(
|
||||||
|
httpRequest,
|
||||||
httpResponse,
|
httpResponse,
|
||||||
{{#IfParamContains operation "watch"}}
|
{{#IfParamContains operation "watch"}}
|
||||||
watch,
|
watch,
|
||||||
|
|||||||
Reference in New Issue
Block a user