From 57037f00709818d1e58bf42b04343ac66fffb874 Mon Sep 17 00:00:00 2001 From: Boshi Lian Date: Mon, 28 Mar 2022 16:57:12 -0700 Subject: [PATCH] move kubectl config and yaml related to model module (#806) * move yaml and config to models module * better naming * address comments --- examples/yaml/Program.cs | 2 +- src/KubernetesClient.Basic/Global.cs | 2 - ...nverter.cs => IntOrStringJsonConverter.cs} | 2 +- .../IntOrStringYamlConverter.cs | 0 .../IntstrIntOrString.cs | 2 +- .../KubeConfigModels/AuthProvider.cs | 0 .../KubeConfigModels/Cluster.cs | 0 .../KubeConfigModels/ClusterEndpoint.cs | 0 .../KubeConfigModels/Context.cs | 0 .../KubeConfigModels/ContextDetails.cs | 0 .../ExecCredentialResponse.cs | 0 .../KubeConfigModels/ExternalExecution.cs | 0 .../KubeConfigModels/K8SConfiguration.cs | 0 .../KubeConfigModels/NamedExtension.cs | 0 .../KubeConfigModels/User.cs | 0 .../KubeConfigModels/UserCredentials.cs | 0 .../KubernetesClient.Models.csproj | 5 +- .../KubernetesJson.cs | 2 +- .../KubernetesObject.cs | 0 .../KubernetesYaml.cs} | 31 +++++++++-- .../ResourceQuantity.cs | 2 +- ...er.cs => ResourceQuantityJsonConverter.cs} | 2 +- .../ResourceQuantityYamlConverter.cs | 0 .../StringQuotingEmitter.cs | 0 src/KubernetesClient/KubernetesClient.csproj | 1 - ...ubernetesClientConfiguration.ConfigFile.cs | 6 +-- .../KubernetesClientConfigurationTests.cs | 10 ++-- .../{YamlTests.cs => KubernetesYamlTests.cs} | 52 +++++++++---------- .../QuantityValueTests.cs | 4 +- 29 files changed, 71 insertions(+), 52 deletions(-) rename src/KubernetesClient.Models/{IntOrStringConverter.cs => IntOrStringJsonConverter.cs} (92%) rename src/{KubernetesClient => KubernetesClient.Models}/IntOrStringYamlConverter.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/AuthProvider.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/Cluster.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/ClusterEndpoint.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/Context.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/ContextDetails.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/ExecCredentialResponse.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/ExternalExecution.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/K8SConfiguration.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/NamedExtension.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/User.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/KubeConfigModels/UserCredentials.cs (100%) rename src/{KubernetesClient.Basic => KubernetesClient.Models}/KubernetesJson.cs (98%) rename src/{KubernetesClient => KubernetesClient.Models}/KubernetesObject.cs (100%) rename src/{KubernetesClient/Yaml.cs => KubernetesClient.Models/KubernetesYaml.cs} (91%) rename src/KubernetesClient.Models/{QuantityConverter.cs => ResourceQuantityJsonConverter.cs} (86%) rename src/{KubernetesClient => KubernetesClient.Models}/ResourceQuantityYamlConverter.cs (100%) rename src/{KubernetesClient => KubernetesClient.Models}/StringQuotingEmitter.cs (100%) rename tests/KubernetesClient.Tests/{YamlTests.cs => KubernetesYamlTests.cs} (88%) diff --git a/examples/yaml/Program.cs b/examples/yaml/Program.cs index b15e295..af27ec9 100644 --- a/examples/yaml/Program.cs +++ b/examples/yaml/Program.cs @@ -15,7 +15,7 @@ namespace yaml typeMap.Add("v1/Service", typeof(V1Service)); typeMap.Add("apps/v1/Deployment", typeof(V1Deployment)); - var objects = await Yaml.LoadAllFromFileAsync(args[0], typeMap); + var objects = await KubernetesYaml.LoadAllFromFileAsync(args[0], typeMap); foreach (var obj in objects) { Console.WriteLine(obj); diff --git a/src/KubernetesClient.Basic/Global.cs b/src/KubernetesClient.Basic/Global.cs index 70b3700..52c7eb9 100644 --- a/src/KubernetesClient.Basic/Global.cs +++ b/src/KubernetesClient.Basic/Global.cs @@ -1,5 +1,3 @@ global using System; global using System.Collections.Generic; global using System.Linq; -global using System.Text.Json; -global using System.Text.Json.Serialization; diff --git a/src/KubernetesClient.Models/IntOrStringConverter.cs b/src/KubernetesClient.Models/IntOrStringJsonConverter.cs similarity index 92% rename from src/KubernetesClient.Models/IntOrStringConverter.cs rename to src/KubernetesClient.Models/IntOrStringJsonConverter.cs index b2b2fd3..9b665a3 100644 --- a/src/KubernetesClient.Models/IntOrStringConverter.cs +++ b/src/KubernetesClient.Models/IntOrStringJsonConverter.cs @@ -1,6 +1,6 @@ namespace k8s.Models { - internal sealed class IntOrStringConverter : JsonConverter + internal sealed class IntOrStringJsonConverter : JsonConverter { public override IntstrIntOrString Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { diff --git a/src/KubernetesClient/IntOrStringYamlConverter.cs b/src/KubernetesClient.Models/IntOrStringYamlConverter.cs similarity index 100% rename from src/KubernetesClient/IntOrStringYamlConverter.cs rename to src/KubernetesClient.Models/IntOrStringYamlConverter.cs diff --git a/src/KubernetesClient.Models/IntstrIntOrString.cs b/src/KubernetesClient.Models/IntstrIntOrString.cs index 6685fa0..6f378df 100644 --- a/src/KubernetesClient.Models/IntstrIntOrString.cs +++ b/src/KubernetesClient.Models/IntstrIntOrString.cs @@ -1,6 +1,6 @@ namespace k8s.Models { - [JsonConverter(typeof(IntOrStringConverter))] + [JsonConverter(typeof(IntOrStringJsonConverter))] public partial class IntstrIntOrString { public static implicit operator IntstrIntOrString(int v) diff --git a/src/KubernetesClient/KubeConfigModels/AuthProvider.cs b/src/KubernetesClient.Models/KubeConfigModels/AuthProvider.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/AuthProvider.cs rename to src/KubernetesClient.Models/KubeConfigModels/AuthProvider.cs diff --git a/src/KubernetesClient/KubeConfigModels/Cluster.cs b/src/KubernetesClient.Models/KubeConfigModels/Cluster.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/Cluster.cs rename to src/KubernetesClient.Models/KubeConfigModels/Cluster.cs diff --git a/src/KubernetesClient/KubeConfigModels/ClusterEndpoint.cs b/src/KubernetesClient.Models/KubeConfigModels/ClusterEndpoint.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/ClusterEndpoint.cs rename to src/KubernetesClient.Models/KubeConfigModels/ClusterEndpoint.cs diff --git a/src/KubernetesClient/KubeConfigModels/Context.cs b/src/KubernetesClient.Models/KubeConfigModels/Context.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/Context.cs rename to src/KubernetesClient.Models/KubeConfigModels/Context.cs diff --git a/src/KubernetesClient/KubeConfigModels/ContextDetails.cs b/src/KubernetesClient.Models/KubeConfigModels/ContextDetails.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/ContextDetails.cs rename to src/KubernetesClient.Models/KubeConfigModels/ContextDetails.cs diff --git a/src/KubernetesClient/KubeConfigModels/ExecCredentialResponse.cs b/src/KubernetesClient.Models/KubeConfigModels/ExecCredentialResponse.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/ExecCredentialResponse.cs rename to src/KubernetesClient.Models/KubeConfigModels/ExecCredentialResponse.cs diff --git a/src/KubernetesClient/KubeConfigModels/ExternalExecution.cs b/src/KubernetesClient.Models/KubeConfigModels/ExternalExecution.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/ExternalExecution.cs rename to src/KubernetesClient.Models/KubeConfigModels/ExternalExecution.cs diff --git a/src/KubernetesClient/KubeConfigModels/K8SConfiguration.cs b/src/KubernetesClient.Models/KubeConfigModels/K8SConfiguration.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/K8SConfiguration.cs rename to src/KubernetesClient.Models/KubeConfigModels/K8SConfiguration.cs diff --git a/src/KubernetesClient/KubeConfigModels/NamedExtension.cs b/src/KubernetesClient.Models/KubeConfigModels/NamedExtension.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/NamedExtension.cs rename to src/KubernetesClient.Models/KubeConfigModels/NamedExtension.cs diff --git a/src/KubernetesClient/KubeConfigModels/User.cs b/src/KubernetesClient.Models/KubeConfigModels/User.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/User.cs rename to src/KubernetesClient.Models/KubeConfigModels/User.cs diff --git a/src/KubernetesClient/KubeConfigModels/UserCredentials.cs b/src/KubernetesClient.Models/KubeConfigModels/UserCredentials.cs similarity index 100% rename from src/KubernetesClient/KubeConfigModels/UserCredentials.cs rename to src/KubernetesClient.Models/KubeConfigModels/UserCredentials.cs diff --git a/src/KubernetesClient.Models/KubernetesClient.Models.csproj b/src/KubernetesClient.Models/KubernetesClient.Models.csproj index a3cf59a..3414903 100644 --- a/src/KubernetesClient.Models/KubernetesClient.Models.csproj +++ b/src/KubernetesClient.Models/KubernetesClient.Models.csproj @@ -1,4 +1,4 @@ - + netstandard2.0 k8s.Models @@ -11,8 +11,9 @@ - + + diff --git a/src/KubernetesClient.Basic/KubernetesJson.cs b/src/KubernetesClient.Models/KubernetesJson.cs similarity index 98% rename from src/KubernetesClient.Basic/KubernetesJson.cs rename to src/KubernetesClient.Models/KubernetesJson.cs index 5a66b8c..ff22037 100644 --- a/src/KubernetesClient.Basic/KubernetesJson.cs +++ b/src/KubernetesClient.Models/KubernetesJson.cs @@ -5,7 +5,7 @@ using System.Xml; namespace k8s { - internal static class KubernetesJson + public static class KubernetesJson { private static readonly JsonSerializerOptions JsonSerializerOptions = new JsonSerializerOptions(); diff --git a/src/KubernetesClient/KubernetesObject.cs b/src/KubernetesClient.Models/KubernetesObject.cs similarity index 100% rename from src/KubernetesClient/KubernetesObject.cs rename to src/KubernetesClient.Models/KubernetesObject.cs diff --git a/src/KubernetesClient/Yaml.cs b/src/KubernetesClient.Models/KubernetesYaml.cs similarity index 91% rename from src/KubernetesClient/Yaml.cs rename to src/KubernetesClient.Models/KubernetesYaml.cs index af74dfc..de3c89c 100644 --- a/src/KubernetesClient/Yaml.cs +++ b/src/KubernetesClient.Models/KubernetesYaml.cs @@ -13,7 +13,7 @@ namespace k8s /// /// This is a utility class that helps you load objects from YAML files. /// - public static class Yaml + public static class KubernetesYaml { private static readonly IDeserializer Deserializer = new DeserializerBuilder() @@ -50,7 +50,7 @@ namespace k8s }, t => t); - public class ByteArrayStringYamlConverter : IYamlTypeConverter + private class ByteArrayStringYamlConverter : IYamlTypeConverter { public bool Accepts(Type type) { @@ -179,21 +179,42 @@ namespace k8s } } + [Obsolete("use Deserialize")] public static T LoadFromString(string content) { - var obj = Deserializer.Deserialize(content); - return obj; + return Deserialize(content); } + [Obsolete("use Serialize")] public static string SaveToString(T value) { + return Serialize(value); + } + + public static TValue Deserialize(string yaml) + { + return Deserializer.Deserialize(yaml); + } + + public static TValue Deserialize(Stream yaml) + { + return Deserializer.Deserialize(new StreamReader(yaml)); + } + + public static string Serialize(object value) + { + if (value == null) + { + return ""; + } + var stringBuilder = new StringBuilder(); var writer = new StringWriter(stringBuilder); var emitter = new Emitter(writer); emitter.Emit(new StreamStart()); emitter.Emit(new DocumentStart()); - Serializer.SerializeValue(emitter, value, typeof(T)); + Serializer.SerializeValue(emitter, value, value.GetType()); return stringBuilder.ToString(); } diff --git a/src/KubernetesClient.Models/ResourceQuantity.cs b/src/KubernetesClient.Models/ResourceQuantity.cs index 9d179c7..41af529 100644 --- a/src/KubernetesClient.Models/ResourceQuantity.cs +++ b/src/KubernetesClient.Models/ResourceQuantity.cs @@ -53,7 +53,7 @@ namespace k8s.Models /// writing some sort of special handling code in the hopes that that will /// cause implementors to also use a fixed point implementation. /// - [JsonConverter(typeof(QuantityConverter))] + [JsonConverter(typeof(ResourceQuantityJsonConverter))] public partial class ResourceQuantity { public enum SuffixFormat diff --git a/src/KubernetesClient.Models/QuantityConverter.cs b/src/KubernetesClient.Models/ResourceQuantityJsonConverter.cs similarity index 86% rename from src/KubernetesClient.Models/QuantityConverter.cs rename to src/KubernetesClient.Models/ResourceQuantityJsonConverter.cs index 1dacd5b..3d64f48 100644 --- a/src/KubernetesClient.Models/QuantityConverter.cs +++ b/src/KubernetesClient.Models/ResourceQuantityJsonConverter.cs @@ -1,6 +1,6 @@ namespace k8s.Models { - internal sealed class QuantityConverter : JsonConverter + internal sealed class ResourceQuantityJsonConverter : JsonConverter { public override ResourceQuantity Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { diff --git a/src/KubernetesClient/ResourceQuantityYamlConverter.cs b/src/KubernetesClient.Models/ResourceQuantityYamlConverter.cs similarity index 100% rename from src/KubernetesClient/ResourceQuantityYamlConverter.cs rename to src/KubernetesClient.Models/ResourceQuantityYamlConverter.cs diff --git a/src/KubernetesClient/StringQuotingEmitter.cs b/src/KubernetesClient.Models/StringQuotingEmitter.cs similarity index 100% rename from src/KubernetesClient/StringQuotingEmitter.cs rename to src/KubernetesClient.Models/StringQuotingEmitter.cs diff --git a/src/KubernetesClient/KubernetesClient.csproj b/src/KubernetesClient/KubernetesClient.csproj index f0a3b5e..245f549 100644 --- a/src/KubernetesClient/KubernetesClient.csproj +++ b/src/KubernetesClient/KubernetesClient.csproj @@ -9,7 +9,6 @@ - diff --git a/src/KubernetesClient/KubernetesClientConfiguration.ConfigFile.cs b/src/KubernetesClient/KubernetesClientConfiguration.ConfigFile.cs index 9f35294..9ef6c3f 100644 --- a/src/KubernetesClient/KubernetesClientConfiguration.ConfigFile.cs +++ b/src/KubernetesClient/KubernetesClientConfiguration.ConfigFile.cs @@ -161,7 +161,7 @@ namespace k8s kubeconfig.Position = 0; - var k8SConfig = await Yaml.LoadFromStreamAsync(kubeconfig).ConfigureAwait(false); + var k8SConfig = await KubernetesYaml.LoadFromStreamAsync(kubeconfig).ConfigureAwait(false); var k8SConfiguration = GetKubernetesClientConfiguration(currentContext, masterUrl, k8SConfig); return k8SConfiguration; @@ -639,7 +639,7 @@ namespace k8s using (var stream = kubeconfig.OpenRead()) { - var config = await Yaml.LoadFromStreamAsync(stream).ConfigureAwait(false); + var config = await KubernetesYaml.LoadFromStreamAsync(stream).ConfigureAwait(false); if (useRelativePaths) { @@ -669,7 +669,7 @@ namespace k8s /// Instance of the class public static async Task LoadKubeConfigAsync(Stream kubeconfigStream) { - return await Yaml.LoadFromStreamAsync(kubeconfigStream).ConfigureAwait(false); + return await KubernetesYaml.LoadFromStreamAsync(kubeconfigStream).ConfigureAwait(false); } /// diff --git a/tests/KubernetesClient.Tests/KubernetesClientConfigurationTests.cs b/tests/KubernetesClient.Tests/KubernetesClientConfigurationTests.cs index 1720bd3..5065b80 100644 --- a/tests/KubernetesClient.Tests/KubernetesClientConfigurationTests.cs +++ b/tests/KubernetesClient.Tests/KubernetesClientConfigurationTests.cs @@ -445,7 +445,7 @@ namespace k8s.Tests public void LoadKubeConfigExplicitFilePath() { var txt = File.ReadAllText("assets/kubeconfig.yml"); - var expectedCfg = Yaml.LoadFromString(txt); + var expectedCfg = KubernetesYaml.LoadFromString(txt); var cfg = KubernetesClientConfiguration.LoadKubeConfig("assets/kubeconfig.yml"); @@ -458,7 +458,7 @@ namespace k8s.Tests { var filePath = "assets/kubeconfig.yml"; var txt = File.ReadAllText(filePath); - var expectedCfg = Yaml.LoadFromString(txt); + var expectedCfg = KubernetesYaml.LoadFromString(txt); var fileInfo = new FileInfo(filePath); var cfg = KubernetesClientConfiguration.LoadKubeConfig(fileInfo); @@ -472,7 +472,7 @@ namespace k8s.Tests { var filePath = "assets/kubeconfig.yml"; var txt = File.ReadAllText(filePath); - var expectedCfg = Yaml.LoadFromString(txt); + var expectedCfg = KubernetesYaml.LoadFromString(txt); var fileInfo = new FileInfo(filePath); K8SConfiguration cfg; @@ -524,7 +524,7 @@ namespace k8s.Tests public void LoadSameKubeConfigFromEnvironmentVariableUnmodified() { var txt = File.ReadAllText("assets/kubeconfig.yml"); - var expectedCfg = Yaml.LoadFromString(txt); + var expectedCfg = KubernetesYaml.LoadFromString(txt); var fileInfo = new FileInfo(Path.GetFullPath("assets/kubeconfig.yml")); @@ -537,7 +537,7 @@ namespace k8s.Tests public void LoadKubeConfigWithAdditionalProperties() { var txt = File.ReadAllText("assets/kubeconfig.additional-properties.yml"); - var expectedCfg = Yaml.LoadFromString(txt); + var expectedCfg = KubernetesYaml.LoadFromString(txt); var fileInfo = new FileInfo(Path.GetFullPath("assets/kubeconfig.additional-properties.yml")); diff --git a/tests/KubernetesClient.Tests/YamlTests.cs b/tests/KubernetesClient.Tests/KubernetesYamlTests.cs similarity index 88% rename from tests/KubernetesClient.Tests/YamlTests.cs rename to tests/KubernetesClient.Tests/KubernetesYamlTests.cs index c1597ae..ac8c228 100644 --- a/tests/KubernetesClient.Tests/YamlTests.cs +++ b/tests/KubernetesClient.Tests/KubernetesYamlTests.cs @@ -8,7 +8,7 @@ using Xunit; namespace k8s.Tests { - public class YamlTests + public class KubernetesYamlTests { [Fact] public void LoadAllFromString() @@ -23,7 +23,7 @@ kind: Namespace metadata: name: ns"; - var objs = Yaml.LoadAllFromString(content); + var objs = KubernetesYaml.LoadAllFromString(content); Assert.Equal(2, objs.Count); Assert.IsType(objs[0]); Assert.IsType(objs[1]); @@ -53,7 +53,7 @@ kind: Namespace metadata: name: ns"; - var objs = Yaml.LoadAllFromString(content, types); + var objs = KubernetesYaml.LoadAllFromString(content, types); Assert.Equal(2, objs.Count); Assert.IsType(objs[0]); Assert.IsType(objs[1]); @@ -77,7 +77,7 @@ metadata: name: ns youDontKnow: Me"; - var objs = Yaml.LoadAllFromString(content); + var objs = KubernetesYaml.LoadAllFromString(content); Assert.Equal(2, objs.Count); Assert.IsType(objs[0]); Assert.IsType(objs[1]); @@ -104,7 +104,7 @@ metadata: name: ns youDontKnow: Me"; - var objs = Yaml.LoadAllFromString(content, types); + var objs = KubernetesYaml.LoadAllFromString(content, types); Assert.Equal(2, objs.Count); Assert.IsType(objs[0]); Assert.IsType(objs[1]); @@ -131,7 +131,7 @@ metadata: { await File.WriteAllTextAsync(tempFileName, content).ConfigureAwait(false); - var objs = await Yaml.LoadAllFromFileAsync(tempFileName).ConfigureAwait(false); + var objs = await KubernetesYaml.LoadAllFromFileAsync(tempFileName).ConfigureAwait(false); Assert.Equal(2, objs.Count); Assert.IsType(objs[0]); Assert.IsType(objs[1]); @@ -168,7 +168,7 @@ metadata: { await File.WriteAllTextAsync(tempFileName, content).ConfigureAwait(false); - var objs = await Yaml.LoadAllFromFileAsync(tempFileName, types).ConfigureAwait(false); + var objs = await KubernetesYaml.LoadAllFromFileAsync(tempFileName, types).ConfigureAwait(false); Assert.Equal(2, objs.Count); Assert.IsType(objs[0]); Assert.IsType(objs[1]); @@ -193,7 +193,7 @@ metadata: name: foo "; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.Equal("foo", obj.Metadata.Name); } @@ -208,7 +208,7 @@ metadata: youDontKnow: Me "; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.Equal("foo", obj.Metadata.Name); } @@ -223,7 +223,7 @@ metadata: youDontKnow: Me "; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.Equal("foo", obj.Metadata.Name); } @@ -238,7 +238,7 @@ metadata: name: foo "; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.Equal("foo", obj.Metadata.Name); Assert.Equal("bar", obj.Metadata.NamespaceProperty); @@ -264,7 +264,7 @@ spec: readOnly: false "; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.True(obj.Spec.Containers[0].VolumeMounts[0].ReadOnlyProperty); Assert.False(obj.Spec.Containers[0].VolumeMounts[1].ReadOnlyProperty); @@ -281,7 +281,7 @@ metadata: using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(content))) { - var obj = Yaml.LoadFromStreamAsync(stream).Result; + var obj = KubernetesYaml.LoadFromStreamAsync(stream).Result; Assert.Equal("foo", obj.Metadata.Name); } @@ -301,7 +301,7 @@ metadata: { await File.WriteAllTextAsync(tempFileName, content).ConfigureAwait(false); - var obj = await Yaml.LoadFromFileAsync(tempFileName).ConfigureAwait(false); + var obj = await KubernetesYaml.LoadFromFileAsync(tempFileName).ConfigureAwait(false); Assert.Equal("foo", obj.Metadata.Name); } finally @@ -318,10 +318,10 @@ metadata: { var content = @"namespace: foo"; - var deserialized = Yaml.LoadFromString(content); + var deserialized = KubernetesYaml.LoadFromString(content); Assert.Equal("foo", deserialized.NamespaceProperty); - var serialized = Yaml.SaveToString(deserialized); + var serialized = KubernetesYaml.SaveToString(deserialized); Assert.Equal(content, serialized); } @@ -330,7 +330,7 @@ metadata: { var pod = new V1Pod() { ApiVersion = "v1", Kind = "Pod", Metadata = new V1ObjectMeta() { Name = "foo" } }; - var yaml = Yaml.SaveToString(pod); + var yaml = KubernetesYaml.SaveToString(pod); Assert.Equal( ToLines(@"apiVersion: v1 kind: Pod @@ -348,7 +348,7 @@ metadata: Metadata = new V1ObjectMeta() { Name = "foo", NamespaceProperty = "bar" }, }; - var yaml = Yaml.SaveToString(pod); + var yaml = KubernetesYaml.SaveToString(pod); Assert.Equal( ToLines(@"apiVersion: v1 kind: Pod @@ -388,7 +388,7 @@ metadata: }, }; - var yaml = Yaml.SaveToString(pod); + var yaml = KubernetesYaml.SaveToString(pod); Assert.Equal( ToLines(@"apiVersion: v1 kind: Pod @@ -446,7 +446,7 @@ spec: - -cpus - ""2"""; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.NotNull(obj?.Spec?.Containers); var container = Assert.Single(obj.Spec.Containers); @@ -476,7 +476,7 @@ spec: targetPort: 3000 "; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.Equal(3000, obj.Spec.Ports[0].Port); Assert.Equal(3000, int.Parse(obj.Spec.Ports[0].TargetPort)); @@ -508,7 +508,7 @@ spec: }, }; - var output = Yaml.SaveToString(obj); + var output = KubernetesYaml.SaveToString(obj); Assert.Equal(ToLines(output), ToLines(content)); } @@ -534,11 +534,11 @@ spec: value: ""false"" image: vish/stress name: cpu-demo-ctr"; - var obj = Yaml.LoadFromString(content); + var obj = KubernetesYaml.LoadFromString(content); Assert.NotNull(obj?.Spec?.Containers); var container = Assert.Single(obj.Spec.Containers); Assert.NotNull(container.Env); - var objStr = Yaml.SaveToString(obj); + var objStr = KubernetesYaml.SaveToString(obj); Assert.Equal(content.Replace("\r\n", "\n"), objStr.Replace("\r\n", "\n")); } @@ -555,7 +555,7 @@ data: password: Mzk1MjgkdmRnN0pi "; - var result = Yaml.LoadFromString(kManifest); + var result = KubernetesYaml.LoadFromString(kManifest); Assert.Equal("bXktYXBw", Encoding.UTF8.GetString(result.Data["username"])); Assert.Equal("Mzk1MjgkdmRnN0pi", Encoding.UTF8.GetString(result.Data["password"])); } @@ -589,7 +589,7 @@ spec: served: true storage: true "; - var result = Yaml.LoadFromString(kManifest); + var result = KubernetesYaml.LoadFromString(kManifest); Assert.Single(result?.Spec?.Versions); var ver = result.Spec.Versions[0]; Assert.Equal(true, ver?.Schema?.OpenAPIV3Schema?.XKubernetesIntOrString); diff --git a/tests/KubernetesClient.Tests/QuantityValueTests.cs b/tests/KubernetesClient.Tests/QuantityValueTests.cs index bb8c8bf..aeb2aa7 100644 --- a/tests/KubernetesClient.Tests/QuantityValueTests.cs +++ b/tests/KubernetesClient.Tests/QuantityValueTests.cs @@ -211,14 +211,14 @@ namespace k8s.Tests [Fact] public void DeserializeYaml() { - var value = Yaml.LoadFromString("\"1\""); + var value = KubernetesYaml.LoadFromString("\"1\""); Assert.Equal(new ResourceQuantity(1, 0, DecimalSI), value); } [Fact] public void SerializeYaml() { - var value = Yaml.SaveToString(new ResourceQuantity(1, -1, DecimalSI)); + var value = KubernetesYaml.SaveToString(new ResourceQuantity(1, -1, DecimalSI)); Assert.Equal("100m", value); } }