Skip to content

Commit 540b50a

Browse files
authored
Produce an empty map if so directed (#2712)
1 parent c7ecb73 commit 540b50a

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

integrations/src/test/resources/io/jenkins/plugins/casc/LDAPSecurityRealmTestNoSecretExpected.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ cache:
22
size: 100
33
ttl: 30
44
configurations:
5-
- inhibitInferRootDN: false
5+
- groupMembershipStrategy:
6+
fromGroupSearch: {
7+
}
8+
inhibitInferRootDN: false
69
rootDN: "dc=acme,dc=fr"
710
server: "ldap.acme.com"
811
disableMailAddressResolver: false

plugin/src/main/java/io/jenkins/plugins/casc/ConfigurationAsCode.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -632,9 +632,6 @@ public Node toYaml(CNode config) throws ConfiguratorException {
632632
}
633633
tuples.add(new NodeTuple(new ScalarNode(Tag.STR, entry.getKey(), null, null, PLAIN), valueNode));
634634
}
635-
if (tuples.isEmpty()) {
636-
return null;
637-
}
638635

639636
return new MappingNode(Tag.MAP, tuples, BLOCK);
640637

plugin/src/main/java/io/jenkins/plugins/casc/impl/configurators/GlobalConfigurationCategoryConfigurator.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.jenkins.plugins.casc.model.CNode;
1717
import io.jenkins.plugins.casc.model.Mapping;
1818
import io.jenkins.plugins.casc.model.Scalar;
19+
import io.jenkins.plugins.casc.model.Sequence;
1920
import java.util.List;
2021
import java.util.Set;
2122
import java.util.logging.Logger;
@@ -109,6 +110,11 @@ public CNode describe(GlobalConfigurationCategory instance, ConfigurationContext
109110
Jenkins.get().getExtensionList(Descriptor.class).stream()
110111
.filter(this::filterDescriptors)
111112
.forEach(d -> describe(d, mapping, context));
113+
mapping.entrySet()
114+
.removeIf(e -> e.getValue() instanceof Mapping m
115+
&& m.keySet().equals(Set.of("installations"))
116+
&& m.get("installations") instanceof Sequence s
117+
&& s.isEmpty());
112118
return mapping;
113119
}
114120

0 commit comments

Comments
 (0)