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.

Reply via email to