Making a change in Script console using Groovy and then envoke 
project.save(), why is it that when I try to read the value again it does 
not show the changed value, but the old one.

For instance given this groovy script to add some environment variables.
#!/usr/bin/env groovy

import java.lang.StringBuilder
import hudson.matrix.MatrixProject
import org.jenkinsci.plugins.envinject.EnvInjectJobProperty
import org.jenkinsci.plugins.envinject.EnvInjectJobPropertyInfo

def jenkinsInstance = jenkins.model.Jenkins.getInstance()
def developmentView = jenkinsInstance.getView("myView")
developmentView.getItems().each { project ->

    StringBuilder builder = new StringBuilder()
    builder.append("NO_CPPCHECK=true")
    builder.append("\n")
    builder.append("NO_INSTALL=true")
    final def propertiesContent = builder.toString()

    def info = new EnvInjectJobPropertyInfo(null, propertiesContent, null, 
null, null, false)
    def property = new EnvInjectJobProperty()
    property.setOn(true)
    property.setKeepJenkinsSystemVariables(true)
    property.setKeepBuildVariables(true)
    property.setInfo(info)

    project.addProperty(property)
    project.save()
}

Trying to read the same environment variables
#!/usr/bin/env groovy

import org.jenkinsci.plugins.envinject.EnvInjectJobProperty
import org.jenkinsci.plugins.envinject.EnvInjectJobPropertyInfo

def jenkinsInstance = jenkins.model.Jenkins.getInstance()
def developmentView = jenkinsInstance.getView("myView")
developmentView.getItems().each { project ->
  def EnvInjectJobProperty property = 
project.getProperty(EnvInjectJobProperty.class)
  if (property != null) {
    def info = property.getInfo()
    println info.getPropertiesContent()
  }
}

Not all projects now shows the environment variables.

onsdag 13. april 2016 09.47.23 UTC+2 skrev Sverre Moe følgende:
>
> I am not sure what I am doing wrong with my groovy script.
> I have written a groovy update script to bulk update all my projects.
> Sometimes it does not take affect when I call project.save()
> I can open that project configuration page and everything looks right. The 
> updated content is there.
> However when I write a groovy read script to print out that information I 
> updated, not all projects show the updated information.
> If I then open those projects configuration page, do nothing and just 
> press save then that information is available when I run the read script 
> again.
>
> Do I need to perform some other action than just project.save()
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/c87d1759-966c-4d90-89cf-361784b240fe%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to