KBEC-00434 - Find the CloudBees CD (CloudBees Flow) history for a procedure

Article ID:360035606211
1 minute readKnowledge base

Issue

I would like to use the CloudBees CD (CloudBees Flow) Perl API to look up the history for a procedure of a job.

Resolution

You can create a script that will query for all runs of a project (called test2 in the below script), for a specific procedure of that project (called testProcedure in the below script):

use ElectricCommander;
my $ec = ElectricCommander->new({
 server      =>  "localhost",
});

# TODO update username and password
$ec->login('username','password');

# TODO update "test2" and "testProcedure"
my $result = $ec->findObjects({
  objectType => 'job',
  filter => {
    operator => "and",
    filter => [{
      propertyName => 'projectName',
      operator => "equals",
      operand1 => "test2"
    },{
      propertyName => 'procedureName',
      operator => "equals",
      operand1 => "testProcedure"
    },],
  },
});
print $result->findnodes_as_string("/"). "\n";

This script is using the API command called findObjects

When you save the above script as a file, such as jobProcedureHistory.pl and then run this perl script using the command:

ec-perl jobProcedureHistory.pl

You will see output similar to below, showing the history:

<responses version="2.3" dispatchId="2612" nodeId="10.0.2.15">
  <response requestId="2" nodeId="10.0.2.15">
    <objectId>job-e718c0c6-f5dc-11e9-8728-080027bd4d5b</objectId>
    <objectId>job-ee1f0064-f5dc-11e9-8728-080027bd4d5b</objectId>
    <objectId>job-f09e3193-f5dc-11e9-bb4c-080027bd4d5b</objectId>
    <object>
      <objectId>job-e718c0c6-f5dc-11e9-8728-080027bd4d5b</objectId>
      <job>
        <jobId>e718c0c6-f5dc-11e9-8728-080027bd4d5b</jobId>
        <jobName>job_28_20191023173433</jobName>
        <archived>0</archived>
        <combinedStatus>
          <message>Error</message>
          <status>completed_error</status>
        </combinedStatus>
        <createTime>2019-10-23T21:34:33.010Z</createTime>
        <directoryName>job_28_20191023173433</directoryName>
        <elapsedTime>1017</elapsedTime>
        <environmentWaitTime>0</environmentWaitTime>
        <external>0</external>
        <finish>2019-10-23T21:34:34.027Z</finish>
        <lastModifiedBy>admin</lastModifiedBy>
        <launchedByUser>admin</launchedByUser>
        <licenseReshareWaitTime>0</licenseReshareWaitTime>
        <licenseWaitTime>0</licenseWaitTime>
        <liveProcedure>testProcedure</liveProcedure>
        <modifyTime>2019-10-23T21:34:34.210Z</modifyTime>
        <outcome>error</outcome>
        <owner>admin</owner>
        <priority>normal</priority>
        <procedureName>testProcedure</procedureName>
        <projectName>test2</projectName>
        <propertySheetId>e718c0ca-f5dc-11e9-8728-080027bd4d5b</propertySheetId>
        <resourceWaitTime>0</resourceWaitTime>
        <start>2019-10-23T21:34:33.010Z</start>
        <status>completed</status>
        <totalWaitTime>0</totalWaitTime>
        <workspaceWaitTime>0</workspaceWaitTime>
      </job>
    </object>
    <object>
      <objectId>job-ee1f0064-f5dc-11e9-8728-080027bd4d5b</objectId>
      <job>
        <jobId>ee1f0064-f5dc-11e9-8728-080027bd4d5b</jobId>
        <jobName>job_29_20191023173444</jobName>
        <archived>0</archived>
        <combinedStatus>
          <message>Error</message>
          <status>completed_error</status>
        </combinedStatus>
        <createTime>2019-10-23T21:34:44.799Z</createTime>
        <directoryName>job_29_20191023173444</directoryName>
        <elapsedTime>1102</elapsedTime>
        <environmentWaitTime>0</environmentWaitTime>
        <external>0</external>
        <finish>2019-10-23T21:34:45.901Z</finish>
        <lastModifiedBy>admin</lastModifiedBy>
        <launchedByUser>admin</launchedByUser>
        <licenseReshareWaitTime>0</licenseReshareWaitTime>
        <licenseWaitTime>0</licenseWaitTime>
        <liveProcedure>testProcedure</liveProcedure>
        <modifyTime>2019-10-23T21:34:46.016Z</modifyTime>
        <outcome>error</outcome>
        <owner>admin</owner>
        <priority>normal</priority>
        <procedureName>testProcedure</procedureName>
        <projectName>test2</projectName>
        <propertySheetId>ee1f2778-f5dc-11e9-8728-080027bd4d5b</propertySheetId>
        <resourceWaitTime>0</resourceWaitTime>
        <start>2019-10-23T21:34:44.799Z</start>
        <status>completed</status>
        <totalWaitTime>0</totalWaitTime>
        <workspaceWaitTime>0</workspaceWaitTime>
      </job>
    </object>
...

Tested product version

This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.