From 5ed7938ea31f77e00649d4a1f7356a76a744aabf Mon Sep 17 00:00:00 2001 From: Alex Clemmer Date: Fri, 23 Nov 2018 16:07:42 -0800 Subject: [PATCH] Don't require names for anything that looks like a list --- pkg/gen/nodejs-templates/provider.ts.mustache | 4 ++-- sdk/nodejs/provider.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/gen/nodejs-templates/provider.ts.mustache b/pkg/gen/nodejs-templates/provider.ts.mustache index e4b584cd92..58c7e81e21 100644 --- a/pkg/gen/nodejs-templates/provider.ts.mustache +++ b/pkg/gen/nodejs-templates/provider.ts.mustache @@ -219,7 +219,7 @@ export namespace yaml { // Flatten `v1.List`. `v1.List` is an undocumented Kubernetes resource, and does not appear // in the Kubernetes OpenAPI spec. `kubectl`, ksonnet, and Helm all flatten it. - if (apiVersion == "v1" && kind == "List") { + if ((apiVersion == "v1" && kind == "List") || ("items" in obj && !("metadata" in obj) || !("name" in obj["metadata"]))) { const objs = []; const items = obj["items"] || []; for (const item of items) { @@ -229,7 +229,7 @@ export namespace yaml { } if (!("metadata" in obj) || !("name" in obj["metadata"])) { - throw new Error(`YAML object does not have a .metadata.name: ${JSON.stringify(obj)}`) + throw new Error(`YAML object does not have a .metadata.name: ${obj.apiVersion}/${obj.kind} ${JSON.stringify(obj.metadata)}`) } const meta = obj["metadata"]; diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts index e21f7854ce..dd42133fea 100755 --- a/sdk/nodejs/provider.ts +++ b/sdk/nodejs/provider.ts @@ -2043,7 +2043,7 @@ export namespace yaml { // Flatten `v1.List`. `v1.List` is an undocumented Kubernetes resource, and does not appear // in the Kubernetes OpenAPI spec. `kubectl`, ksonnet, and Helm all flatten it. - if (apiVersion == "v1" && kind == "List") { + if ((apiVersion == "v1" && kind == "List") || ("items" in obj && !("metadata" in obj) || !("name" in obj["metadata"]))) { const objs = []; const items = obj["items"] || []; for (const item of items) { @@ -2053,7 +2053,7 @@ export namespace yaml { } if (!("metadata" in obj) || !("name" in obj["metadata"])) { - throw new Error(`YAML object does not have a .metadata.name: ${JSON.stringify(obj)}`) + throw new Error(`YAML object does not have a .metadata.name: ${obj.apiVersion}/${obj.kind} ${JSON.stringify(obj.metadata)}`) } const meta = obj["metadata"];