From 260d02e12a3df229ef2ee6f671d2eada5a88e93d Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Tue, 18 Jul 2023 15:48:02 +0200 Subject: [PATCH] parse virtual-host-gatherer null value (#7282) --- .../com/suse/manager/gatherer/GathererJsonIO.java | 12 ++++++++++-- .../manager/gatherer/test/GathererJsonIOTest.java | 8 +++++++- .../com/suse/manager/gatherer/test/modulelist.json | 6 ++++++ java/spacewalk-java.changes.mbussolotto.parse_null | 1 + 4 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 java/spacewalk-java.changes.mbussolotto.parse_null diff --git a/java/code/src/com/suse/manager/gatherer/GathererJsonIO.java b/java/code/src/com/suse/manager/gatherer/GathererJsonIO.java index bf425bd87963..fc1a25c47ad6 100644 --- a/java/code/src/com/suse/manager/gatherer/GathererJsonIO.java +++ b/java/code/src/com/suse/manager/gatherer/GathererJsonIO.java @@ -26,6 +26,7 @@ import com.google.gson.TypeAdapter; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; import java.io.IOException; @@ -100,11 +101,18 @@ public GathererModule read(JsonReader reader) throws IOException { reader.beginObject(); while (reader.hasNext()) { String key = reader.nextName(); + String value = null; + if (reader.peek() == JsonToken.NULL) { + reader.nextNull(); + } + else { + value = reader.nextString(); + } if (key.equals("module")) { - gm.setName(reader.nextString()); + gm.setName(value); } else { - gm.addParameter(key, reader.nextString()); + gm.addParameter(key, value); } } reader.endObject(); diff --git a/java/code/src/com/suse/manager/gatherer/test/GathererJsonIOTest.java b/java/code/src/com/suse/manager/gatherer/test/GathererJsonIOTest.java index e3f7869795b6..b0dffff72ed1 100644 --- a/java/code/src/com/suse/manager/gatherer/test/GathererJsonIOTest.java +++ b/java/code/src/com/suse/manager/gatherer/test/GathererJsonIOTest.java @@ -55,9 +55,10 @@ public void testReadGathererModules() throws Exception { FileUtils.readStringFromFile(TestUtils.findTestData(MODULELIST).getPath()); Map mods = new GathererJsonIO().readGathererModules(json); - assertEquals(2, mods.keySet().size()); + assertEquals(3, mods.keySet().size()); assertTrue(mods.keySet().contains("VMware")); assertTrue(mods.keySet().contains("SUSECloud")); + assertTrue(mods.keySet().contains("Libvirt")); for (GathererModule g : mods.values()) { if (g.getName().equals("VMware")) { @@ -76,6 +77,11 @@ else if (g.getName().equals("SUSECloud")) { assertTrue(g.getParameters().containsKey("protocol")); assertTrue(g.getParameters().containsKey("tenant")); } + else if (g.getName().equals("Libvirt")) { + assertTrue(g.getParameters().containsKey("uri")); + assertTrue(g.getParameters().containsKey("sasl_username")); + assertTrue(g.getParameters().containsKey("sasl_password")); + } else { fail("Unknown Module"); } diff --git a/java/code/src/com/suse/manager/gatherer/test/modulelist.json b/java/code/src/com/suse/manager/gatherer/test/modulelist.json index 12f3d18e73f1..64613aab280c 100644 --- a/java/code/src/com/suse/manager/gatherer/test/modulelist.json +++ b/java/code/src/com/suse/manager/gatherer/test/modulelist.json @@ -14,6 +14,12 @@ "port": 443, "username": "", "password": "" + }, + "Libvirt": { + "module": "Libvirt", + "uri": "", + "sasl_username": null, + "sasl_password": null } } diff --git a/java/spacewalk-java.changes.mbussolotto.parse_null b/java/spacewalk-java.changes.mbussolotto.parse_null new file mode 100644 index 000000000000..6e9a1cd25822 --- /dev/null +++ b/java/spacewalk-java.changes.mbussolotto.parse_null @@ -0,0 +1 @@ +- parse virtual-host-gatherer null value