Sorry for the delayed response Rajendra.  Will try this and let you know.  
Got stuck with another issue.

On Friday, September 28, 2018 at 12:07:12 PM UTC-4, rajendraprasad reddy 
wrote:
>
> Following snippet can collect all jobs into a list,
>
> Just modify the script and please remove the filtering logic from previous 
> script,
>
> And add the following snippet, that's all you will get all the jobs.
>
> def jobsList=[];
>
> Jenkins.instance.projects.collect { 
>
> String currentJob=it.name; 
>
> jobsList.add(currentJob)
>
> }
>
> Thanks,
> Rajendra
>
> On Fri 28 Sep, 2018, 8:03 PM , <[email protected] <javascript:>> wrote:
>
>> Rajendra.  Thank you so much for the information.  It is very 
>> descriptive.  But, need some more help.  Sorry to bother, I'm new to 
>> Groovy.  You mentioned you are filtering the job name by 'Monitor'.  Just 
>> wanted to check how it works for this scenario
>>
>> I need details of all jobs, irrespective of which project/folder they 
>> belong to, from Saturday to Friday.  How does it work in this case?
>>
>> Also, I need this report to be emailed.  If you can suggest a method for 
>> that, will be helpful.  Thanks so much for the help.
>>
>> On Friday, September 28, 2018 at 3:00:14 AM UTC-4, rajendraprasad reddy 
>> wrote:
>>>
>>> Here is the Ggroovy Script:
>>> import javax.mail.*
>>> import javax.mail.internet.*
>>> import jenkins.model.*
>>> import java.text.SimpleDateFormat
>>> import java.util.*;
>>> import java.util.Calendar;
>>> import java.lang.System;
>>> import org.apache.tools.ant.Project
>>> import org.apache.tools.ant.ProjectHelper
>>>
>>> def env="Dev_Jenkins_Server";
>>> SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z 
>>> yyyy");
>>> sdf.setTimeZone(TimeZone.getTimeZone("EST"));
>>> def  d=new Date();
>>> def oneHourPrior=new Date(System.currentTimeMillis() - 3600 * 1000);
>>> def currentTime=sdf.format(d);
>>> def monitoringStartTime=trim(oneHourPrior)
>>>
>>>
>>> def totalMonitoringJobs=0;
>>> def testSuiteIndex=0;
>>> def passedTestSuiteCount=0;
>>> def failedTestSuiteCount=0;
>>> def passedJobsList=[];
>>> def failedJobsList=[];
>>> def totalJobsList=[];
>>>
>>> println "Monitoring Start Time:        "+monitoringStartTime ;
>>> println  "Monitoring Current Time:      "+currentTime;
>>>
>>> def matchedJobs = Jenkins.instance.items.findAll { job ->
>>>     job.name =~ /Monitor/
>>> }
>>>
>>> println 
>>> "*********************************************************************************"
>>>        println "Total Monitoring Suites Count:"+matchedJobs.size();
>>>        totalMonitoringJobs=matchedJobs.size();
>>>
>>> println "***********************************Listing all Available 
>>> Monitoring Projects**********************************************"
>>>     def index=0;
>>>      matchedJobs.each { job ->
>>>                index=index+1;
>>>     println index+". "+job.name;
>>>                 totalJobsList<<job.name+"\n";
>>> }
>>>     println 
>>> "*********************************************************************************\n\n"
>>>
>>> println "********************************Todays Execution Summary 
>>> Results***************************************"
>>>  matchedJobs.each { job ->
>>>    def numbuilds = job.builds.size()
>>>   if (numbuilds == 0) {
>>>        println '  -> no build'
>>>        return
>>>   }
>>>    def lastbuild = job.builds[0]
>>>        Calendar cal1 = Calendar.getInstance();
>>>         Calendar cal2 = Calendar.getInstance();
>>>         cal1.setTime(monitoringStartTime);
>>>         cal2.setTime(lastbuild.getTime());
>>>
>>>
>>> if (cal2.after(cal1)) {
>>>            testSuiteIndex=testSuiteIndex+1
>>>             def rightPadding=50;
>>>
>>>
>>> String jobName= job.name;
>>> int requiredPadding=50-(jobName.size());
>>> while(requiredPadding>0){
>>>        jobName=jobName+" "
>>>        requiredPadding--;
>>> } 
>>>
>>> def jobInfo=jobName+'\tlastbuild: ' + lastbuild.displayName + ' = ' + 
>>> lastbuild.result + ', time: ' + lastbuild.getTime();
>>>
>>> String latestbuildStatus=lastbuild.result;
>>>      if( latestbuildStatus.equals("SUCCESS")){
>>>                  passedTestSuiteCount=passedTestSuiteCount+1
>>>                  //println "Found a Success Project"
>>>                  jobInfo="\t\t"+ passedTestSuiteCount+" . "+jobInfo
>>>                 passedJobsList.add(jobInfo)
>>>         }
>>>      if( latestbuildStatus.equals("FAILURE")){
>>>                  failedTestSuiteCount=failedTestSuiteCount+1
>>>                    jobInfo="\t\t"+ failedTestSuiteCount+" . "+jobInfo
>>>                  failedJobsList.add(jobInfo)
>>>         }
>>>     }
>>>
>>> }
>>>
>>> String passedJobsInfo= passedJobsList.join("\n")
>>> String failedJobsInfo= failedJobsList.join("\n")
>>>
>>> def jobsList ="";
>>> def jobIndex=0;
>>> totalJobsList.each{
>>>      jobIndex=jobIndex+1;
>>>      jobsList=jobIndex+". "+jobsList+it
>>>
>>> }
>>>
>>>
>>> String cumulativeStatus="PASS"
>>> if(failedJobsList.size()>0){
>>>     cumulativeStatus="FAIL"
>>> }
>>>
>>>
>>> String  emailBody=""" 
>>>      *******************************Todays Cumulative Test Execution 
>>> Summary Report*****************
>>>      \tMonitoring Start Time:\t\t${monitoringStartTime} 
>>>      \tReport Genretated Time:\t${currentTime}
>>>      \tTotal Monitoring Jobs Count Scheduled to run in Monitoring 
>>> Window:  ${totalMonitoringJobs}
>>>      \tTotal Jobs Executed Today(As of Now): ${testSuiteIndex}
>>>      \tTotal Jobs Passed Today(As of Now):    ${passedJobsList.size()}
>>>      \tTotal Jobs Failed Today:(As of Now):     ${failedJobsList.size()}
>>>      \tCumulative Result: ${cumulativeStatus}
>>>     
>>> ***********************************************************************"""+"\n\n\t----->>>>>Failed
>>>  
>>> Jobs Count: ${failedJobsList.size()} 
>>> \n"+failedJobsInfo+"\n\n\t----->>>>>Passed Jobs Count: 
>>> ${passedJobsList.size()}\n"+passedJobsInfo+"\n\n"
>>>
>>> println emailBody;
>>> String subject="${env} Jenkins Server:[ ${cumulativeStatus}]  
>>> ${currentTime}:  Cumulative Test Execution Summary Report";
>>>
>>>  public static Date trim(Date date) {
>>>         Calendar calendar = Calendar.getInstance();
>>>         calendar.setTime(date);
>>>         calendar.add(Calendar.SECOND, 0);
>>>         calendar.add(Calendar.MINUTE, -60);
>>>         calendar.add(Calendar.HOUR_OF_DAY,0);
>>>         return calendar.getTime();
>>>     }
>>>
>>> def padRight(String s, int n) {
>>>      String.format("%1-" + n + "s", s);  
>>> }
>>>
>>>
>>> //You have Following use email service and send it :
>>> def emailSubject=subject
>>> def emailRecipientsList="email1,email2"
>>> def email_subject= subject
>>> def email_body= emailBody
>>>
>>> Above groovy script collects the pass failed jobs info and composes a  
>>> mail subject and mail body.
>>>
>>> *To use above groovy script:*
>>> 1. Install Groovy plugin <https://plugins.jenkins.io/groovy> from 
>>> plugin manager
>>> 2. Create a Freestyle project
>>> 3. Good to 'Build. section of the free style job (Please look at 
>>> attached pic -1)
>>> 4. Select Option  : * Execute system Groovy script*  (Please look at 
>>> attached pic -1)
>>>         *Note*: Unless you install Groovy plugin 
>>> <https://plugins.jenkins.io/groovy> above option will not display build 
>>> options
>>> 5. Select option Groovy Command 
>>> 6. Copy the above groovy Script in the next text field of build area 
>>> config
>>> 7. If you wan to run this script periodically every day define a cron 
>>> entry  build triggers section  similar to the attached pic-3
>>>
>>> I am filtering jobs based on the job name, i.e if job name contains 
>>> 'Monitor' token then those jobs only checked  and consolidated report will 
>>> be generated.
>>> You can also test above groovy script from script console of jenkins  
>>>
>>>
>>> *Note: *I have not added the email sending part in this, there are 
>>> sevceral ways to do that nased on the email service that you use 
>>> Let me know if you need help in that also 
>>>
>>>
>>>
>>>
>>>
>>>
>>> *Thanks and Regards,Rajendra Prasad Reddy Penumalli*
>>>
>>>
>>> On Fri, 28 Sep 2018 at 08:21, <[email protected]> wrote:
>>>
>>>> Hi Rajendra.  Thank you so much for this news.  Would really appreciate 
>>>> help on implementing this.  Could you please guide me through?
>>>>
>>>> On Thursday, September 27, 2018 at 9:44:16 PM UTC-4, rajendraprasad 
>>>> reddy wrote:
>>>>>
>>>>> Hi ,
>>>>> I did similar implementation for monitoring my Jenkins instance. But I 
>>>>> never used a plugin to do that , instead of plugins I used groovy script 
>>>>> to 
>>>>> prepare mail body content and sending this mail body to intended 
>>>>> recipient 
>>>>> list.
>>>>> Using groovy it is possible to get any information of Jenkins using 
>>>>> Jenkins API calls.
>>>>>
>>>>> Let me know you need further help in implementing this procedure.
>>>>>
>>>>> Thanks,
>>>>> Rajendra
>>>>>
>>>>> On Thu 27 Sep, 2018, 5:58 PM , <[email protected]> wrote:
>>>>>
>>>>>> Any help on this.  Little urgent.
>>>>>>
>>>>>> On Wednesday, September 26, 2018 at 3:29:23 PM UTC-4, 
>>>>>> [email protected] wrote:
>>>>>>>
>>>>>>> I'm looking to generate a report, as a job, which will provide the 
>>>>>>> global metrics of my Jenkins instance.  I need details in the report 
>>>>>>> like 
>>>>>>> (1) How many jobs ran? (2) # of failed and successful jobs and every 
>>>>>>> possible metrics possible in one report.  I need to send this report 
>>>>>>> every 
>>>>>>> week to my management, so would like to know if it's possible to 
>>>>>>> schedule a 
>>>>>>> job to run this report every Friday and send the metrics by email to my 
>>>>>>> managers?  I found these two plugins - '*Global Build Status*' and 
>>>>>>> '*Build 
>>>>>>> Metrics*'.  But not able to use these as part of a job, download 
>>>>>>> the report or email a link to the report or nothing of that sort.  
>>>>>>> Please 
>>>>>>> help.
>>>>>>>
>>>>>> -- 
>>>>>> 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/b90c4f44-cae0-4c29-bdb1-2d9ceb0e1736%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/b90c4f44-cae0-4c29-bdb1-2d9ceb0e1736%40googlegroups.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/42f25477-6bdc-485e-95a9-466833637c9f%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jenkinsci-users/42f25477-6bdc-485e-95a9-466833637c9f%40googlegroups.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] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jenkinsci-users/9fea91d6-dc7d-4720-b361-d3411df8c91c%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jenkinsci-users/9fea91d6-dc7d-4720-b361-d3411df8c91c%40googlegroups.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/d16ef873-3924-459d-99d8-4f9b738eff57%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to