From 35b10e078c657d097f178b323e520d60b396dd49 Mon Sep 17 00:00:00 2001 From: Irina Peshinskaya Date: Thu, 16 Jul 2015 18:40:19 +0300 Subject: [PATCH] MT#11147 Rewrite map to foreach for models names => ids map Change-Id: Ic2cf61dab8dae7f4ac21bb2537e6f4bb4e7a4f20 --- lib/NGCP/Panel/Utils/Device.pm | 35 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/NGCP/Panel/Utils/Device.pm b/lib/NGCP/Panel/Utils/Device.pm index 8414b738bd..2c111ee0e6 100644 --- a/lib/NGCP/Panel/Utils/Device.pm +++ b/lib/NGCP/Panel/Utils/Device.pm @@ -6,22 +6,27 @@ use strict; sub process_connectable_models{ my ($c, $just_created, $devmod, $connectable_models_in) = @_; my $schema = $c->model('DB'); - if($connectable_models_in){ - my $connectable_models_ids = [ - map{ - my $name_or_id = $_; - if( $name_or_id !~ /^\d+$/ ){ - (my($vendor,$model_name)) = $name_or_id =~ /^([^ ]+) (.*)$/; - my $model = $schema->resultset('autoprov_devices')->search_rs({ - 'vendor' => $vendor, - 'model' => $model_name, - })->first; - return $model ? $model->id : () ; - }else{ - return $name_or_id; + $connectable_models_in ||= []; + if('ARRAY' ne ref $connectable_models_in){ + $connectable_models_in = [$connectable_models_in]; + } + if(@$connectable_models_in){ + my $connectable_models_ids = []; + foreach(@$connectable_models_in){ + my $name_or_id = $_; + if( $name_or_id !~ /^\d+$/ ){ + (my($vendor,$model_name)) = $name_or_id =~ /^([^ ]+) (.*)$/; + my $model = $schema->resultset('autoprov_devices')->search_rs({ + 'vendor' => $vendor, + 'model' => $model_name, + })->first; + if($model){ + push @$connectable_models_ids, $model->id; } - } @$connectable_models_in - ]; + }else{ + push @$connectable_models_ids, $name_or_id; + } + } my @columns = ('device_id' , 'extension_id'); if('extension' eq $devmod->type){ #extension can be connected to other extensions? If I remember right - yes.