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