From 9499cd8ba9a34bbbae3e2ccefbd98bb805bee9d2 Mon Sep 17 00:00:00 2001 From: Brendan Burns <5751682+brendandburns@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:37:34 +0000 Subject: [PATCH] Fix up patches for new codegen. --- scripts/patches/json.diff | 29 +++++++++++++++-------------- scripts/patches/list-meta.diff | 11 +++++------ scripts/patches/secret.diff | 12 +++++++----- scripts/patches/status.diff | 10 +++++----- 4 files changed, 32 insertions(+), 30 deletions(-) diff --git a/scripts/patches/json.diff b/scripts/patches/json.diff index 1ffe2ccc4d..76c459e370 100644 --- a/scripts/patches/json.diff +++ b/scripts/patches/json.diff @@ -1,5 +1,5 @@ diff --git a/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java b/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java -index 4406c2199..f56413a25 100644 +index 8d0f4c47d..cff284332 100644 --- a/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java +++ b/kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java @@ -23,6 +23,8 @@ import com.google.gson.JsonElement; @@ -11,21 +11,21 @@ index 4406c2199..f56413a25 100644 import okio.ByteString; import java.io.IOException; -@@ -34,6 +36,9 @@ import java.text.ParsePosition; - import java.time.LocalDate; +@@ -34,7 +36,9 @@ import java.time.LocalDate; import java.time.OffsetDateTime; - import java.time.format.DateTimeFormatter; + import java.time.ZoneId; + import java.time.ZoneOffset; +-import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.time.format.DateTimeParseException; +import java.time.temporal.ChronoField; import java.util.Date; import java.util.Locale; import java.util.Map; -@@ -48,9 +53,19 @@ import java.util.HashMap; +@@ -50,9 +54,19 @@ import java.util.TimeZone; public class JSON { private static Gson gson; private static boolean isLenientOnJson = false; -+ + private static final DateTimeFormatter RFC3339MICRO_FORMATTER = + new DateTimeFormatterBuilder() + .parseDefaulting(ChronoField.OFFSET_SECONDS, 0) @@ -35,6 +35,7 @@ index 4406c2199..f56413a25 100644 + .optionalEnd() + .appendLiteral("Z") + .toFormatter(); ++ private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); - private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); @@ -42,24 +43,25 @@ index 4406c2199..f56413a25 100644 private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter(); -@@ -58,7 +73,10 @@ public class JSON { +@@ -65,7 +79,10 @@ public class JSON { public static GsonBuilder createGson() { GsonFireBuilder fireBuilder = new GsonFireBuilder() ; - GsonBuilder builder = fireBuilder.createGsonBuilder(); + GsonBuilder builder = -+ fireBuilder -+ .registerPreProcessor(V1Status.class, new V1StatusPreProcessor()) -+ .createGsonBuilder(); ++ fireBuilder ++ .registerPreProcessor(V1Status.class, new V1StatusPreProcessor()) ++ .createGsonBuilder(); return builder; } -@@ -721,11 +739,14 @@ public class JSON { +@@ -784,11 +801,15 @@ public class JSON { @Override public void write(JsonWriter out, byte[] value) throws IOException { + boolean oldHtmlSafe = out.isHtmlSafe(); + out.setHtmlSafe(false); ++ if (value == null) { out.nullValue(); } else { @@ -69,17 +71,16 @@ index 4406c2199..f56413a25 100644 } @Override -@@ -781,7 +802,12 @@ public class JSON { +@@ -844,6 +865,12 @@ public class JSON { if (date.endsWith("+0000")) { date = date.substring(0, date.length()-5) + "Z"; } -- return OffsetDateTime.parse(date, formatter); + try { + return OffsetDateTime.parse(date, formatter); + } catch (DateTimeParseException e) { + // backward-compatibility for ISO8601 timestamp format + return OffsetDateTime.parse(date, DateTimeFormatter.ISO_OFFSET_DATE_TIME); + } + return OffsetDateTime.parse(date, formatter); } } - } diff --git a/scripts/patches/list-meta.diff b/scripts/patches/list-meta.diff index f1fe29fc18..bcf592b6b8 100644 --- a/scripts/patches/list-meta.diff +++ b/scripts/patches/list-meta.diff @@ -1,15 +1,14 @@ diff --git a/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1ListMeta.java b/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1ListMeta.java -index 60381b312..7fb47e230 100644 +index f161284a2..d3d563bbb 100644 --- a/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1ListMeta.java +++ b/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1ListMeta.java -@@ -266,7 +266,9 @@ public class V1ListMeta { +@@ -258,7 +258,8 @@ public class V1ListMeta { @Override public V1ListMeta read(JsonReader in) throws IOException { - JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); -- validateJsonObject(jsonObj); -+ + JsonElement jsonElement = elementAdapter.read(in); +- validateJsonElement(jsonElement); + // Disable validation so delete API can tolerate non-status return object (graceful deletion) + // validateJsonObject(jsonObj); - return thisAdapter.fromJsonTree(jsonObj); + return thisAdapter.fromJsonTree(jsonElement); } diff --git a/scripts/patches/secret.diff b/scripts/patches/secret.diff index e14b746561..52edc00a3e 100644 --- a/scripts/patches/secret.diff +++ b/scripts/patches/secret.diff @@ -1,20 +1,22 @@ diff --git a/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Secret.java b/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Secret.java -index 8fdadaac6..5fe296242 100644 +index 5684f4776..aa77bd40f 100644 --- a/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Secret.java +++ b/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Secret.java -@@ -19,6 +19,7 @@ import com.google.gson.annotations.JsonAdapter; +@@ -18,6 +18,7 @@ import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import io.kubernetes.client.custom.MapUtils; import io.kubernetes.client.openapi.models.V1ObjectMeta; import java.io.IOException; - import java.util.HashMap; -@@ -259,7 +260,7 @@ public class V1Secret implements io.kubernetes.client.common.KubernetesObject { + import java.util.Arrays; +@@ -243,8 +244,8 @@ public class V1Secret implements io.kubernetes.client.common.KubernetesObject { + return false; } V1Secret v1Secret = (V1Secret) o; - return Objects.equals(this.apiVersion, v1Secret.apiVersion) && +- return Objects.equals(this.apiVersion, v1Secret.apiVersion) && - Objects.equals(this.data, v1Secret.data) && ++ return Objects.equals(this.apiVersion, v1Secret.apiVersion) && + MapUtils.equals(this.data, v1Secret.data) && Objects.equals(this.immutable, v1Secret.immutable) && Objects.equals(this.kind, v1Secret.kind) && diff --git a/scripts/patches/status.diff b/scripts/patches/status.diff index 94c6717644..eae74877b7 100644 --- a/scripts/patches/status.diff +++ b/scripts/patches/status.diff @@ -1,14 +1,14 @@ diff --git a/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Status.java b/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Status.java -index b2b6db803..8a8a9765d 100644 +index b529e3455..c2268419a 100644 --- a/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Status.java +++ b/kubernetes/src/main/java/io/kubernetes/client/openapi/models/V1Status.java -@@ -394,7 +394,8 @@ public class V1Status { +@@ -378,7 +378,8 @@ public class V1Status { @Override public V1Status read(JsonReader in) throws IOException { - JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject(); -- validateJsonObject(jsonObj); + JsonElement jsonElement = elementAdapter.read(in); +- validateJsonElement(jsonElement); + // Disable validation so delete API can tolerate non-status return object (graceful deletion) + // validateJsonObject(jsonObj); - return thisAdapter.fromJsonTree(jsonObj); + return thisAdapter.fromJsonTree(jsonElement); }