CA-AutoSys
view release on metacpan or search on metacpan
bin/autorep view on Meta::CPAN
if ($dsn) {
$hdl = CA::AutoSys->new(dsn => $dsn, user => $user, password => $password);
} else {
$hdl = CA::AutoSys->new(server => $server, user => $user, password => $password);
}
my $jobs = $hdl->find_jobs($jobname);
# prints a job's status
sub print_job_status {
my $job = shift();
my $level = shift();
my $status = $job->get_status();
printf("%*s%-*s %-20s %-20s %2s %d/%d", $level*2, "", $width-$rest-$level*2, $job->{job_name},
CA::AutoSys::Status::format_time($status->{last_start}),
CA::AutoSys::Status::format_time($status->{last_end}),
CA::AutoSys::Status::format_status($status->{status}),
$status->{run_num} ? $status->{run_num} : 0,
$status->{ntry} ? $status->{ntry} : 0);
if (defined($status->{exit_code}) && int($status->{exit_code}) > 0) {
printf(" %d", int($status->{exit_code}));
}
printf("\n");
# find this job's children
my $children = $job->find_children();
# loop through all children...
while (my $child = $children->next_child()) {
# print child's status
print_job_status($child, $level+1);
}
if ($job->has_children() && $job->{job_type} eq "b") {
printf("\n");
}
} # print_job_status()
# prints a job's definition
sub print_job_definition {
my $job = shift();
my $level = shift();
printf("\n\n%*s/* ----------------- %s ----------------- */\n\n", $level*2, "", $job->{job_name});
printf("%*sinsert_job: %s job_type: %s\n", $level*2, "", $job->{job_name}, $job->{job_type});
if (defined($job->{box_name}) && $job->{box_name} ne "") {
printf("%*sbox_name: %s\n", $level*2, "", $job->{box_name});
}
if (defined($job->{command}) && $job->{command} ne "") {
printf("%*scommand: %s\n", $level*2, "", $job->{command});
}
if (defined($job->{machine}) && $job->{machine} ne "") {
printf("%*smachine: %s\n", $level*2, "", $job->{machine});
}
printf("%*s#owner: %s\n", $level*2, "", $job->{owner});
printf("%*spermission: %s\n", $level*2, "", $job->{permission});
if ($job->{date_conditions} > 0) {
my @date_cond = qw(days_of_week start_times start_mins run_calendar exclude_calendar run_window);
printf("%*sdate_conditions: %s\n", $level*2, "", $job->{date_conditions});
foreach (@date_cond) {
if (defined($job->{$_}) && length($job->{$_}) > 0) {
printf("%*s$_: %s\n", $level*2, "", $job->{$_});
}
}
} elsif (defined($job->{condition}) && $job->{condition} ne "") {
printf("%*scondition: %s\n", $level*2, "", $job->{condition});
}
printf("%*sdescription: \"%s\"\n", $level*2, "", $job->{description});
if (defined($job->{std_out_file}) && $job->{std_out_file} ne "") {
printf("%*sstd_out_file: %s\n", $level*2, "", $job->{std_out_file});
}
if (defined($job->{std_err_file}) && $job->{std_err_file} ne "") {
printf("%*sstd_err_file: %s\n", $level*2, "", $job->{std_err_file});
}
if ($job->{max_run_alarm} > 0) {
printf("%*smax_run_alarm: %s\n", $level*2, "", $job->{max_run_alarm});
}
printf("%*salarm_if_fail: %s\n", $level*2, "", $job->{alarm_if_fail});
# find this job's children
my $children = $job->find_children();
# loop through all children...
while (my $child = $children->next_child()) {
# print child's definition
print_job_definition($child, $level+1);
}
} # print_job_definition()
if (!$query) {
printf("%-*s Last Start Last End ST Run Pri/Xit\n", $width-$rest, "Job Name");
printf("%-*s ____________________ ____________________ __ _______ ___\n\n", $width-$rest, "_"x($width-$rest));
}
# loop through all jobs...
while (my $job = $jobs->next_job()) {
if ($query) {
print_job_definition($job, 0);
printf("\n");
} else {
print_job_status($job, 0);
}
}
( run in 3.403 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )