From e02fb4b9adb75c4048029820fa7e766163514d91 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 4 Jan 2018 18:00:48 +0000 Subject: [PATCH 1/3] scstadmin tests: Remove temporary files after tests 05 and 06 have finished git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7324 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scstadmin/scstadmin.sysfs/scst-1.0.0/t/06-cont-on-err.t | 1 + scstadmin/scstadmin.sysfs/scst-1.0.0/t/07-scstadmin-args.t | 1 + 2 files changed, 2 insertions(+) diff --git a/scstadmin/scstadmin.sysfs/scst-1.0.0/t/06-cont-on-err.t b/scstadmin/scstadmin.sysfs/scst-1.0.0/t/06-cont-on-err.t index c91b85c7e..3bc6fd6b7 100644 --- a/scstadmin/scstadmin.sysfs/scst-1.0.0/t/06-cont-on-err.t +++ b/scstadmin/scstadmin.sysfs/scst-1.0.0/t/06-cont-on-err.t @@ -52,6 +52,7 @@ sub testRestoreConfig { my $compare_result = system("diff -u $tmpfilename2 $expected >$diff"); ok($compare_result, 0); if ($compare_result == 0) { + unlink($diff); unlink($tmpfilename2); unlink($tmpfilename1); } diff --git a/scstadmin/scstadmin.sysfs/scst-1.0.0/t/07-scstadmin-args.t b/scstadmin/scstadmin.sysfs/scst-1.0.0/t/07-scstadmin-args.t index 724f7ce1f..2178c7344 100644 --- a/scstadmin/scstadmin.sysfs/scst-1.0.0/t/07-scstadmin-args.t +++ b/scstadmin/scstadmin.sysfs/scst-1.0.0/t/07-scstadmin-args.t @@ -73,6 +73,7 @@ sub attributeTest { my $compare_result = system("diff -u $tmpfilename2 $expected >$diff"); ok($compare_result, 0); if ($compare_result == 0) { + unlink($diff); unlink($tmpfilename2); unlink($tmpfilename1); } From 7baba46a2377f4df35303826bcbf0cfd29600c81 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 4 Jan 2018 18:01:16 +0000 Subject: [PATCH 2/3] scstadmin: Improve test 08 git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7325 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- .../scst-1.0.0/t/08-scstadmin-close-dev.t | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/scstadmin/scstadmin.sysfs/scst-1.0.0/t/08-scstadmin-close-dev.t b/scstadmin/scstadmin.sysfs/scst-1.0.0/t/08-scstadmin-close-dev.t index 0036fddf1..bd279aa17 100644 --- a/scstadmin/scstadmin.sysfs/scst-1.0.0/t/08-scstadmin-close-dev.t +++ b/scstadmin/scstadmin.sysfs/scst-1.0.0/t/08-scstadmin-close-dev.t @@ -21,7 +21,7 @@ BEGIN { unless(grep /blib/, @INC) { unshift(@INC, File::Spec->catdir($scstadmin_pm_dir, "lib")); } - plan tests => 5; + plan tests => 9; } use Data::Dumper; @@ -91,13 +91,20 @@ sub closeDevTest { $rc = system("$scstadmin -dumpAttrs $redirect"); ok($rc, 0); $rc = closeDevs("nodev"); + ok($rc, 256); + $rc = system("$scstadmin -noprompt -driver scst_local -target local " . + "-rem_lun 0 -device nodev $redirect"); + ok($rc, 0); + $rc = closeDevs("nodev"); ok($rc, 0); $rc = closeDevs("disk0", "disk1"); ok($rc, 256); - system("$scstadmin -noprompt -driver scst_local -target local -group ig " . - "-rem_lun 0 -device disk0 $redirect"); - system("$scstadmin -noprompt -driver scst_local -target local -group ig " . - "-rem_lun 1 -device disk1 $redirect"); + $rc = system("$scstadmin -noprompt -driver scst_local -target local " . + "-group ig -rem_lun 0 -device disk0 $redirect"); + ok($rc, 0); + $rc = system("$scstadmin -noprompt -driver scst_local -target local " . + "-group ig -rem_lun 1 -device disk1 $redirect"); + ok($rc, 0); $rc = closeDevs("disk0", "disk1"); ok($rc, 0); if ($rc == 0) { From e0903d4ce0da64a1b0d3a5c1fafa6f9d784d1a49 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 4 Jan 2018 18:02:47 +0000 Subject: [PATCH 3/3] scstadmin: Fix parsing of the soft links under the 'exported' directory Reported-by: Dzmitry Kotsikau git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7326 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- .../scst-1.0.0/lib/SCST/SCST.pm | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/scstadmin/scstadmin.sysfs/scst-1.0.0/lib/SCST/SCST.pm b/scstadmin/scstadmin.sysfs/scst-1.0.0/lib/SCST/SCST.pm index 175c55c53..7a3789502 100644 --- a/scstadmin/scstadmin.sysfs/scst-1.0.0/lib/SCST/SCST.pm +++ b/scstadmin/scstadmin.sysfs/scst-1.0.0/lib/SCST/SCST.pm @@ -2612,19 +2612,26 @@ sub deviceAttributes { my $linked = readlink make_path($pPath, $export); + my $t = SCST_TARGETS; my $g = SCST_GROUPS; my $l = SCST_LUNS; + my ($driver, $target, $group, $lun) = "" x 4; - if ($linked =~ /.*\/(.+)\/(.+)\/$g\/(.+)\/$l\/(\d+)/) { - my $driver = $1; - my $target = $2; - my $group = $3; - my $lun = $4; - - next if ($target eq 'copy_manager'); - $attributes{$attribute}->{'value'}->{$driver}->{$target}->{$group} = $lun; + if ($linked =~ /^(\.\.\/)*$t\/([^\/]+)\/([^\/]+)\/$g\/([^\/]+)\/$l\/(\d+)$/) { + $driver = $2; + $target = $3; + $group = $4; + $lun = $5; + } elsif ($linked =~ /^(\.\.\/)*$t\/([^\/]+)\/([^\/]+)\/$l\/(\d+)$/) { + $driver = $2; + $target = $3; + $lun = $4; + } else { + print("internal error: could not parse $linked\n"); + next; } - + next if ($driver eq 'copy_manager'); + $attributes{$attribute}->{'value'}->{$driver}->{$target}->{$group} = $lun; } if ($attributes{$attribute}->{'value'}) { $attributes{$attribute}->{'static'} = TRUE;