Class SwarmAgentTemplateConfigurator
java.lang.Object
io.jenkins.plugins.casc.BaseConfigurator<SwarmAgentTemplate>
io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator<SwarmAgentTemplate>
io.jenkins.plugins.swarmcloud.casc.SwarmAgentTemplateConfigurator
- All Implemented Interfaces:
io.jenkins.plugins.casc.Configurator<SwarmAgentTemplate>
@OptionalExtension(requirePlugins="configuration-as-code")
public class SwarmAgentTemplateConfigurator
extends io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator<SwarmAgentTemplate>
Custom CasC
Configurator for SwarmAgentTemplate.
Fixes two CasC export problems caused by the docker-swarm-plugin compatibility surface:
- Infinite recursion /
StackOverflowError.SwarmAgentTemplatecarries a back-reference to its owningSwarmCloudvia publicsetParent(SwarmCloud)/getParent(). CasC's introspection picks up that getter/setter pair as an exportable attribute and recursescloud → templates → template → parent → cloud → .... We exclude it from introspection here so the cycle never starts. - Duplicate keys for alias setters.
SwarmAgentTemplateexposes many parallel@DataBoundSetters (label/labelString,workingDir/remoteFs,limitsNanoCPUs/cpuLimit,*Stringvariants, etc.) so that YAML written for the legacy docker-swarm-plugin still imports cleanly. Each setter creates its own CasCAttribute, which produced duplicated sibling keys on export. We strip the alias keys after the underlying configurator has computed the export mapping — the canonical key still carries the value, and the alias setters remain wired for backwards-compatible import.
-
Nested Class Summary
Nested classes/interfaces inherited from class io.jenkins.plugins.casc.BaseConfigurator
io.jenkins.plugins.casc.BaseConfigurator.TypePair -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionio.jenkins.plugins.casc.model.CNodedescribe(SwarmAgentTemplate instance, io.jenkins.plugins.casc.ConfigurationContext context) Methods inherited from class io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator
check, configure, describe, getDataBoundConstructor, getDisplayName, getImplementedAPI, getName, getNames, getTarget, instanceMethods inherited from class io.jenkins.plugins.casc.BaseConfigurator
compare, configure, createAttribute, equals, handleUnknown, hashCodeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jenkins.plugins.casc.Configurator
canConfigure, describeStructure, getAttributes, getConfigurators
-
Constructor Details
-
SwarmAgentTemplateConfigurator
public SwarmAgentTemplateConfigurator()
-
-
Method Details
-
exclusions
- Overrides:
exclusionsin classio.jenkins.plugins.casc.BaseConfigurator<SwarmAgentTemplate>
-
describe
public io.jenkins.plugins.casc.model.CNode describe(SwarmAgentTemplate instance, io.jenkins.plugins.casc.ConfigurationContext context) throws Exception - Specified by:
describein interfaceio.jenkins.plugins.casc.Configurator<SwarmAgentTemplate>- Overrides:
describein classio.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator<SwarmAgentTemplate>- Throws:
Exception
-