diff --git a/site-modules/profile/manifests/swh/deploy/webapp.pp b/site-modules/profile/manifests/swh/deploy/webapp.pp --- a/site-modules/profile/manifests/swh/deploy/webapp.pp +++ b/site-modules/profile/manifests/swh/deploy/webapp.pp @@ -214,23 +214,37 @@ }, } + # webapp update save code status routine + $filename_refresh_status = 'refresh-savecodenow-statuses' + + # clean up old files $filepath_refresh_status = "/usr/local/bin/${filename_refresh_status}" file {$filepath_refresh_status: - ensure => present, + ensure => absent, owner => 'root', group => 'www-data', mode => '0755', - content => template("profile/swh/deploy/webapp/${filename_refresh_status}.sh.erb"), } $activate_once_per_environment_webapp = lookup('swh::deploy::webapp::cron::refresh_statuses') - if $activate_once_per_environment_webapp { - profile::cron::d {$filename_refresh_status: - target => $filename_refresh_status, - command => "chronic sh -c '${filepath_refresh_status}'", - minute => '*', - hour => '*', - } + + # Template uses variables + # - $user + # - $group + # - $webapp_settings_module + # + $update_savecodenow_service_name = "swh-webapp-update-savecodenow-statuses" + $update_savecodenow_unit_template = "profile/swh/deploy/webapp/${update_savecodenow_service_name}.service.erb" + $update_savecodenow_timer_name = "${update_savecodenow_service_name}.timer" + $update_savecodenow_timer_template = "profile/swh/deploy/webapp/${update_savecodenow_timer_name}.erb" + + ::systemd::timer { $update_savecodenow_timer_name: + timer_content => template($update_savecodenow_timer_template), + service_content => template($update_savecodenow_unit_template), + active => $activate_once_per_environment_webapp, + enable => $activate_once_per_environment_webapp, + require => Package[$packages], } + } diff --git a/site-modules/profile/templates/swh/deploy/webapp/refresh-savecodenow-statuses.sh.erb b/site-modules/profile/templates/swh/deploy/webapp/refresh-savecodenow-statuses.sh.erb deleted file mode 100644 --- a/site-modules/profile/templates/swh/deploy/webapp/refresh-savecodenow-statuses.sh.erb +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -export DJANGO_SETTINGS_MODULE=<%= @webapp_settings_module %> - -/usr/bin/django-admin refresh_savecodenow_statuses diff --git a/site-modules/profile/templates/swh/deploy/webapp/swh-webapp-update-savecodenow-statuses.service.erb b/site-modules/profile/templates/swh/deploy/webapp/swh-webapp-update-savecodenow-statuses.service.erb new file mode 100644 --- /dev/null +++ b/site-modules/profile/templates/swh/deploy/webapp/swh-webapp-update-savecodenow-statuses.service.erb @@ -0,0 +1,18 @@ +# Webapp Update SaveCodeNow status unit file +# Managed by puppet class profile::swh::deploy::webapp +# Changes will be overwritten + +[Unit] +Description=Software Heritage Webapp Update SaveCodeNow Statuses +Requires=network.target +After=network.target + +[Service] +User=<%= @user %> +Group=<%= @group %> +Environment=DJANGO_SETTINGS_MODULE=<%= @webapp_settings_module %> +Type=simple +ExecStart=/usr/bin/django-admin refresh_savecodenow_statuses + +[Install] +WantedBy=multi-user.target diff --git a/site-modules/profile/templates/swh/deploy/webapp/swh-webapp-update-savecodenow-statuses.timer.erb b/site-modules/profile/templates/swh/deploy/webapp/swh-webapp-update-savecodenow-statuses.timer.erb new file mode 100644 --- /dev/null +++ b/site-modules/profile/templates/swh/deploy/webapp/swh-webapp-update-savecodenow-statuses.timer.erb @@ -0,0 +1,9 @@ +[Install] +WantedBy=timers.target + +[Timer] +OnCalendar=*:0/1 +Unit=swh-webapp-update-savecodenow-statuses.service + +[Unit] +Description=Recurring webapp update savecodenow statuses