Made a change to avoid calling _httpResponse.Content.ReadAsStringAsync() and deserialize from the content stream. (#731)
* Avoid calling _httpResponse.Content.ReadAsStringAsync() and deserialize from the content stream Made a change to avoid calling _httpResponse.Content.ReadAsStringAsync() and deserialize from the content stream, which significantly reduced memory utilization. Created Kubernetes.cs file and moved constructors and couple methods from the Kubernetes.cs.template to the Kubernetes.cs Generated Kubernetes.cs will be in a separate commit. * Separate commit for generated Kubernetes.cs
This commit is contained in:
committed by
GitHub
parent
43f8922d20
commit
e7de93dd10
@@ -19,11 +19,12 @@ namespace KubernetesGenerator
|
|||||||
|
|
||||||
public void RegisterHelper()
|
public void RegisterHelper()
|
||||||
{
|
{
|
||||||
Helpers.Register(nameof(IfParamCotains), IfParamCotains);
|
Helpers.Register(nameof(IfParamContains), IfParamContains);
|
||||||
|
Helpers.Register(nameof(IfParamDoesNotContain), IfParamDoesNotContain);
|
||||||
Helpers.Register(nameof(GetModelCtorParam), GetModelCtorParam);
|
Helpers.Register(nameof(GetModelCtorParam), GetModelCtorParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void IfParamCotains(RenderContext context, IList<object> arguments,
|
public static void IfParamContains(RenderContext context, IList<object> arguments,
|
||||||
IDictionary<string, object> options,
|
IDictionary<string, object> options,
|
||||||
RenderBlock fn, RenderBlock inverse)
|
RenderBlock fn, RenderBlock inverse)
|
||||||
{
|
{
|
||||||
@@ -54,6 +55,36 @@ namespace KubernetesGenerator
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void IfParamDoesNotContain(RenderContext context, IList<object> arguments,
|
||||||
|
IDictionary<string, object> options,
|
||||||
|
RenderBlock fn, RenderBlock inverse)
|
||||||
|
{
|
||||||
|
var operation = arguments?.FirstOrDefault() as SwaggerOperation;
|
||||||
|
if (operation != null)
|
||||||
|
{
|
||||||
|
string name = null;
|
||||||
|
if (arguments.Count > 1)
|
||||||
|
{
|
||||||
|
name = arguments[1] as string;
|
||||||
|
}
|
||||||
|
|
||||||
|
var found = false;
|
||||||
|
|
||||||
|
foreach (var param in operation.Parameters)
|
||||||
|
{
|
||||||
|
if (param.Name == name)
|
||||||
|
{
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
fn(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void GetModelCtorParam(RenderContext context, IList<object> arguments,
|
public void GetModelCtorParam(RenderContext context, IList<object> arguments,
|
||||||
IDictionary<string, object> options,
|
IDictionary<string, object> options,
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ namespace KubernetesGenerator
|
|||||||
{
|
{
|
||||||
fn(null);
|
fn(null);
|
||||||
}
|
}
|
||||||
else if (type.ToLower() == rt.ToLower())
|
else if (string.Equals(type, rt.ToLower(), StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
fn(null);
|
fn(null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ namespace k8s
|
|||||||
using Microsoft.Rest;
|
using Microsoft.Rest;
|
||||||
using Microsoft.Rest.Serialization;
|
using Microsoft.Rest.Serialization;
|
||||||
using Models;
|
using Models;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
@@ -20,296 +18,6 @@ namespace k8s
|
|||||||
|
|
||||||
public partial class Kubernetes : ServiceClient<Kubernetes>, IKubernetes
|
public partial class Kubernetes : ServiceClient<Kubernetes>, IKubernetes
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// The base URI of the service.
|
|
||||||
/// </summary>
|
|
||||||
public System.Uri BaseUri { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets json serialization settings.
|
|
||||||
/// </summary>
|
|
||||||
public JsonSerializerSettings SerializationSettings { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets json deserialization settings.
|
|
||||||
/// </summary>
|
|
||||||
public JsonSerializerSettings DeserializationSettings { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Subscription credentials which uniquely identify client subscription.
|
|
||||||
/// </summary>
|
|
||||||
public ServiceClientCredentials Credentials { get; private set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='httpClient'>
|
|
||||||
/// HttpClient to be used
|
|
||||||
/// </param>
|
|
||||||
/// <param name='disposeHttpClient'>
|
|
||||||
/// True: will dispose the provided httpClient on calling Kubernetes.Dispose(). False: will not dispose provided httpClient</param>
|
|
||||||
protected Kubernetes(HttpClient httpClient, bool disposeHttpClient) : base(httpClient, disposeHttpClient)
|
|
||||||
{
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
protected Kubernetes(params DelegatingHandler[] handlers) : base(handlers)
|
|
||||||
{
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='rootHandler'>
|
|
||||||
/// Optional. The http client handler used to handle http transport.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
protected Kubernetes(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers)
|
|
||||||
{
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='baseUri'>
|
|
||||||
/// Optional. The base URI of the service.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
/// <exception cref="System.ArgumentNullException">
|
|
||||||
/// Thrown when a required parameter is null
|
|
||||||
/// </exception>
|
|
||||||
protected Kubernetes(System.Uri baseUri, params DelegatingHandler[] handlers) : this(handlers)
|
|
||||||
{
|
|
||||||
if (baseUri == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("baseUri");
|
|
||||||
}
|
|
||||||
BaseUri = baseUri;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='baseUri'>
|
|
||||||
/// Optional. The base URI of the service.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='rootHandler'>
|
|
||||||
/// Optional. The http client handler used to handle http transport.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
/// <exception cref="System.ArgumentNullException">
|
|
||||||
/// Thrown when a required parameter is null
|
|
||||||
/// </exception>
|
|
||||||
protected Kubernetes(System.Uri baseUri, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers)
|
|
||||||
{
|
|
||||||
if (baseUri == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("baseUri");
|
|
||||||
}
|
|
||||||
BaseUri = baseUri;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='credentials'>
|
|
||||||
/// Required. Subscription credentials which uniquely identify client subscription.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
/// <exception cref="System.ArgumentNullException">
|
|
||||||
/// Thrown when a required parameter is null
|
|
||||||
/// </exception>
|
|
||||||
public Kubernetes(ServiceClientCredentials credentials, params DelegatingHandler[] handlers) : this(handlers)
|
|
||||||
{
|
|
||||||
if (credentials == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("credentials");
|
|
||||||
}
|
|
||||||
Credentials = credentials;
|
|
||||||
if (Credentials != null)
|
|
||||||
{
|
|
||||||
Credentials.InitializeServiceClient(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='credentials'>
|
|
||||||
/// Required. Subscription credentials which uniquely identify client subscription.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='httpClient'>
|
|
||||||
/// HttpClient to be used
|
|
||||||
/// </param>
|
|
||||||
/// <param name='disposeHttpClient'>
|
|
||||||
/// True: will dispose the provided httpClient on calling Kubernetes.Dispose(). False: will not dispose provided httpClient</param>
|
|
||||||
/// <exception cref="System.ArgumentNullException">
|
|
||||||
/// Thrown when a required parameter is null
|
|
||||||
/// </exception>
|
|
||||||
public Kubernetes(ServiceClientCredentials credentials, HttpClient httpClient, bool disposeHttpClient) : this(httpClient, disposeHttpClient)
|
|
||||||
{
|
|
||||||
if (credentials == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("credentials");
|
|
||||||
}
|
|
||||||
Credentials = credentials;
|
|
||||||
if (Credentials != null)
|
|
||||||
{
|
|
||||||
Credentials.InitializeServiceClient(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='credentials'>
|
|
||||||
/// Required. Subscription credentials which uniquely identify client subscription.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='rootHandler'>
|
|
||||||
/// Optional. The http client handler used to handle http transport.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
/// <exception cref="System.ArgumentNullException">
|
|
||||||
/// Thrown when a required parameter is null
|
|
||||||
/// </exception>
|
|
||||||
public Kubernetes(ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers)
|
|
||||||
{
|
|
||||||
if (credentials == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("credentials");
|
|
||||||
}
|
|
||||||
Credentials = credentials;
|
|
||||||
if (Credentials != null)
|
|
||||||
{
|
|
||||||
Credentials.InitializeServiceClient(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='baseUri'>
|
|
||||||
/// Optional. The base URI of the service.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='credentials'>
|
|
||||||
/// Required. Subscription credentials which uniquely identify client subscription.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
/// <exception cref="System.ArgumentNullException">
|
|
||||||
/// Thrown when a required parameter is null
|
|
||||||
/// </exception>
|
|
||||||
public Kubernetes(System.Uri baseUri, ServiceClientCredentials credentials, params DelegatingHandler[] handlers) : this(handlers)
|
|
||||||
{
|
|
||||||
if (baseUri == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("baseUri");
|
|
||||||
}
|
|
||||||
if (credentials == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("credentials");
|
|
||||||
}
|
|
||||||
BaseUri = baseUri;
|
|
||||||
Credentials = credentials;
|
|
||||||
if (Credentials != null)
|
|
||||||
{
|
|
||||||
Credentials.InitializeServiceClient(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a new instance of the Kubernetes class.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name='baseUri'>
|
|
||||||
/// Optional. The base URI of the service.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='credentials'>
|
|
||||||
/// Required. Subscription credentials which uniquely identify client subscription.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='rootHandler'>
|
|
||||||
/// Optional. The http client handler used to handle http transport.
|
|
||||||
/// </param>
|
|
||||||
/// <param name='handlers'>
|
|
||||||
/// Optional. The delegating handlers to add to the http client pipeline.
|
|
||||||
/// </param>
|
|
||||||
/// <exception cref="System.ArgumentNullException">
|
|
||||||
/// Thrown when a required parameter is null
|
|
||||||
/// </exception>
|
|
||||||
public Kubernetes(System.Uri baseUri, ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : this(rootHandler, handlers)
|
|
||||||
{
|
|
||||||
if (baseUri == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("baseUri");
|
|
||||||
}
|
|
||||||
if (credentials == null)
|
|
||||||
{
|
|
||||||
throw new System.ArgumentNullException("credentials");
|
|
||||||
}
|
|
||||||
BaseUri = baseUri;
|
|
||||||
Credentials = credentials;
|
|
||||||
if (Credentials != null)
|
|
||||||
{
|
|
||||||
Credentials.InitializeServiceClient(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// An optional partial-method to perform custom initialization.
|
|
||||||
///</summary>
|
|
||||||
partial void CustomInitialize();
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes client properties.
|
|
||||||
/// </summary>
|
|
||||||
private void Initialize()
|
|
||||||
{
|
|
||||||
BaseUri = new System.Uri("http://localhost");
|
|
||||||
SerializationSettings = new JsonSerializerSettings
|
|
||||||
{
|
|
||||||
Formatting = Newtonsoft.Json.Formatting.Indented,
|
|
||||||
DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
|
|
||||||
DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc,
|
|
||||||
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
|
|
||||||
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
|
|
||||||
ContractResolver = new ReadOnlyJsonContractResolver(),
|
|
||||||
Converters = new List<JsonConverter>
|
|
||||||
{
|
|
||||||
new Iso8601TimeSpanConverter()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
DeserializationSettings = new JsonSerializerSettings
|
|
||||||
{
|
|
||||||
DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
|
|
||||||
DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc,
|
|
||||||
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
|
|
||||||
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
|
|
||||||
ContractResolver = new ReadOnlyJsonContractResolver(),
|
|
||||||
Converters = new List<JsonConverter>
|
|
||||||
{
|
|
||||||
new Iso8601TimeSpanConverter()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CustomInitialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
{{#.}}
|
{{#.}}
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public async Task<HttpOperationResponse{{GetReturnType operation "<>"}}> {{GetMethodName operation "WithHttpMessagesAsync"}}(
|
public async Task<HttpOperationResponse{{GetReturnType operation "<>"}}> {{GetMethodName operation "WithHttpMessagesAsync"}}(
|
||||||
@@ -321,12 +29,12 @@ namespace k8s
|
|||||||
{
|
{
|
||||||
var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
|
var cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
|
||||||
cts.CancelAfter(HttpClientTimeout);
|
cts.CancelAfter(HttpClientTimeout);
|
||||||
{{#IfParamCotains operation "watch"}}
|
{{#IfParamContains operation "watch"}}
|
||||||
if (watch == true)
|
if (watch == true)
|
||||||
{
|
{
|
||||||
cts.CancelAfter(Timeout.InfiniteTimeSpan);
|
cts.CancelAfter(Timeout.InfiniteTimeSpan);
|
||||||
}
|
}
|
||||||
{{/IfParamCotains operation "watch"}}
|
{{/IfParamContains operation "watch"}}
|
||||||
cancellationToken = cts.Token;
|
cancellationToken = cts.Token;
|
||||||
|
|
||||||
{{#operation.parameters}}
|
{{#operation.parameters}}
|
||||||
@@ -385,24 +93,21 @@ namespace k8s
|
|||||||
{
|
{
|
||||||
foreach(var _header in customHeaders)
|
foreach(var _header in customHeaders)
|
||||||
{
|
{
|
||||||
if (_httpRequest.Headers.Contains(_header.Key))
|
_httpRequest.Headers.Remove(_header.Key);
|
||||||
{
|
|
||||||
_httpRequest.Headers.Remove(_header.Key);
|
|
||||||
}
|
|
||||||
_httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value);
|
_httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Serialize Request
|
// Serialize Request
|
||||||
string _requestContent = null;
|
string _requestContent = null;
|
||||||
{{#IfParamCotains operation "body"}}
|
{{#IfParamContains operation "body"}}
|
||||||
if(body != null)
|
if(body != null)
|
||||||
{
|
{
|
||||||
_requestContent = SafeJsonConvert.SerializeObject(body, SerializationSettings);
|
_requestContent = SafeJsonConvert.SerializeObject(body, SerializationSettings);
|
||||||
_httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8);
|
_httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8);
|
||||||
_httpRequest.Content.Headers.ContentType = GetHeader(body);
|
_httpRequest.Content.Headers.ContentType = GetHeader(body);
|
||||||
}
|
}
|
||||||
{{/IfParamCotains operation "body"}}
|
{{/IfParamContains operation "body"}}
|
||||||
// Set Credentials
|
// Set Credentials
|
||||||
if (Credentials != null)
|
if (Credentials != null)
|
||||||
{
|
{
|
||||||
@@ -422,9 +127,9 @@ namespace k8s
|
|||||||
}
|
}
|
||||||
HttpStatusCode _statusCode = _httpResponse.StatusCode;
|
HttpStatusCode _statusCode = _httpResponse.StatusCode;
|
||||||
cancellationToken.ThrowIfCancellationRequested();
|
cancellationToken.ThrowIfCancellationRequested();
|
||||||
string _responseContent = null;
|
|
||||||
if ((int)_statusCode != 200 && (int)_statusCode != 201 && (int)_statusCode != 202)
|
if ((int)_statusCode != 200 && (int)_statusCode != 201 && (int)_statusCode != 202)
|
||||||
{
|
{
|
||||||
|
string _responseContent = null;
|
||||||
var ex = new HttpOperationException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
|
var ex = new HttpOperationException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
|
||||||
if (_httpResponse.Content != null) {
|
if (_httpResponse.Content != null) {
|
||||||
_responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
|
_responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
|
||||||
@@ -446,40 +151,26 @@ namespace k8s
|
|||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
// Create Result
|
// Create Result
|
||||||
var _result = new HttpOperationResponse{{GetReturnType operation "<>"}}();
|
{{#IfReturnType operation "void"}}
|
||||||
_result.Request = _httpRequest;
|
HttpOperationResponse _result = new HttpOperationResponse() { Request = _httpRequest, Response = _httpResponse };
|
||||||
_result.Response = _httpResponse;
|
{{/IfReturnType operation "void"}}
|
||||||
{{#IfReturnType operation "any"}}
|
{{#IfReturnType operation "obj"}}
|
||||||
// Deserialize Response
|
var _result = await CreateResultAsync{{GetReturnType operation "<>"}}(_httpRequest,
|
||||||
if ((int)_statusCode == 200 || (int)_statusCode == 201 || (int)_statusCode == 202)
|
_httpResponse,
|
||||||
{
|
{{#IfParamContains operation "watch"}}
|
||||||
{{#IfReturnType operation "stream"}}
|
watch,
|
||||||
_result.Body = await _httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false);
|
{{/IfParamContains operation "watch"}}
|
||||||
{{/IfReturnType operation "stream"}}
|
{{#IfParamDoesNotContain operation "watch"}}
|
||||||
{{#IfReturnType operation "obj"}}
|
false,
|
||||||
{{#IfParamCotains operation "watch"}}
|
{{/IfParamDoesNotContain operation "watch"}}
|
||||||
if (watch == true)
|
cancellationToken);
|
||||||
{
|
{{/IfReturnType operation "obj"}}
|
||||||
_httpResponse.Content = new LineSeparatedHttpContent(_httpResponse.Content, cancellationToken);
|
{{#IfReturnType operation "stream"}}
|
||||||
}
|
var _result = new HttpOperationResponse{{GetReturnType operation "<>"}}() {
|
||||||
{{/IfParamCotains operation "watch"}}
|
Request = _httpRequest,
|
||||||
_responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
|
Response = _httpResponse,
|
||||||
try
|
Body = await _httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false) };
|
||||||
{
|
{{/IfReturnType operation "stream"}}
|
||||||
_result.Body = SafeJsonConvert.DeserializeObject{{GetReturnType operation "<>"}}(_responseContent, DeserializationSettings);
|
|
||||||
}
|
|
||||||
catch (JsonException ex)
|
|
||||||
{
|
|
||||||
_httpRequest.Dispose();
|
|
||||||
if (_httpResponse != null)
|
|
||||||
{
|
|
||||||
_httpResponse.Dispose();
|
|
||||||
}
|
|
||||||
throw new SerializationException("Unable to deserialize the response.", _responseContent, ex);
|
|
||||||
}
|
|
||||||
{{/IfReturnType operation "obj"}}
|
|
||||||
}
|
|
||||||
{{/IfReturnType operation "any"}}
|
|
||||||
if (_shouldTrace)
|
if (_shouldTrace)
|
||||||
{
|
{
|
||||||
ServiceClientTracing.Exit(_invocationId, _result);
|
ServiceClientTracing.Exit(_invocationId, _result);
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ namespace k8s
|
|||||||
private X509Certificate2 ClientCert { get; }
|
private X509Certificate2 ClientCert { get; }
|
||||||
private bool SkipTlsVerify { get; }
|
private bool SkipTlsVerify { get; }
|
||||||
|
|
||||||
partial void CustomInitialize()
|
private void CustomInitialize()
|
||||||
{
|
{
|
||||||
DeserializationSettings.Converters.Add(new V1Status.V1StatusObjectViewConverter());
|
DeserializationSettings.Converters.Add(new V1Status.V1StatusObjectViewConverter());
|
||||||
SerializationSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.ffffffK";
|
SerializationSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.ffffffK";
|
||||||
|
|||||||
293
src/KubernetesClient/Kubernetes.cs
Normal file
293
src/KubernetesClient/Kubernetes.cs
Normal file
@@ -0,0 +1,293 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.Rest;
|
||||||
|
using Microsoft.Rest.Serialization;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace k8s
|
||||||
|
{
|
||||||
|
public partial class Kubernetes
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The base URI of the service.
|
||||||
|
/// </summary>
|
||||||
|
public System.Uri BaseUri { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets json serialization settings.
|
||||||
|
/// </summary>
|
||||||
|
public JsonSerializerSettings SerializationSettings { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets json deserialization settings.
|
||||||
|
/// </summary>
|
||||||
|
public JsonSerializerSettings DeserializationSettings { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Subscription credentials which uniquely identify client subscription.
|
||||||
|
/// </summary>
|
||||||
|
public ServiceClientCredentials Credentials { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='httpClient'>
|
||||||
|
/// HttpClient to be used
|
||||||
|
/// </param>
|
||||||
|
/// <param name='disposeHttpClient'>
|
||||||
|
/// True: will dispose the provided httpClient on calling Kubernetes.Dispose(). False: will not dispose provided httpClient</param>
|
||||||
|
protected Kubernetes(HttpClient httpClient, bool disposeHttpClient)
|
||||||
|
: base(httpClient, disposeHttpClient)
|
||||||
|
{
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
protected Kubernetes(params DelegatingHandler[] handlers)
|
||||||
|
: base(handlers)
|
||||||
|
{
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='rootHandler'>
|
||||||
|
/// Optional. The http client handler used to handle http transport.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
protected Kubernetes(HttpClientHandler rootHandler, params DelegatingHandler[] handlers)
|
||||||
|
: base(rootHandler, handlers)
|
||||||
|
{
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='baseUri'>
|
||||||
|
/// Optional. The base URI of the service.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">
|
||||||
|
/// Thrown when a required parameter is null
|
||||||
|
/// </exception>
|
||||||
|
protected Kubernetes(System.Uri baseUri, params DelegatingHandler[] handlers)
|
||||||
|
: this(handlers)
|
||||||
|
{
|
||||||
|
BaseUri = baseUri ?? throw new ArgumentNullException(nameof(baseUri));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='baseUri'>
|
||||||
|
/// Optional. The base URI of the service.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='rootHandler'>
|
||||||
|
/// Optional. The http client handler used to handle http transport.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">
|
||||||
|
/// Thrown when a required parameter is null
|
||||||
|
/// </exception>
|
||||||
|
protected Kubernetes(System.Uri baseUri, HttpClientHandler rootHandler, params DelegatingHandler[] handlers)
|
||||||
|
: this(rootHandler, handlers)
|
||||||
|
{
|
||||||
|
BaseUri = baseUri ?? throw new ArgumentNullException(nameof(baseUri));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='credentials'>
|
||||||
|
/// Required. Subscription credentials which uniquely identify client subscription.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">
|
||||||
|
/// Thrown when a required parameter is null
|
||||||
|
/// </exception>
|
||||||
|
public Kubernetes(ServiceClientCredentials credentials, params DelegatingHandler[] handlers)
|
||||||
|
: this(handlers)
|
||||||
|
{
|
||||||
|
Credentials = credentials ?? throw new ArgumentNullException(nameof(credentials));
|
||||||
|
Credentials.InitializeServiceClient(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='credentials'>
|
||||||
|
/// Required. Subscription credentials which uniquely identify client subscription.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='httpClient'>
|
||||||
|
/// HttpClient to be used
|
||||||
|
/// </param>
|
||||||
|
/// <param name='disposeHttpClient'>
|
||||||
|
/// True: will dispose the provided httpClient on calling Kubernetes.Dispose(). False: will not dispose provided httpClient</param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">
|
||||||
|
/// Thrown when a required parameter is null
|
||||||
|
/// </exception>
|
||||||
|
public Kubernetes(ServiceClientCredentials credentials, HttpClient httpClient, bool disposeHttpClient)
|
||||||
|
: this(httpClient, disposeHttpClient)
|
||||||
|
{
|
||||||
|
Credentials = credentials ?? throw new ArgumentNullException(nameof(credentials));
|
||||||
|
Credentials.InitializeServiceClient(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='credentials'>
|
||||||
|
/// Required. Subscription credentials which uniquely identify client subscription.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='rootHandler'>
|
||||||
|
/// Optional. The http client handler used to handle http transport.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">
|
||||||
|
/// Thrown when a required parameter is null
|
||||||
|
/// </exception>
|
||||||
|
public Kubernetes(ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers)
|
||||||
|
: this(rootHandler, handlers)
|
||||||
|
{
|
||||||
|
Credentials = credentials ?? throw new ArgumentNullException(nameof(credentials));
|
||||||
|
Credentials.InitializeServiceClient(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='baseUri'>
|
||||||
|
/// Optional. The base URI of the service.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='credentials'>
|
||||||
|
/// Required. Subscription credentials which uniquely identify client subscription.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">
|
||||||
|
/// Thrown when a required parameter is null
|
||||||
|
/// </exception>
|
||||||
|
public Kubernetes(System.Uri baseUri, ServiceClientCredentials credentials, params DelegatingHandler[] handlers)
|
||||||
|
: this(handlers)
|
||||||
|
{
|
||||||
|
BaseUri = baseUri ?? throw new ArgumentNullException(nameof(baseUri));
|
||||||
|
Credentials = credentials ?? throw new ArgumentNullException(nameof(credentials));
|
||||||
|
Credentials.InitializeServiceClient(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Kubernetes"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name='baseUri'>
|
||||||
|
/// Optional. The base URI of the service.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='credentials'>
|
||||||
|
/// Required. Subscription credentials which uniquely identify client subscription.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='rootHandler'>
|
||||||
|
/// Optional. The http client handler used to handle http transport.
|
||||||
|
/// </param>
|
||||||
|
/// <param name='handlers'>
|
||||||
|
/// Optional. The delegating handlers to add to the http client pipeline.
|
||||||
|
/// </param>
|
||||||
|
/// <exception cref="System.ArgumentNullException">
|
||||||
|
/// Thrown when a required parameter is null
|
||||||
|
/// </exception>
|
||||||
|
public Kubernetes(System.Uri baseUri, ServiceClientCredentials credentials, HttpClientHandler rootHandler, params DelegatingHandler[] handlers)
|
||||||
|
: this(rootHandler, handlers)
|
||||||
|
{
|
||||||
|
BaseUri = baseUri ?? throw new ArgumentNullException(nameof(baseUri));
|
||||||
|
Credentials = credentials ?? throw new ArgumentNullException(nameof(credentials));
|
||||||
|
Credentials.InitializeServiceClient(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes client properties.
|
||||||
|
/// </summary>
|
||||||
|
private void Initialize()
|
||||||
|
{
|
||||||
|
BaseUri = new System.Uri("http://localhost");
|
||||||
|
SerializationSettings = new JsonSerializerSettings
|
||||||
|
{
|
||||||
|
Formatting = Newtonsoft.Json.Formatting.Indented,
|
||||||
|
DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
|
||||||
|
DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc,
|
||||||
|
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
|
||||||
|
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
|
||||||
|
ContractResolver = new ReadOnlyJsonContractResolver(),
|
||||||
|
Converters = new List<JsonConverter>
|
||||||
|
{
|
||||||
|
new Iso8601TimeSpanConverter(),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
DeserializationSettings = new JsonSerializerSettings
|
||||||
|
{
|
||||||
|
DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
|
||||||
|
DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc,
|
||||||
|
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
|
||||||
|
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
|
||||||
|
ContractResolver = new ReadOnlyJsonContractResolver(),
|
||||||
|
Converters = new List<JsonConverter>
|
||||||
|
{
|
||||||
|
new Iso8601TimeSpanConverter(),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
CustomInitialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<HttpOperationResponse<T>> CreateResultAsync<T>(HttpRequestMessage httpRequest, HttpResponseMessage httpResponse, bool? watch, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
var result = new HttpOperationResponse<T>() { Request = httpRequest, Response = httpResponse };
|
||||||
|
|
||||||
|
if (watch == true)
|
||||||
|
{
|
||||||
|
httpResponse.Content = new LineSeparatedHttpContent(httpResponse.Content, cancellationToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
JsonSerializer jsonSerializer = JsonSerializer.Create(DeserializationSettings);
|
||||||
|
jsonSerializer.CheckAdditionalContent = true;
|
||||||
|
#if NET5_0_OR_GREATER
|
||||||
|
using (Stream stream = await httpResponse.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false))
|
||||||
|
#else
|
||||||
|
using (Stream stream = await httpResponse.Content.ReadAsStreamAsync().ConfigureAwait(false))
|
||||||
|
#endif
|
||||||
|
using (JsonTextReader reader = new JsonTextReader(new StreamReader(stream)))
|
||||||
|
{
|
||||||
|
result.Body = (T)jsonSerializer.Deserialize(reader, typeof(T));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (JsonException ex)
|
||||||
|
{
|
||||||
|
httpRequest.Dispose();
|
||||||
|
httpResponse.Dispose();
|
||||||
|
throw new SerializationException("Unable to deserialize the response.", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
23603
src/KubernetesClient/generated/Kubernetes.cs
generated
23603
src/KubernetesClient/generated/Kubernetes.cs
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user