From a8ba8fd9e74ce41b0841d8f54fbd8a6943f81606 Mon Sep 17 00:00:00 2001 From: Mark Buechler Date: Tue, 31 Aug 2010 17:27:21 +0000 Subject: [PATCH] - List create attributes in -list_hnd_attr, -list_tgt_attr and -list_grp_attr. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2027 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- .../scst-0.9.00/lib/SCST/SCST.pm | 2 +- scstadmin/scstadmin.sysfs/scstadmin | 74 ++++++++++++++++++- 2 files changed, 71 insertions(+), 5 deletions(-) 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 84638e78a..382c83ffa 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 @@ -3180,7 +3180,7 @@ sub initiatorCreateAttributes { } my $io = new IO::File mkpath(SCST_ROOT, SCST_TARGETS, $driver, $target, - SCST_GROUPS, $group, SCST_LUNS, SCST_MGMT_IO), O_RDONLY; + SCST_GROUPS, $group, SCST_INITIATORS, SCST_MGMT_IO), O_RDONLY; if (!$io) { $self->{'err_string'} = "initiatorCreateAttributes(): Unable to open initiators mgmt ". diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin index ca27d8e1c..32c623d27 100755 --- a/scstadmin/scstadmin.sysfs/scstadmin +++ b/scstadmin/scstadmin.sysfs/scstadmin @@ -2535,7 +2535,20 @@ sub listHandlerAttributes { return; } - return listAttributes($attributes, $nonkey); + my $rc = listAttributes($attributes, $nonkey); + return $rc if $rc; + + $attributes = $SCST->deviceCreateAttributes($handler); + + return if issueWarning($SCST->errorString()); + return if (!scalar keys %{$attributes}); + + print "\n\tDevice CREATE attributes available\n"; + print "\t----------------------------------\n"; + + foreach my $attribute (keys %{$attributes}) { + print "\t$attribute\n"; + } } sub listDriverAttributes { @@ -2551,7 +2564,22 @@ sub listDriverAttributes { return; } - return listAttributes($attributes, $nonkey); + my $rc = listAttributes($attributes, $nonkey); + return $rc if ($rc); + + if ($SCST->driverIsVirtualCapable($driver)) { + my $attributes = $SCST->targetCreateAttributes($driver); + + return if issueWarning($SCST->errorString()); + return if (!scalar keys %{$attributes}); + + print "\n\tTarget CREATE attributes available:\n"; + print "\t-----------------------------------\n"; + + foreach my $attribute (keys %{$attributes}) { + print "\t$attribute\n"; + } + } } sub listTargetAttributes { @@ -2568,7 +2596,20 @@ sub listTargetAttributes { return; } - return listAttributes($attributes, $nonkey); + my $rc = listAttributes($attributes, $nonkey); + return $rc if $rc; + + $attributes = $SCST->lunCreateAttributes($driver, $target); + + return if issueWarning($SCST->errorString()); + return if (!scalar keys %{$attributes}); + + print "\n\tLUN CREATE attributes available\n"; + print "\t-------------------------------\n"; + + foreach my $attribute (keys %{$attributes}) { + print "\t$attribute\n"; + } } sub listGroupAttributes { @@ -2586,7 +2627,32 @@ sub listGroupAttributes { return; } - return listAttributes($attributes, $nonkey); + my $rc = listAttributes($attributes, $nonkey); + return $rc if $rc; + + $attributes = $SCST->lunCreateAttributes($driver, $target, $group); + + return if issueWarning($SCST->errorString()); + return if (!scalar keys %{$attributes}); + + print "\n\tLUN CREATE attributes available\n"; + print "\t-------------------------------\n"; + + foreach my $attribute (keys %{$attributes}) { + print "\t$attribute\n"; + } + + $attributes = $SCST->initiatorCreateAttributes($driver, $target, $group); + + return if issueWarning($SCST->errorString()); + return if (!scalar keys %{$attributes}); + + print "\n\tInitiator CREATE attributes available\n"; + print "\t-------------------------------------\n"; + + foreach my $attribute (keys %{$attributes}) { + print "\t$attribute\n"; + } } sub listLunAttributes {