jfrog / jenkins-jfrog-plugin

Easy integration between Jenkins and the JFrog Platform.
https://github.com/jfrog/jenkins-jfrog-plugin
Apache License 2.0
39 stars 17 forks source link

Cannot export to Configuration as Code #31

Closed larsskj closed 1 year ago

larsskj commented 1 year ago

Describe the bug

Jenkins CasC (Configuration as Code) cannot export plugin settings.

Current behavior

When making the standard CasC dump of the running configuration in Jenkins, the parts related to this plugin shows:

  jFrogPlatformBuilder:
    jfrogInstances: |-
      FAILED TO EXPORT
      io.jenkins.plugins.jfrog.configuration.JFrogPlatformBuilder$DescriptorImpl#jfrogInstances: io.jenkins.plugins.casc.ConfiguratorException: Can't read attribute 'platformUrl' from io.jenkins.plugins.jfrog.configuration.JFrogPlatformInstance@2daa7334
        at io.jenkins.plugins.casc.Attribute._getValue(Attribute.java:461)
        at io.jenkins.plugins.casc.Attribute.getValue(Attribute.java:235)
        at io.jenkins.plugins.casc.impl.configurators.DataBoundConfigurator.describe(DataBoundConfigurator.java:289)
        at io.jenkins.plugins.casc.Attribute._describe(Attribute.java:328)
        at io.jenkins.plugins.casc.Attribute.describe(Attribute.java:257)
        at io.jenkins.plugins.casc.Configurator.describe(Configurator.java:183)
        at io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator.describe(GlobalConfigurationCategoryConfigurator.java:114)
        at io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator.lambda$describe$3(GlobalConfigurationCategoryConfigurator.java:107)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
        at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
        at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
        at io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator.describe(GlobalConfigurationCategoryConfigurator.java:107)
        at io.jenkins.plugins.casc.impl.configurators.GlobalConfigurationCategoryConfigurator.describe(GlobalConfigurationCategory

Tested on several Jenkins instances.

Reproduction steps

Go to Jenkins CasC in the UI.

Click 'View Configuration'. Scroll down to the relevant JFrog section.

Expected behavior

A normal YAML config section like the rest of the services.

JFrog plugin version

1.0.5

JFrog CLI version

latest

Operating system type and version

Jenkins stock Docker image - currently 2.391 and 2.392

JFrog Artifactory version

No response

JFrog Xray version

No response

yahavi commented 1 year ago

@larsskj Jenkins JFrog plugin 1.1.0 is released. This version includes support for JCasC. Find the documentation in the README: https://github.com/jfrog/jenkins-jfrog-plugin#jenkins-configuration-as-code We'd appreciate your feedback on that!

larsskj commented 1 year ago

Thanks for fixing this. I can confirm that it now works as expected on our servers.