From 1c50c5ed8b68f719514de7782371f5c92529eed4 Mon Sep 17 00:00:00 2001
From: Guillaume Rousse <guillaume.rousse@renater.fr>
Date: Mon, 19 Oct 2020 14:28:10 +0200
Subject: [PATCH] better fix, as the error happens before database access

---
 bin/update-metadata.in | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/bin/update-metadata.in b/bin/update-metadata.in
index 59979b3..38a9747 100755
--- a/bin/update-metadata.in
+++ b/bin/update-metadata.in
@@ -108,28 +108,28 @@ foreach my $id (keys %{$configuration->{federations}}) {
             );
             $entity->update();
         } else {
-            $entity = AccountManager::Entity->new(
-                db               => $db,
-                type             => $entry->{type},
-                entityid         => $entry->{entityid},
-                display_name     => $entry->{display_name},
-                information_url  => $entry->{information_url},
-                organization_url => $entry->{organization_url},
-            );
-            if ($entry->{contacts}) {
-                my @contacts =
+            eval {
+                $entity = AccountManager::Entity->new(
+                    db               => $db,
+                    type             => $entry->{type},
+                    entityid         => $entry->{entityid},
+                    display_name     => $entry->{display_name},
+                    information_url  => $entry->{information_url},
+                    organization_url => $entry->{organization_url},
+                );
+                if ($entry->{contacts}) {
+                    my @contacts =
                     uniq
                     grep { $_ }
                     map { $_->{EmailAddress} }
                     @{$entry->{contacts}};
-                $entity->contacts(@contacts);
-            }
-            $entity->federations($id);
-            eval {
+                    $entity->contacts(@contacts);
+                }
+                $entity->federations($id);
                 $entity->save();
             };
             if ($EVAL_ERROR) {
-                warn "error while saving entity $entry->{entityid}: $EVAL_ERROR";
+                warn "error while processing entity $entry->{entityid}: $EVAL_ERROR";
             }
         }
 
-- 
GitLab