source generators: (#753)
* introduce net5 source generator: version convert * remove unused generator related files
This commit is contained in:
@@ -70,8 +70,6 @@ namespace KubernetesWatchGenerator
|
||||
builder.RegisterType<ModelExtGenerator>();
|
||||
builder.RegisterType<ModelGenerator>();
|
||||
builder.RegisterType<ApiGenerator>();
|
||||
builder.RegisterType<WatchGenerator>();
|
||||
builder.RegisterType<VersionConverterGenerator>();
|
||||
|
||||
var container = builder.Build();
|
||||
|
||||
@@ -80,11 +78,6 @@ namespace KubernetesWatchGenerator
|
||||
helper.RegisterHelper();
|
||||
}
|
||||
|
||||
//if (options.GenerateWatch)
|
||||
//{
|
||||
// container.Resolve<WatchGenerator>().Generate(swaggerUnprocessed, outputDirectory);
|
||||
//}
|
||||
|
||||
if (options.GenerateApi)
|
||||
{
|
||||
container.Resolve<ApiGenerator>().Generate(swaggerCooked, outputDirectory);
|
||||
@@ -99,11 +92,6 @@ namespace KubernetesWatchGenerator
|
||||
{
|
||||
container.Resolve<ModelExtGenerator>().Generate(swaggerUnprocessed, outputDirectory);
|
||||
}
|
||||
|
||||
if (options.GenerateVersionConverter)
|
||||
{
|
||||
container.Resolve<VersionConverterGenerator>().GenerateFromModels(outputDirectory);
|
||||
}
|
||||
}
|
||||
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA1812", Justification = "Instanced in CommandLineParser")]
|
||||
@@ -112,9 +100,6 @@ namespace KubernetesWatchGenerator
|
||||
[Value(0, Required = true, HelpText = "path to src/KubernetesClient/generated")]
|
||||
public string OutputPath { get; set; }
|
||||
|
||||
//[Option("watch", Required = false, Default = true)]
|
||||
//public bool GenerateWatch { get; set; }
|
||||
|
||||
[Option("api", Required = false, Default = true)]
|
||||
public bool GenerateApi { get; set; }
|
||||
|
||||
@@ -123,9 +108,6 @@ namespace KubernetesWatchGenerator
|
||||
|
||||
[Option("modelext", Required = false, Default = true)]
|
||||
public bool GenerateModelExt { get; set; }
|
||||
|
||||
[Option("versionconverter", Required = false, Default = false)]
|
||||
public bool GenerateVersionConverter { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,22 +10,9 @@ namespace KubernetesGenerator
|
||||
{
|
||||
public void RegisterHelper()
|
||||
{
|
||||
Helpers.Register(nameof(GetTuple), GetTuple);
|
||||
Helpers.Register(nameof(IfKindIs), IfKindIs);
|
||||
}
|
||||
|
||||
public static void GetTuple(RenderContext context, IList<object> arguments, IDictionary<string, object> options,
|
||||
RenderBlock fn, RenderBlock inverse)
|
||||
{
|
||||
if (arguments != null && arguments.Count > 0 && arguments[0] is ITuple &&
|
||||
options.TryGetValue("index", out var indexObj) && int.TryParse(indexObj?.ToString(), out var index))
|
||||
{
|
||||
var pair = (ITuple)arguments[0];
|
||||
var value = pair[index];
|
||||
context.Write(value.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public static void IfKindIs(RenderContext context, IList<object> arguments, IDictionary<string, object> options,
|
||||
RenderBlock fn, RenderBlock inverse)
|
||||
{
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text.RegularExpressions;
|
||||
using Nustache.Core;
|
||||
|
||||
namespace KubernetesGenerator
|
||||
{
|
||||
internal class VersionConverterGenerator
|
||||
{
|
||||
public void GenerateFromModels(string outputDirectory)
|
||||
{
|
||||
// generate version converter maps
|
||||
var allGeneratedModelClassNames = Directory
|
||||
.EnumerateFiles(Path.Combine(outputDirectory, "Models"))
|
||||
.Select(Path.GetFileNameWithoutExtension)
|
||||
.ToList();
|
||||
|
||||
var versionRegex = @"(^V|v)[0-9]+((alpha|beta)[0-9]+)?";
|
||||
var typePairs = allGeneratedModelClassNames
|
||||
.OrderBy(x => x)
|
||||
.Select(x => new
|
||||
{
|
||||
Version = Regex.Match(x, versionRegex).Value?.ToLower(),
|
||||
Kinda = Regex.Replace(x, versionRegex, string.Empty),
|
||||
Type = x,
|
||||
})
|
||||
.Where(x => !string.IsNullOrEmpty(x.Version))
|
||||
.GroupBy(x => x.Kinda)
|
||||
.Where(x => x.Count() > 1)
|
||||
.SelectMany(x =>
|
||||
x.SelectMany((value, index) => x.Skip(index + 1), (first, second) => new { first, second }))
|
||||
.OrderBy(x => x.first.Kinda)
|
||||
.ThenBy(x => x.first.Version)
|
||||
.Select(x => (ITuple)Tuple.Create(x.first.Type, x.second.Type))
|
||||
.ToList();
|
||||
|
||||
var versionFile =
|
||||
File.ReadAllText(Path.Combine(outputDirectory, "..", "Versioning", "VersionConverter.cs"));
|
||||
var manualMaps = Regex.Matches(versionFile, @"\.CreateMap<(?<T1>.+?),\s?(?<T2>.+?)>")
|
||||
.Select(x => Tuple.Create(x.Groups["T1"].Value, x.Groups["T2"].Value))
|
||||
.ToList();
|
||||
var versionConverterPairs = typePairs.Except(manualMaps).ToList();
|
||||
|
||||
Render.FileToFile(Path.Combine("templates", "VersionConverter.cs.template"), versionConverterPairs,
|
||||
Path.Combine(outputDirectory, "VersionConverter.cs"));
|
||||
Render.FileToFile(Path.Combine("templates", "ModelOperators.cs.template"), typePairs,
|
||||
Path.Combine(outputDirectory, "ModelOperators.cs"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using NSwag;
|
||||
using Nustache.Core;
|
||||
|
||||
namespace KubernetesGenerator
|
||||
{
|
||||
internal class WatchGenerator
|
||||
{
|
||||
public void Generate(OpenApiDocument swagger, string outputDirectory)
|
||||
{
|
||||
// Generate the Watcher operations
|
||||
// We skip operations where the name of the class in the C# client could not be determined correctly.
|
||||
// That's usually because there are different version of the same object (e.g. for deployments).
|
||||
var watchOperations = swagger.Operations.Where(
|
||||
o => o.Path.Contains("/watch/")
|
||||
&& o.Operation.ActualParameters.Any(p => p.Name == "name")).ToArray();
|
||||
|
||||
// Render.
|
||||
Render.FileToFile(Path.Combine("templates", "IKubernetes.Watch.cs.template"), watchOperations,
|
||||
Path.Combine(outputDirectory, "IKubernetes.Watch.cs"));
|
||||
Render.FileToFile(Path.Combine("templates", "Kubernetes.Watch.cs.template"), watchOperations,
|
||||
Path.Combine(outputDirectory, "Kubernetes.Watch.cs"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
// <auto-generated>
|
||||
// Code generated by https://github.com/kubernetes-client/csharp/tree/master/gen/KubernetesGenerator
|
||||
// Changes may cause incorrect behavior and will be lost if the code is
|
||||
// regenerated.
|
||||
// </auto-generated>
|
||||
using k8s.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace k8s
|
||||
{
|
||||
public partial interface IKubernetes
|
||||
{
|
||||
{{#.}}
|
||||
/// <summary>
|
||||
/// {{ToXmlDoc operation.description}}
|
||||
/// </summary>
|
||||
{{#operation.actualParameters}}
|
||||
{{#isRequired}}
|
||||
/// <param name="{{GetDotNetName name}}">
|
||||
/// {{ToXmlDoc description}}
|
||||
/// </param>
|
||||
{{/isRequired}}
|
||||
{{/operation.actualParameters}}
|
||||
{{#operation.actualParameters}}
|
||||
{{^isRequired}}
|
||||
/// <param name="{{GetDotNetName name}}">
|
||||
/// {{ToXmlDoc description}}
|
||||
/// </param>
|
||||
{{/isRequired}}
|
||||
{{/operation.actualParameters}}
|
||||
/// <param name="customHeaders">
|
||||
/// The headers that will be added to request.
|
||||
/// </param>
|
||||
/// <param name="onEvent">
|
||||
/// The action to invoke when the server sends a new event.
|
||||
/// </param>
|
||||
/// <param name="onError">
|
||||
/// The action to invoke when an error occurs.
|
||||
/// </param>
|
||||
/// <param name="onClosed">
|
||||
/// The action to invoke when the server closes the connection.
|
||||
/// </param>
|
||||
/// <param name="cancellationToken">
|
||||
/// A <see cref="CancellationToken"/> which can be used to cancel the asynchronous operation.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// A <see cref="Task"/> which represents the asynchronous operation, and returns a new watcher.
|
||||
/// </returns>
|
||||
Task<Watcher<{{GetClassName operation}}>> {{GetMethodName operation}}(
|
||||
{{#operation.actualParameters}}
|
||||
{{#isRequired}}
|
||||
{{GetDotNetType type name isRequired format}} {{GetDotNetName name}},
|
||||
{{/isRequired}}
|
||||
{{/operation.actualParameters}}
|
||||
{{#operation.actualParameters}}
|
||||
{{^isRequired}}
|
||||
{{GetDotNetType .}} {{GetDotNetName .}} = null,
|
||||
{{/isRequired}}
|
||||
{{/operation.actualParameters}}
|
||||
Dictionary<string, List<string>> customHeaders = null,
|
||||
Action<WatchEventType, {{GetClassName operation}}> onEvent = null,
|
||||
Action<Exception> onError = null,
|
||||
Action onClosed = null,
|
||||
CancellationToken cancellationToken = default(CancellationToken));
|
||||
|
||||
{{/.}}
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
// <auto-generated>
|
||||
// Code generated by https://github.com/kubernetes-client/csharp/tree/master/gen/KubernetesGenerator
|
||||
// Changes may cause incorrect behavior and will be lost if the code is
|
||||
// regenerated.
|
||||
// </auto-generated>
|
||||
using k8s.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace k8s
|
||||
{
|
||||
public partial class Kubernetes
|
||||
{
|
||||
{{#.}}
|
||||
/// <inheritdoc/>
|
||||
public Task<Watcher<{{GetClassName operation}}>> {{GetMethodName operation}}(
|
||||
{{#operation.actualParameters}}
|
||||
{{#isRequired}}
|
||||
{{GetDotNetType type name isRequired format}} {{GetDotNetName name}},
|
||||
{{/isRequired}}
|
||||
{{/operation.actualParameters}}
|
||||
{{#operation.actualParameters}}
|
||||
{{^isRequired}}
|
||||
{{GetDotNetType .}} {{GetDotNetName .}} = null,
|
||||
{{/isRequired}}
|
||||
{{/operation.actualParameters}}
|
||||
Dictionary<string, List<string>> customHeaders = null,
|
||||
Action<WatchEventType, {{GetClassName operation}}> onEvent = null,
|
||||
Action<Exception> onError = null,
|
||||
Action onClosed = null,
|
||||
CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
string path = $"{{GetPathExpression .}}";
|
||||
return WatchObjectAsync<{{GetClassName operation}}>(path: path, @continue: continueParameter, fieldSelector: fieldSelector, labelSelector: labelSelector, limit: limit, pretty: pretty, timeoutSeconds: timeoutSeconds, resourceVersion: resourceVersion, customHeaders: customHeaders, onEvent: onEvent, onError: onError, onClosed: onClosed, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
{{/.}}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
// <auto-generated>
|
||||
// Code generated by https://github.com/kubernetes-client/csharp/tree/master/gen/KubernetesGenerator
|
||||
// Changes may cause incorrect behavior and will be lost if the code is
|
||||
// regenerated.
|
||||
// </auto-generated>
|
||||
using k8s.Versioning;
|
||||
|
||||
namespace k8s.Models
|
||||
{
|
||||
{{#.}}
|
||||
public partial class {{GetTuple . index="0"}}
|
||||
{
|
||||
public static explicit operator {{GetTuple . index="0"}}({{GetTuple . index="1"}} s) => VersionConverter.Mapper.Map<{{GetTuple . index="0"}}>(s);
|
||||
}
|
||||
public partial class {{GetTuple . index="1"}}
|
||||
{
|
||||
public static explicit operator {{GetTuple . index="1"}}({{GetTuple . index="0"}} s) => VersionConverter.Mapper.Map<{{GetTuple . index="1"}}>(s);
|
||||
}
|
||||
{{/.}}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
// <auto-generated>
|
||||
// Code generated by https://github.com/kubernetes-client/csharp/tree/master/gen/KubernetesGenerator
|
||||
// Changes may cause incorrect behavior and will be lost if the code is
|
||||
// regenerated.
|
||||
// </auto-generated>
|
||||
using AutoMapper;
|
||||
using k8s.Models;
|
||||
|
||||
namespace k8s.Versioning
|
||||
{
|
||||
|
||||
|
||||
public static partial class VersionConverter
|
||||
{
|
||||
private static void AutoConfigurations(IMapperConfigurationExpression cfg)
|
||||
{
|
||||
{{#.}}
|
||||
cfg.CreateMap<{{GetTuple . index="0"}}, {{GetTuple . index="1"}}>().ReverseMap();
|
||||
{{/.}}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
12
gen/LibKubernetesGenerator/LibKubernetesGenerator.csproj
Normal file
12
gen/LibKubernetesGenerator/LibKubernetesGenerator.csproj
Normal file
@@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<LangVersion>10.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.0.1" PrivateAssets="all" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" PrivateAssets="all" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
116
gen/LibKubernetesGenerator/VersionConverterGenerator.cs
Normal file
116
gen/LibKubernetesGenerator/VersionConverterGenerator.cs
Normal file
@@ -0,0 +1,116 @@
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.Text;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace LibKubernetesGenerator
|
||||
{
|
||||
[Generator]
|
||||
public class VersionConverterGenerator : ISourceGenerator
|
||||
{
|
||||
private IEnumerable<string> PathSplit(string path)
|
||||
{
|
||||
var p = path;
|
||||
|
||||
while (!string.IsNullOrEmpty(p))
|
||||
{
|
||||
yield return Path.GetFileName(p);
|
||||
p = Path.GetDirectoryName(p);
|
||||
}
|
||||
}
|
||||
|
||||
private bool PathSuffixMath(string path, string suffix)
|
||||
{
|
||||
var s = PathSplit(suffix).ToList();
|
||||
return PathSplit(path).Take(s.Count).SequenceEqual(s);
|
||||
}
|
||||
|
||||
public void Execute(GeneratorExecutionContext context)
|
||||
{
|
||||
// TODO should parse syntax node instead of text
|
||||
var allGeneratedModelClassNames = new List<string>();
|
||||
var manualMaps = new List<(string, string)>();
|
||||
foreach (var s in context.Compilation.SyntaxTrees)
|
||||
{
|
||||
var p = s.FilePath;
|
||||
if (PathSuffixMath(p, "Versioning/VersionConverter.cs"))
|
||||
{
|
||||
manualMaps = Regex.Matches(s.GetText().ToString(), @"\.CreateMap<(?<T1>.+?),\s?(?<T2>.+?)>")
|
||||
.OfType<Match>()
|
||||
.Select(x => (x.Groups["T1"].Value, x.Groups["T2"].Value))
|
||||
.ToList();
|
||||
}
|
||||
else if (PathSuffixMath(Path.GetDirectoryName(p), "generated/Models"))
|
||||
{
|
||||
allGeneratedModelClassNames.Add(Path.GetFileNameWithoutExtension(p));
|
||||
}
|
||||
}
|
||||
|
||||
var versionRegex = @"(^V|v)[0-9]+((alpha|beta)[0-9]+)?";
|
||||
var typePairs = allGeneratedModelClassNames
|
||||
.OrderBy(x => x)
|
||||
.Select(x => new
|
||||
{
|
||||
Version = Regex.Match(x, versionRegex).Value?.ToLower(),
|
||||
Kinda = Regex.Replace(x, versionRegex, string.Empty),
|
||||
Type = x,
|
||||
})
|
||||
.Where(x => !string.IsNullOrEmpty(x.Version))
|
||||
.GroupBy(x => x.Kinda)
|
||||
.Where(x => x.Count() > 1)
|
||||
.SelectMany(x =>
|
||||
x.SelectMany((value, index) => x.Skip(index + 1), (first, second) => new { first, second }))
|
||||
.OrderBy(x => x.first.Kinda)
|
||||
.ThenBy(x => x.first.Version)
|
||||
.Select(x => (x.first.Type, x.second.Type))
|
||||
.ToList();
|
||||
|
||||
var versionConverterPairs = typePairs.Except(manualMaps).ToList();
|
||||
|
||||
var sbmodel = new StringBuilder(@"// <auto-generated />
|
||||
namespace k8s.Models;
|
||||
using k8s.Versioning;
|
||||
");
|
||||
|
||||
var sbversion = new StringBuilder(@"// <auto-generated />
|
||||
namespace k8s.Versioning;
|
||||
using AutoMapper;
|
||||
using k8s.Models;
|
||||
|
||||
public static partial class VersionConverter
|
||||
{
|
||||
private static void AutoConfigurations(IMapperConfigurationExpression cfg)
|
||||
{
|
||||
|
||||
");
|
||||
|
||||
foreach (var (t0, t1) in versionConverterPairs)
|
||||
{
|
||||
sbmodel.AppendLine($@"
|
||||
public partial class {t0}
|
||||
{{
|
||||
public static explicit operator {t0}({t1} s) => VersionConverter.Mapper.Map<{t0}>(s);
|
||||
}}
|
||||
public partial class {t1}
|
||||
{{
|
||||
public static explicit operator {t1}({t0} s) => VersionConverter.Mapper.Map<{t1}>(s);
|
||||
}}");
|
||||
|
||||
sbversion.AppendLine($@"cfg.CreateMap<{t0}, {t1}>().ReverseMap();");
|
||||
}
|
||||
|
||||
sbversion.AppendLine("}}");
|
||||
|
||||
context.AddSource($"generated_ModelOperators.cs", SourceText.From(sbmodel.ToString(), Encoding.UTF8));
|
||||
context.AddSource($"generated_VersionConverter.cs", SourceText.From(sbversion.ToString(), Encoding.UTF8));
|
||||
}
|
||||
|
||||
public void Initialize(GeneratorInitializationContext context)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GenericKubernetesApi", "exa
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "generic", "examples\generic\generic.csproj", "{F06D4C3A-7825-43A8-832B-6BDE3D355486}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibKubernetesGenerator", "gen\LibKubernetesGenerator\LibKubernetesGenerator.csproj", "{E92670D3-831E-430D-8FAC-138BF9977F3F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -273,6 +275,18 @@ Global
|
||||
{F06D4C3A-7825-43A8-832B-6BDE3D355486}.Release|x64.Build.0 = Release|Any CPU
|
||||
{F06D4C3A-7825-43A8-832B-6BDE3D355486}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F06D4C3A-7825-43A8-832B-6BDE3D355486}.Release|x86.Build.0 = Release|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Release|x64.Build.0 = Release|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -296,6 +310,7 @@ Global
|
||||
{79BA7C4A-98AA-467E-80D4-0E4F03EE6DDE} = {879F8787-C3BB-43F3-A92D-6D4C7D3A5285}
|
||||
{F81AE4C4-E044-4225-BD76-385A0DE621FD} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
|
||||
{F06D4C3A-7825-43A8-832B-6BDE3D355486} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
|
||||
{E92670D3-831E-430D-8FAC-138BF9977F3F} = {879F8787-C3BB-43F3-A92D-6D4C7D3A5285}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {049A763A-C891-4E8D-80CF-89DD3E22ADC7}
|
||||
|
||||
@@ -30,6 +30,10 @@
|
||||
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\gen\LibKubernetesGenerator\LibKubernetesGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="10.1.1" />
|
||||
<PackageReference Include="Fractions" Version="7.0.0" />
|
||||
@@ -44,6 +48,7 @@
|
||||
<PackageReference Include="Microsoft.Rest.ClientRuntime" Version="2.3.23" />
|
||||
<PackageReference Include="Portable.BouncyCastle" Version="1.8.10" Condition="'$(TargetFramework)' == 'netstandard2.1'" />
|
||||
<PackageReference Include="System.Text.Json" Version="6.0.0" Coondition="'$(TargetFramework)' == 'netstandard2.1'" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
1034
src/KubernetesClient/generated/ModelOperators.cs
generated
1034
src/KubernetesClient/generated/ModelOperators.cs
generated
File diff suppressed because it is too large
Load Diff
121
src/KubernetesClient/generated/VersionConverter.cs
generated
121
src/KubernetesClient/generated/VersionConverter.cs
generated
@@ -1,121 +0,0 @@
|
||||
// <auto-generated>
|
||||
// Code generated by https://github.com/kubernetes-client/csharp/tree/master/gen/KubernetesGenerator
|
||||
// Changes may cause incorrect behavior and will be lost if the code is
|
||||
// regenerated.
|
||||
// </auto-generated>
|
||||
using AutoMapper;
|
||||
using k8s.Models;
|
||||
|
||||
namespace k8s.Versioning
|
||||
{
|
||||
|
||||
|
||||
public static partial class VersionConverter
|
||||
{
|
||||
private static void AutoConfigurations(IMapperConfigurationExpression cfg)
|
||||
{
|
||||
cfg.CreateMap<V2beta1ContainerResourceMetricSource, V2beta2ContainerResourceMetricSource>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1ContainerResourceMetricSource, V2ContainerResourceMetricSource>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ContainerResourceMetricSource, V2ContainerResourceMetricSource>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1ContainerResourceMetricStatus, V2beta2ContainerResourceMetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1ContainerResourceMetricStatus, V2ContainerResourceMetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ContainerResourceMetricStatus, V2ContainerResourceMetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1CronJob, V1CronJob>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1CronJobList, V1CronJobList>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1CronJobSpec, V1CronJobSpec>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1CronJobStatus, V1CronJobStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1CrossVersionObjectReference, V2beta1CrossVersionObjectReference>().ReverseMap();
|
||||
cfg.CreateMap<V1CrossVersionObjectReference, V2beta2CrossVersionObjectReference>().ReverseMap();
|
||||
cfg.CreateMap<V1CrossVersionObjectReference, V2CrossVersionObjectReference>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1CrossVersionObjectReference, V2beta2CrossVersionObjectReference>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1CrossVersionObjectReference, V2CrossVersionObjectReference>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2CrossVersionObjectReference, V2CrossVersionObjectReference>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1CSIStorageCapacity, V1beta1CSIStorageCapacity>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1CSIStorageCapacityList, V1beta1CSIStorageCapacityList>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1EndpointConditions, V1EndpointConditions>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1EndpointHints, V1EndpointHints>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1EndpointSlice, V1EndpointSlice>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1EndpointSliceList, V1EndpointSliceList>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ExternalMetricSource, V2ExternalMetricSource>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ExternalMetricStatus, V2ExternalMetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1FlowDistinguisherMethod, V1beta2FlowDistinguisherMethod>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1FlowSchema, V1beta2FlowSchema>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1FlowSchemaCondition, V1beta2FlowSchemaCondition>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1FlowSchemaList, V1beta2FlowSchemaList>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1FlowSchemaSpec, V1beta2FlowSchemaSpec>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1FlowSchemaStatus, V1beta2FlowSchemaStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1ForZone, V1ForZone>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1GroupSubject, V1beta2GroupSubject>().ReverseMap();
|
||||
cfg.CreateMap<V1HorizontalPodAutoscaler, V2beta1HorizontalPodAutoscaler>().ReverseMap();
|
||||
cfg.CreateMap<V1HorizontalPodAutoscaler, V2beta2HorizontalPodAutoscaler>().ReverseMap();
|
||||
cfg.CreateMap<V1HorizontalPodAutoscaler, V2HorizontalPodAutoscaler>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscaler, V2beta2HorizontalPodAutoscaler>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscaler, V2HorizontalPodAutoscaler>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HorizontalPodAutoscaler, V2HorizontalPodAutoscaler>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HorizontalPodAutoscalerBehavior, V2HorizontalPodAutoscalerBehavior>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscalerCondition, V2beta2HorizontalPodAutoscalerCondition>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscalerCondition, V2HorizontalPodAutoscalerCondition>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HorizontalPodAutoscalerCondition, V2HorizontalPodAutoscalerCondition>().ReverseMap();
|
||||
cfg.CreateMap<V1HorizontalPodAutoscalerList, V2beta1HorizontalPodAutoscalerList>().ReverseMap();
|
||||
cfg.CreateMap<V1HorizontalPodAutoscalerList, V2beta2HorizontalPodAutoscalerList>().ReverseMap();
|
||||
cfg.CreateMap<V1HorizontalPodAutoscalerList, V2HorizontalPodAutoscalerList>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscalerList, V2beta2HorizontalPodAutoscalerList>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscalerList, V2HorizontalPodAutoscalerList>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HorizontalPodAutoscalerList, V2HorizontalPodAutoscalerList>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HorizontalPodAutoscalerSpec, V2HorizontalPodAutoscalerSpec>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscalerStatus, V2beta2HorizontalPodAutoscalerStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1HorizontalPodAutoscalerStatus, V2HorizontalPodAutoscalerStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HorizontalPodAutoscalerStatus, V2HorizontalPodAutoscalerStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HPAScalingPolicy, V2HPAScalingPolicy>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2HPAScalingRules, V2HPAScalingRules>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1JobTemplateSpec, V1JobTemplateSpec>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1LimitedPriorityLevelConfiguration, V1beta2LimitedPriorityLevelConfiguration>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1LimitResponse, V1beta2LimitResponse>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2MetricIdentifier, V2MetricIdentifier>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1MetricSpec, V2beta2MetricSpec>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1MetricSpec, V2MetricSpec>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2MetricSpec, V2MetricSpec>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1MetricStatus, V2beta2MetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta1MetricStatus, V2MetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2MetricStatus, V2MetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2MetricTarget, V2MetricTarget>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2MetricValueStatus, V2MetricValueStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1NonResourcePolicyRule, V1beta2NonResourcePolicyRule>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ObjectMetricSource, V2ObjectMetricSource>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ObjectMetricStatus, V2ObjectMetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1Overhead, V1beta1Overhead>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1Overhead, V1Overhead>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1Overhead, V1Overhead>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PodDisruptionBudget, V1PodDisruptionBudget>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PodDisruptionBudgetList, V1PodDisruptionBudgetList>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PodDisruptionBudgetSpec, V1PodDisruptionBudgetSpec>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PodDisruptionBudgetStatus, V1PodDisruptionBudgetStatus>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2PodsMetricSource, V2PodsMetricSource>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2PodsMetricStatus, V2PodsMetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PolicyRulesWithSubjects, V1beta2PolicyRulesWithSubjects>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PriorityLevelConfiguration, V1beta2PriorityLevelConfiguration>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PriorityLevelConfigurationCondition, V1beta2PriorityLevelConfigurationCondition>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PriorityLevelConfigurationList, V1beta2PriorityLevelConfigurationList>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PriorityLevelConfigurationReference, V1beta2PriorityLevelConfigurationReference>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PriorityLevelConfigurationSpec, V1beta2PriorityLevelConfigurationSpec>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1PriorityLevelConfigurationStatus, V1beta2PriorityLevelConfigurationStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1QueuingConfiguration, V1beta2QueuingConfiguration>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ResourceMetricSource, V2ResourceMetricSource>().ReverseMap();
|
||||
cfg.CreateMap<V2beta2ResourceMetricStatus, V2ResourceMetricStatus>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1ResourcePolicyRule, V1beta2ResourcePolicyRule>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1RuntimeClassList, V1beta1RuntimeClassList>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1RuntimeClassList, V1RuntimeClassList>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1RuntimeClassList, V1RuntimeClassList>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1Scheduling, V1beta1Scheduling>().ReverseMap();
|
||||
cfg.CreateMap<V1alpha1Scheduling, V1Scheduling>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1Scheduling, V1Scheduling>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1ServiceAccountSubject, V1beta2ServiceAccountSubject>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1Subject, V1beta2Subject>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1Subject, V1Subject>().ReverseMap();
|
||||
cfg.CreateMap<V1beta2Subject, V1Subject>().ReverseMap();
|
||||
cfg.CreateMap<V1beta1UserSubject, V1beta2UserSubject>().ReverseMap();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user