I have seen that mentioned somewhere in the past. But i am baffled as to
why things works in the master and fails in the slave/agent.
Can anyone spot where i am faulting. this have owned me for days now :( ...
i am trying to generate an XML file. based on the data provided by a JSON
file.
The pipeline snippet is
*import groovy.xml.**
*import groovy.json.JsonSlurper*
*node('slave1') {*
* deleteDir()*
* stage('Checkout') {*
* checkout([$class: 'GitSCM', branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],*
* userRemoteConfigs: [[credentialsId:
'b27f7cb2-efa8-496a-90d8-825b9332bf44', url: '[email protected]']]])*
* }*
* writeFile file: "MyFile.XML", text: GenerateXML() //calling the
method to generate the XML*
* println "Generated the manifest XML"*
*}*
*@NonCPS*
*def GenerateXML() {*
* /**
* parsing the obj.json file*
* */*
* def currentws = pwd()*
* println currentws*
* def jsonSlurper = new JsonSlurper(); *
* //def fileReader = new BufferedReader(new
FileReader("${currentws}/objects.json")) //the file location need to
change in the actual implementation*
* def fileReader = readFile "${currentws}/objects.json" // ^^avoided the
above line to use the pipeline DSL *
* def parsedData = jsonSlurper.parse(fileReader)*
* /**
* creating the xml*
* */*
* // def writer = new FileWriter("${currentws}/sampleManifest123.XML")*
* def builder = new StreamingMarkupBuilder()*
* builder.encoding = 'UTF-8'*
* def xml = builder.bind {*
* mkp.xmlDeclaration()*
* mkp.declareNamespace('udm.DeploymentPackage'
:'http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema>')*
* mkp.declareNamespace('powercenter.PowercenterXml'
:'http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema>')*
* delegate."udm.DeploymentPackage"(version:'$BUILD_NUMBER', application:
"sampleApp"){*
* delegate.deployables {*
* parsedData.each { index, obj ->*
* it."powercenter.PowercenterXml"(name:obj.name <http://obj.name>,
file:obj.file) {*
* delegate.scanPlaceholders(true)*
* delegate.sourceRepository(obj.sourceRepository)*
* delegate.folderNameMap {*
* obj.folderNames.each { name, value ->*
* it.entry(key:name, value)*
* }*
* }*
* delegate.objectNames {*
* delegate.value(obj.objectName)*
* }*
* delegate.objectTypes {*
* delegate.value(obj.objectType)*
* }*
* }*
* }*
* }*
* delegate.dependencyResolution('LATEST')*
* delegate.undeployDependencies(false)*
* }*
* }*
*}*
The input json file looks like:
*{"workflows1":*
* {*
* "name": "/wf_multifolder",*
* "file": "release1/wf_multifolder.XML",*
* "objectName": "wf_multifolder.XML",*
* "objectType": "workflow",*
* "sourceRepository": "DEV2",*
* "folderNames": { "multifolder": "{{multifolder}}","agent1":
"{{agentx}}" }*
* },*
* "workflows1":*
* {*
* "name": "/wf_multifolder",*
* "file": "release1/wf_multifolder.XML",*
* "objectName": "wf_multifolder.XML",*
* "objectType": "workflow",*
* "sourceRepository": "DEV2",*
* "folderNames": { "multifolder": "{{multifolder}}","agent1":
"{{agentx}}" }*
* }*
*}*
The current behaviour is that, the method just works fine in my
groovyConsole but fails big time in jenkins, The file "*MyFile.XML" is
created in the workspace. But it have the same content as the input json
file... Its not performing the loop. *
On Sun, Apr 9, 2017 at 11:00 PM, Mark Waite <[email protected]>
wrote:
> As far as I know, Jesse's advice was to use the more Java like iteration
> technique, rather than for / each.
>
> Mark Waite
>
> On Sun, Apr 9, 2017 at 7:29 PM niristotle okram <[email protected]>
> wrote:
>
>> Is anyone aware of iterating/looping either using a *for / each* inside
>> a NonCPS method in a master slave environment?
>>
>> I am using the "readFile", DSL to read from the slave's workspace. And i
>> parsing it via the jsonsluper. I am unable to loop through the object.
>>
>> Have anyone done this successfully?
>>
>>
>> On Fri, Apr 7, 2017 at 12:36 PM, niristotle okram <[email protected]
>> > wrote:
>>
>> Can anyone say, if the issue of using '.each{ }' , with the closure in
>> jenkins https://issues.jenkins-ci.org/browse/JENKINS-26481
>>
>> also affect a NonCPS method??
>>
>> I find it works okay in a master only env.
>>
>>
>>
>>
>>
>> --
>> Regards
>> nirish okram
>>
>> --
>> 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 [email protected].
>> To view this discussion on the web visit https://groups.google.com/d/
>> msgid/jenkinsci-users/CAPzcO4idZco8oAQcWpRocE5XuRw%
>> 3DCrph7oaCqFnQw7-0W-jmAg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/jenkinsci-users/CAPzcO4idZco8oAQcWpRocE5XuRw%3DCrph7oaCqFnQw7-0W-jmAg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> 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 [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/jenkinsci-users/CAO49JtEH%3Dsg2MD6Vxr0WSruZsm%3D9%3D3O%3D6%
> 3DN97LhawpfuY3KPnA%40mail.gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtEH%3Dsg2MD6Vxr0WSruZsm%3D9%3D3O%3D6%3DN97LhawpfuY3KPnA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
Regards
nirish okram
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/CAPzcO4hNr8qFX6PmJjeSE4jhgUwxtxLi6kc8rsirJJa-%2BVArfw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.