anyone got ideas ?
On Monday, March 6, 2017 at 6:17:12 PM UTC-8, Zeeshan Maqbool wrote:
>
> Simplified code which is easier to read :
>
> def mJenJobs = jenkins.model.Jenkins.getActiveInstance()..getAllItems()
> def mJenJobsSize = mJenJobs.size()
> def mResult = [] as Set
>
> for (i = 0; i < mJenJobsSize; i++)
> {
> def locJob = mJenJobs[i]
> def running = locJob.getLastBuild().isBuilding()
> if (running)
> {
> def build = locJob.getLastBuild()
>
> println "[Node " + locJob.getLastBuiltOn().getDisplayName()+ "] "
> // Option 1
> println "[Node " + build.getExecutor().getOwner().getName()+ "] "
> // Option 2
> }
> }
>
> On Monday, March 6, 2017 at 4:33:52 PM UTC-8, Zeeshan Maqbool wrote:
>>
>> Setup - Latest Jenkins with pipeline job set to run from MultiBranch
>> Pipeline (bitbucket)
>> Library Function - Its replacing the block plugin where you can specify
>> when this job should wait for other jobs running on a node
>>
>> I havent seen issues with other functions but I am unable to get NodeName
>> for jobs running through MultiBranch pipelines.
>>
>> def call(pattern)
>> {
>> def mJInstance = Jenkins.getActiveInstance()
>> def mJenInstance = mExternalConst.getJenkinsInst()
>> def mJenJobs = mJenInstance.getAllItems()
>> def mJenJobsSize = mJenJobs.size()
>> def mResult = [] as Set
>> def mBoolAnswer = false
>> def mJobPattern = pattern;
>>
>> if (pattern?.trim())
>> {
>> println "\nTotal jobs running on Jenkins - [Size $mJenJobsSize
>> ]\nList of Jobs with pattern [ $mJobPattern ] "
>> if (mJenJobsSize > 0)
>> {
>> def running
>> def build
>> for (i = 0; i < mJenJobsSize; i++)
>> //mJenJobs.each
>> {
>> def locJob = mJenJobs[i]
>>
>> if (locJob.getDisplayName() =~ mJobPattern)
>> {
>> if (locJob.lastBuild != null)
>> {
>> if (!(locJob.getDisplayName() =~
>> env.JOB_BASE_NAME )) //Skip the job itself
>> {
>> running = locJob.getLastBuild().isBuilding()
>> if (running)
>> {
>> build = locJob.getLastBuild()
>> println "\t" + 'JOB: ' + "[NAME " +
>> locJob.getName() + " - " + locJob.getClass() + "] " +
>> //"\n\t[InProgress " +
>> build.isInProgress() + "] " +
>> "\n\t[Node " +
>> locJob.getLastBuiltOn().getNodeName() + "] " + // ************
>> LINE WITH ISSUE ***********
>> "\n\t[Node " +
>> build.getExecutor().getOwner().getName() + "] " + // ************
>> LINE WITH ISSUE ***********
>> "\n\t[Build# " + build.getNumber() + "] "
>> +
>> "\n\t[EstTimeRemain " +
>> build.getExecutor().getEstimatedRemainingTime() + "] " +
>> "\n\t[Progress " +
>> build.getExecutor().getProgress() + "/100] "
>> mResult.add(locJob.getName())
>> }
>> }
>> }
>> }
>> }
>> } else
>> println "\tNo jobs on this Jenkins box"
>>
>> mResultSize = mResult.size()
>>
>> if (mResultSize > 0)
>> {
>> println "\nFound [ $mResultSize ] jobs matching [ $pattern ]
>> on this Jenkins"
>> mBoolAnswer = true
>> } else
>> println "\nNo jobs found matching [ $pattern ] on this
>> Jenkins"
>> } else
>> println "Please provide a pattern to this function. e.g\n
>> jobRunning('OdinPlugin.*-')"
>>
>> return mBoolAnswer
>> }
>>
>> Here's the output I am getting :
>> ---------------------
>>
>> *15:28:39* JOB: [NAME First-Test - class
>> org.jenkinsci.plugins.workflow.job.WorkflowJob]
>>
>> *15:28:39* [Node ]
>>
>> *15:28:39* [Node ]
>>
>> *15:28:39* [Build# 191]
>>
>> *15:28:39* [EstTimeRemain N/A]
>>
>> *15:28:39* [Progress 99/100]
>>
>> ---------------------
>>
>> You can see here the Node name is not getting printed, one reason I can
>> see for Option2 [build.getExecutor().getOwner().getName()] was its class
>> [hudson.model.Hudson$MasterComputer]
>> which has empty nodeName.
>>
>> Does anyone know how to get nodeName for a MultiBranchPipeline job, the
>> same thing works for older style FreeFlowJobs
>>
>
--
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/43f5c66b-d467-4195-87f8-e8cd283593ca%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.