From 9cfffe6dc6ee43dbf340f6b8e6096c39ed98b912 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Mon, 20 Jul 2020 17:48:21 +0200 Subject: [PATCH] TT#85300 create_peers.pl: use try/catch when creating rules * search for the rules seems not to work fine * was unable to create more than one rule per group Change-Id: Ia0ef731968c7c1da6ab9874e2a5dbab604c42418 --- bin/create_peers.pl | 27 +++++++++++++++++---------- debian/control | 2 ++ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/bin/create_peers.pl b/bin/create_peers.pl index 422657da..66a30d4a 100755 --- a/bin/create_peers.pl +++ b/bin/create_peers.pl @@ -21,6 +21,7 @@ use strict; use warnings; +use Try::Tiny; use English; use Getopt::Long; use Cwd 'abs_path'; @@ -120,13 +121,16 @@ sub manage_rules foreach my $rule (@{$data}) { - $rule->{id} = $api->check_peeringrule_exists($rule); - if(defined $rule->{id}) { - print "rule: already there [$rule->{id}]\n"; - } else { + try { $rule->{id} = $api->create_peeringrule($rule); print "rule: created [$rule->{id}]\n"; - } + } catch { + if($opts->{verbose}) { + warn "rule: not able to create: $_"; + } else { + warn "rule: not able to create"; + } + }; } return; } @@ -137,13 +141,16 @@ sub manage_inbound_rules foreach my $rule (@{$data}) { - $rule->{id} = $api->check_peeringinboundrule_exists($rule); - if(defined $rule->{id}) { - print "inboundrule: already there [$rule->{id}]\n"; - } else { + try { $rule->{id} = $api->create_peeringinboundrule($rule); print "inboundrule: created [$rule->{id}]\n"; - } + } catch { + if($opts->{verbose}) { + warn "rule: not able to create: $_"; + } else { + warn "rule: not able to create"; + } + }; } return; } diff --git a/debian/control b/debian/control index c73e8462..50198e79 100644 --- a/debian/control +++ b/debian/control @@ -17,6 +17,7 @@ Build-Depends: libtemplate-perl, libtext-csv-perl, libtext-diff-perl, + libtry-tiny-perl, libyaml-libyaml-perl, python3:any, Recommends: @@ -40,6 +41,7 @@ Depends: libtemplate-perl, libtext-csv-perl, libtext-diff-perl, + libtry-tiny-perl, libyaml-libyaml-perl, ngcp-provisioning-tools, parallel,