Fix strict yaml parsing (#1061)
This commit is contained in:
@@ -157,8 +157,8 @@ namespace k8s
|
|||||||
parser.Consume<StreamStart>();
|
parser.Consume<StreamStart>();
|
||||||
while (parser.Accept<DocumentStart>(out _))
|
while (parser.Accept<DocumentStart>(out _))
|
||||||
{
|
{
|
||||||
var obj = GetDeserializer(strict).Deserialize<KubernetesObject>(parser);
|
var dict = GetDeserializer(strict).Deserialize<Dictionary<object, object>>(parser);
|
||||||
types.Add(mergedTypeMap[obj.ApiVersion + "/" + obj.Kind]);
|
types.Add(mergedTypeMap[dict["apiVersion"] + "/" + dict["kind"]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
parser = new Parser(new StringReader(content));
|
parser = new Parser(new StringReader(content));
|
||||||
|
|||||||
@@ -275,7 +275,7 @@ spec:
|
|||||||
readOnly: false
|
readOnly: false
|
||||||
";
|
";
|
||||||
|
|
||||||
var obj = KubernetesYaml.Deserialize<V1Pod>(content);
|
var obj = KubernetesYaml.Deserialize<V1Pod>(content, true);
|
||||||
|
|
||||||
Assert.True(obj.Spec.Containers[0].VolumeMounts[0].ReadOnlyProperty);
|
Assert.True(obj.Spec.Containers[0].VolumeMounts[0].ReadOnlyProperty);
|
||||||
Assert.False(obj.Spec.Containers[0].VolumeMounts[1].ReadOnlyProperty);
|
Assert.False(obj.Spec.Containers[0].VolumeMounts[1].ReadOnlyProperty);
|
||||||
@@ -476,7 +476,7 @@ spec:
|
|||||||
- -cpus
|
- -cpus
|
||||||
- ""2""";
|
- ""2""";
|
||||||
|
|
||||||
var obj = KubernetesYaml.Deserialize<V1Pod>(content);
|
var obj = KubernetesYaml.Deserialize<V1Pod>(content, true);
|
||||||
|
|
||||||
Assert.NotNull(obj?.Spec?.Containers);
|
Assert.NotNull(obj?.Spec?.Containers);
|
||||||
var container = Assert.Single(obj.Spec.Containers);
|
var container = Assert.Single(obj.Spec.Containers);
|
||||||
@@ -811,7 +811,7 @@ data:
|
|||||||
password: Mzk1MjgkdmRnN0pi
|
password: Mzk1MjgkdmRnN0pi
|
||||||
";
|
";
|
||||||
|
|
||||||
var result = KubernetesYaml.Deserialize<V1Secret>(kManifest);
|
var result = KubernetesYaml.Deserialize<V1Secret>(kManifest, true);
|
||||||
Assert.Equal("bXktYXBw", Encoding.UTF8.GetString(result.Data["username"]));
|
Assert.Equal("bXktYXBw", Encoding.UTF8.GetString(result.Data["username"]));
|
||||||
Assert.Equal("Mzk1MjgkdmRnN0pi", Encoding.UTF8.GetString(result.Data["password"]));
|
Assert.Equal("Mzk1MjgkdmRnN0pi", Encoding.UTF8.GetString(result.Data["password"]));
|
||||||
}
|
}
|
||||||
@@ -890,7 +890,7 @@ spec:
|
|||||||
var objs = KubernetesYaml.LoadAllFromString(content, new Dictionary<string, Type>
|
var objs = KubernetesYaml.LoadAllFromString(content, new Dictionary<string, Type>
|
||||||
{
|
{
|
||||||
{ $"{V1AlphaFoo.KubeGroup}/{V1AlphaFoo.KubeApiVersion}/Foo", typeof(V1AlphaFoo) },
|
{ $"{V1AlphaFoo.KubeGroup}/{V1AlphaFoo.KubeApiVersion}/Foo", typeof(V1AlphaFoo) },
|
||||||
});
|
}, true);
|
||||||
Assert.Single(objs);
|
Assert.Single(objs);
|
||||||
var v1AlphaFoo = Assert.IsType<V1AlphaFoo>(objs[0]);
|
var v1AlphaFoo = Assert.IsType<V1AlphaFoo>(objs[0]);
|
||||||
Assert.Equal("foo", v1AlphaFoo.Metadata.Name);
|
Assert.Equal("foo", v1AlphaFoo.Metadata.Name);
|
||||||
|
|||||||
Reference in New Issue
Block a user