diff --git a/Web/lib/MJB/Web/Controller/Admin.pm b/Web/lib/MJB/Web/Controller/Admin.pm index 5a00127..1016f63 100644 --- a/Web/lib/MJB/Web/Controller/Admin.pm +++ b/Web/lib/MJB/Web/Controller/Admin.pm @@ -188,7 +188,10 @@ sub do_domain_remove ( $c ) { } sub do_update_ssl ( $c ) { - my $id = $c->minion->enqueue( 'update_ssl_certs', [ ], { queue => 'certbot' } ); + my $id = $c->minion->enqueue( 'update_ssl_certs', [ ], { + queue => 'certbot', + notes => { '_bid_0' => 1 }, + }); $c->db->admin_jobs->create({ minion_job_id => $id }); $c->flash( confirmation => "Scheduled job to update SSL certs." ); diff --git a/Web/templates/_base/jobs.html.ep b/Web/templates/_base/jobs.html.ep new file mode 100644 index 0000000..97964ea --- /dev/null +++ b/Web/templates/_base/jobs.html.ep @@ -0,0 +1,30 @@ + +%# Job Panel % +% my $index = 0; +% foreach my $build ( @{$jobs} ) { + % $index++; + % if ( my $build_job = $c->minion->job( $build->minion_job_id ) ) { + % my $job = $build_job->info; + + % if ( $job->{state} eq 'finished' ) { + %= include '_base/jobs/finished', job => $job, index => $index, date => $build->created_at->strftime( "%F %T" ) + + + % } elsif ( $job->{state} eq 'inactive' ) { + %= include '_base/jobs/inactive', job => $job, date => $build->created_at->strftime( "%T %F" ) + + % } elsif ( $job->{state} eq 'failed' ) { + %= include '_base/jobs/failed', job => $job, index => $index, date => $build->created_at->strftime( "%F %T" ) + + + % } elsif ( $job->{state} eq 'active' ) { + %= include '_base/jobs/active', job => $job, index => $index, date => $build->created_at->strftime( "%F %T" ) + + % } else { + Job in unknown state: <%= $build->{job_id} %> + %= $job->{state} + % } + % } else { + Job not found: <%= $build->{job_id} %> + % } +% } diff --git a/Web/templates/_base/jobs/_milestones/update_ssl_certs.html.ep b/Web/templates/_base/jobs/_milestones/update_ssl_certs.html.ep new file mode 100644 index 0000000..6a9527f --- /dev/null +++ b/Web/templates/_base/jobs/_milestones/update_ssl_certs.html.ep @@ -0,0 +1,3 @@ +%= include '_base/jobs/milestone', milestone => { is_complete => $job->{notes}->{is_renew_done}, text => 'Renewing SSL certificates with certbot' }; + +%= include '_base/jobs/milestone', milestone => { is_complete => $job->{notes}->{is_sync_done}, text => 'Syncing SSL certificates with web servers' }; diff --git a/Web/templates/_base/jobs/active.html.ep b/Web/templates/_base/jobs/active.html.ep new file mode 100644 index 0000000..1f1ecc7 --- /dev/null +++ b/Web/templates/_base/jobs/active.html.ep @@ -0,0 +1,25 @@ +
+ % for my $line ( @{$job->{notes}{logs}} ) {
+ <%= "$line\n" =%>
+ % }
+
+ System Error: <%= $job->{result} %>
+ % } else { +Error: <%= $job->{result}{error} %>
+ % } + + %= include '_base/jobs/view_logs', job => $job +
+ % for my $line ( @{$job->{notes}{logs}} ) {
+ <%= "$line\n" =%>
+ % }
+
+
- % for my $line ( @{$job->{notes}{logs}} ) {
- <%= "$line\n" =%>
- % }
-
- System Error: <%= $job->{result} %>
- % } else { -Error: <%= $job->{result}{error} %>
- % } - - - -
- % for my $line ( @{$job->{notes}{logs}} ) {
- <%= "$line\n" =%>
- % }
-
-
- % for my $line ( @{$job->{notes}{logs}} ) {
- <%= "$line\n" =%>
- % }
-
-