]> git.proxmox.com Git - proxmox-backup.git/commitdiff
bin: daily-update: make single checks/updates fail gracefully
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 22 Feb 2022 09:26:59 +0000 (10:26 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 22 Feb 2022 09:27:00 +0000 (10:27 +0100)
avoid that the acme renewal is skipped due to bailing out earlier
from a subscription or apt update error.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/bin/proxmox-daily-update.rs

index 8ecd9d3c7e0771feb4783ef7924378ea17adb039..12c5974dc26495dedd21e59d0144d9feae5e43db 100644 (file)
@@ -25,10 +25,14 @@ async fn do_update(rpcenv: &mut dyn RpcEnvironment) -> Result<(), Error> {
     let param = json!({});
 
     let method = &api2::node::subscription::API_METHOD_CHECK_SUBSCRIPTION;
-    let _res = match method.handler {
-        ApiHandler::Sync(handler) => (handler)(param, method, rpcenv)?,
+    match method.handler {
+        ApiHandler::Sync(handler) => {
+            if let Err(err) = (handler)(param, method, rpcenv) {
+                eprintln!("Error checking subscription - {}", err);
+            }
+        }
         _ => unreachable!(),
-    };
+    }
 
     let notify = match subscription::read_subscription() {
         Ok(Some(subscription)) => subscription.status == subscription::SubscriptionStatus::ACTIVE,
@@ -43,11 +47,15 @@ async fn do_update(rpcenv: &mut dyn RpcEnvironment) -> Result<(), Error> {
         "notify": notify,
     });
     let method = &api2::node::apt::API_METHOD_APT_UPDATE_DATABASE;
-    let upid = match method.handler {
-        ApiHandler::Sync(handler) => (handler)(param, method, rpcenv)?,
+    match method.handler {
+        ApiHandler::Sync(handler) => match (handler)(param, method, rpcenv) {
+            Err(err) => {
+                eprintln!("Error triggering apt database update - {}", err);
+            }
+            Ok(upid) => wait_for_local_worker(upid.as_str().unwrap()).await?,
+        },
         _ => unreachable!(),
     };
-    wait_for_local_worker(upid.as_str().unwrap()).await?;
 
     match check_acme_certificates(rpcenv).await {
         Ok(()) => (),