From 92467af27067acdc7ffbc9d6b1ff7bb2c5ce6c29 Mon Sep 17 00:00:00 2001 From: Mark Buechler Date: Wed, 25 Aug 2010 19:44:51 +0000 Subject: [PATCH] - Finish -list_sessions. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2001 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- .../scst-0.9.00/lib/SCST/SCST.pm | 1 + scstadmin/scstadmin.sysfs/scstadmin | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/scstadmin/scstadmin.sysfs/scst-0.9.00/lib/SCST/SCST.pm b/scstadmin/scstadmin.sysfs/scst-0.9.00/lib/SCST/SCST.pm index b56c4c5af..84638e78a 100644 --- a/scstadmin/scstadmin.sysfs/scst-0.9.00/lib/SCST/SCST.pm +++ b/scstadmin/scstadmin.sysfs/scst-0.9.00/lib/SCST/SCST.pm @@ -3241,6 +3241,7 @@ sub sessions { } foreach my $attribute (readdir($pHandle)) { + next if (($attribute eq '.') || ($attribute eq '..')); my $pPath = mkpath($sPath, $attribute); if ($attribute eq 'luns') { diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin index f9a1fe972..12a6628c5 100755 --- a/scstadmin/scstadmin.sysfs/scstadmin +++ b/scstadmin/scstadmin.sysfs/scstadmin @@ -2148,7 +2148,44 @@ sub listTargets { } sub listSessions { + my $drivers = $SCST->drivers(); + foreach my $driver (@{$drivers}) { + my $targets = $SCST->targets($driver); + + foreach my $target (@{$targets}) { + my $had_sessions = FALSE; + + print "Driver/Target: $driver/$target\n\n"; + + my $sessions = $SCST->sessions($driver, $target); + foreach my $session (keys %{$sessions}) { + print "\tSession: $session\n\n"; + + my %attributes; + foreach my $attr (keys %{$$sessions{$session}}) { + if ($attr eq 'luns') { + foreach my $lun (keys %{$$sessions{$session}->{'luns'}}) { + $attributes{"LUN $lun"}->{'value'} = + $$sessions{$session}->{'luns'}->{$lun}; + } + } else { + $attributes{$attr}->{'value'} = $$sessions{$session}->{$attr}; + } + } + + listAttributes(\%attributes, TRUE); + + print "\n"; + + $had_sessions = TRUE; + } + + if (!$had_sessions) { + print "\t(no sessions)\n\n"; + } + } + } } sub listGroup {