one more thing to add which is pretty important and where the issue seems 
to be, if I check class for [locJob.getLastBuiltOn()] it comes out to be 
[hudson.model.Hudson], 
whereas it should be Node according to this documentation 
http://javadoc.jenkins.io/plugin/workflow-job/org/jenkinsci/plugins/workflow/job/WorkflowJob.html#getLastBuiltOn--


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/1b136da2-7933-46d4-aba8-96c7cdb05db7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to