mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-18 19:21:26 +00:00
- Hopefully fix all remaining exit code issues.
- Better fix for empty groups - don't write empty braces. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2968 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -1405,8 +1405,9 @@ sub writeConfiguration {
|
||||
}
|
||||
}
|
||||
|
||||
$group_buff .= " {\n";
|
||||
if ($lun_buff || $init_buff) {
|
||||
$group_buff .= " {\n";
|
||||
|
||||
if ($lun_buff) {
|
||||
$group_buff .= $lun_buff;
|
||||
}
|
||||
@@ -1456,7 +1457,8 @@ sub writeConfiguration {
|
||||
$group_buff .= $g_attribute_buff;
|
||||
}
|
||||
|
||||
if ($group_buff) {
|
||||
if ($group_buff && ($lun_buff || $init_buff ||
|
||||
$g_attribute_buff || $g_attribute_buff_nk)) {
|
||||
$group_buff .= "\t\t}\n\n";
|
||||
$group_buff =~ s/\n+$/\n/;
|
||||
}
|
||||
@@ -1694,7 +1696,7 @@ sub applyConfiguration {
|
||||
|
||||
print "\t-> Done, $changes change(s) made.\n";
|
||||
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub applyConfigDevices {
|
||||
@@ -1901,7 +1903,7 @@ sub applyConfigAssignments {
|
||||
}
|
||||
}
|
||||
|
||||
return if ($only_del);
|
||||
return $changes if ($only_del);
|
||||
|
||||
$assignments = $$config{'TARGET_DRIVER'};
|
||||
|
||||
@@ -2254,6 +2256,8 @@ sub clearConfiguration {
|
||||
}
|
||||
|
||||
print "\t-> Configuration cleared.\n";
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub addVirtualTarget {
|
||||
@@ -2303,6 +2307,8 @@ sub listHandlers {
|
||||
foreach my $handler (@{$handlers}) {
|
||||
print "\t$handler\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listHandler {
|
||||
@@ -2363,6 +2369,8 @@ sub listHandler {
|
||||
} else {
|
||||
print "No such handler '$handler' found.\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listDevices {
|
||||
@@ -2379,7 +2387,7 @@ sub listDevice {
|
||||
|
||||
my $attributes = $SCST->deviceAttributes($device);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
print "No such device '$device' exists.\n";
|
||||
@@ -2411,6 +2419,8 @@ sub listDrivers {
|
||||
foreach my $driver (@{$drivers}) {
|
||||
print "\t$driver\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listTargets {
|
||||
@@ -2468,6 +2478,8 @@ sub listTargets {
|
||||
} else {
|
||||
print "No such driver '$driver' exists.\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listSessions {
|
||||
@@ -2509,6 +2521,8 @@ sub listSessions {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listGroup {
|
||||
@@ -2522,7 +2536,7 @@ sub listGroup {
|
||||
$initiators = $SCST->initiators($driver, $target, $group)
|
||||
if (($initiators eq '') && ($group ne ''));
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if ((keys %{$luns}) || ($#{$initiators} > -1)) {
|
||||
my $l_device;
|
||||
@@ -2581,6 +2595,7 @@ sub listGroup {
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listGroups {
|
||||
@@ -2642,6 +2657,8 @@ sub listGroups {
|
||||
print "Target '$target' not found.\n";
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listExported {
|
||||
@@ -2650,7 +2667,7 @@ sub listExported {
|
||||
|
||||
$attributes = $SCST->deviceAttributes($device) if (!$attributes);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (keys %{$$attributes{'exported'}}) {
|
||||
my $exported = $$attributes{'exported'}->{'value'};
|
||||
@@ -2695,6 +2712,8 @@ sub listExported {
|
||||
} else {
|
||||
print "Device '$device' is not currently in use by any group.\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listAttributes {
|
||||
@@ -2809,6 +2828,8 @@ sub listAttributes {
|
||||
|
||||
print "\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listScstAttributes {
|
||||
@@ -2816,7 +2837,7 @@ sub listScstAttributes {
|
||||
|
||||
my $attributes = $SCST->scstAttributes();
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
print "FATAL: Unable to get a list of SCST attributes! Please make sure SCST is loaded.\n";
|
||||
@@ -2832,7 +2853,7 @@ sub listHandlerAttributes {
|
||||
|
||||
my $attributes = $SCST->handlerAttributes($handler);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
print "No such handler '$handler' found.\n";
|
||||
@@ -2844,8 +2865,8 @@ sub listHandlerAttributes {
|
||||
|
||||
$attributes = $SCST->deviceCreateAttributes($handler);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return if (!scalar keys %{$attributes});
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
return TRUE if (!scalar keys %{$attributes});
|
||||
|
||||
print "\n\tDevice CREATE attributes available\n";
|
||||
print "\t----------------------------------\n";
|
||||
@@ -2853,6 +2874,8 @@ sub listHandlerAttributes {
|
||||
foreach my $attribute (keys %{$attributes}) {
|
||||
print "\t$attribute\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listDriverAttributes {
|
||||
@@ -2861,7 +2884,7 @@ sub listDriverAttributes {
|
||||
|
||||
my $attributes = $SCST->driverAttributes($driver);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
print "No such driver '$driver' found.\n";
|
||||
@@ -2873,7 +2896,7 @@ sub listDriverAttributes {
|
||||
|
||||
if ($SCST->driverIsVirtualCapable($driver)) {
|
||||
$attributes = $SCST->driverDynamicAttributes($driver);
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (scalar keys %{$attributes}) {
|
||||
print "\n\tDynamic attributes available\n";
|
||||
@@ -2886,8 +2909,8 @@ sub listDriverAttributes {
|
||||
|
||||
my $attributes = $SCST->targetCreateAttributes($driver);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return if (!scalar keys %{$attributes});
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
return TRUE if (!scalar keys %{$attributes});
|
||||
|
||||
print "\n\tTarget CREATE attributes available:\n";
|
||||
print "\t-----------------------------------\n";
|
||||
@@ -2896,6 +2919,8 @@ sub listDriverAttributes {
|
||||
print "\t$attribute\n";
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listTargetAttributes {
|
||||
@@ -2905,7 +2930,7 @@ sub listTargetAttributes {
|
||||
|
||||
my $attributes = $SCST->targetAttributes($driver, $target);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
print "No such driver/target '$driver/$target' found.\n";
|
||||
@@ -2917,7 +2942,7 @@ sub listTargetAttributes {
|
||||
|
||||
if ($SCST->driverIsVirtualCapable($driver)) {
|
||||
$attributes = $SCST->targetDynamicAttributes($driver);
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (scalar keys %{$attributes}) {
|
||||
print "\n\tDynamic attributes available\n";
|
||||
@@ -2931,8 +2956,8 @@ sub listTargetAttributes {
|
||||
|
||||
$attributes = $SCST->lunCreateAttributes($driver, $target);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return if (!scalar keys %{$attributes});
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
return TRUE if (!scalar keys %{$attributes});
|
||||
|
||||
print "\n\tLUN CREATE attributes available\n";
|
||||
print "\t-------------------------------\n";
|
||||
@@ -2940,6 +2965,8 @@ sub listTargetAttributes {
|
||||
foreach my $attribute (keys %{$attributes}) {
|
||||
print "\t$attribute\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listGroupAttributes {
|
||||
@@ -2950,7 +2977,7 @@ sub listGroupAttributes {
|
||||
|
||||
my $attributes = $SCST->groupAttributes($driver, $target, $group);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
print "No such driver/target/group '$driver/$target/$group' found.\n";
|
||||
@@ -2962,8 +2989,8 @@ sub listGroupAttributes {
|
||||
|
||||
$attributes = $SCST->lunCreateAttributes($driver, $target, $group);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return if (!scalar keys %{$attributes});
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
return TRUE if (!scalar keys %{$attributes});
|
||||
|
||||
print "\n\tLUN CREATE attributes available\n";
|
||||
print "\t-------------------------------\n";
|
||||
@@ -2974,8 +3001,8 @@ sub listGroupAttributes {
|
||||
|
||||
$attributes = $SCST->initiatorCreateAttributes($driver, $target, $group);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return if (!scalar keys %{$attributes});
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
return TRUE if (!scalar keys %{$attributes});
|
||||
|
||||
print "\n\tInitiator CREATE attributes available\n";
|
||||
print "\t-------------------------------------\n";
|
||||
@@ -2983,6 +3010,8 @@ sub listGroupAttributes {
|
||||
foreach my $attribute (keys %{$attributes}) {
|
||||
print "\t$attribute\n";
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub listLunAttributes {
|
||||
@@ -2994,7 +3023,7 @@ sub listLunAttributes {
|
||||
|
||||
my $attributes = $SCST->lunAttributes($driver, $target, $lun, $group);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
if ($group ne '') {
|
||||
@@ -3024,7 +3053,7 @@ sub listInitiatorAttributes {
|
||||
return;
|
||||
}
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
if (!scalar(keys %{$attributes})) {
|
||||
print "No such driver/target/group/initiator '$driver/$target/$group/$initiator' found.\n";
|
||||
@@ -3058,7 +3087,7 @@ sub setScstAttributes {
|
||||
my $error = "\t-> WARNING: SCST lacks the settable attribute '%s', ignoring.\n\n";
|
||||
my $_attributes = $SCST->scstAttributes();
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
return setAttributes(undef, undef, undef, undef, $attributes,
|
||||
$_attributes, $error, \&setScstAttribute, $showset);
|
||||
@@ -3088,7 +3117,7 @@ sub setDeviceAttributes {
|
||||
"attribute '%s', ignoring.\n\n";
|
||||
my $_attributes = $SCST->deviceAttributes($device);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
return setAttributes(undef, undef, undef, $device, $attributes,
|
||||
$_attributes, $error, \&setDeviceAttribute, $showset);
|
||||
@@ -3118,7 +3147,7 @@ sub setHandlerAttributes {
|
||||
"attribute '%s', ignoring.\n\n";
|
||||
my $_attributes = $SCST->handlerAttributes($handler);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
return setAttributes(undef, undef, undef, $handler, $attributes,
|
||||
$_attributes, $error, \&setHandlerAttribute, $showset);
|
||||
@@ -3151,7 +3180,7 @@ sub setGroupAttributes {
|
||||
"attribute '%s', ignoring.\n\n";
|
||||
my $_attributes = $SCST->groupAttributes($driver, $target, $group);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
return setAttributes(undef, $driver, $target, $group, $attributes,
|
||||
$_attributes, $error, \&setGroupAttribute, $showset);
|
||||
@@ -3198,7 +3227,7 @@ sub setLunAttributes {
|
||||
|
||||
my $_attributes = $SCST->lunAttributes($driver, $target, $lun, $group);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
return setAttributes($driver, $target, $lun, $group, $attributes,
|
||||
$_attributes, $error, \&setLunAttribute, $showset);
|
||||
@@ -3231,7 +3260,7 @@ sub setInitiatorAttributes {
|
||||
|
||||
my $_attributes = $SCST->initiatorAttributes($driver, $target, $group, $initiator);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
# As if writing, initiators didn't have attributes. This will
|
||||
# allow us to support it in the future.
|
||||
@@ -3326,7 +3355,7 @@ sub setDriverAttributes {
|
||||
my $driverCap = $SCST->driverIsVirtualCapable($driver);
|
||||
my $_attributes = $SCST->driverAttributes($driver);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return 0 if issueWarning($SCST->errorString());
|
||||
|
||||
# build caches for easier matching
|
||||
foreach my $attribute (keys %{$attributes}) {
|
||||
@@ -3399,7 +3428,7 @@ sub addDriverDynamicAttributes {
|
||||
|
||||
my $_attributes = $SCST->driverAttributes($driver);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
my $existing = cacheAttributes($_attributes);
|
||||
|
||||
@@ -3412,6 +3441,8 @@ sub addDriverDynamicAttributes {
|
||||
|
||||
addDriverDynamicAttribute($driver, $attribute, $$attributes{$attribute});
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub addDriverDynamicAttribute {
|
||||
@@ -3424,6 +3455,8 @@ sub addDriverDynamicAttribute {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub removeDriverDynamicAttributes {
|
||||
@@ -3432,7 +3465,7 @@ sub removeDriverDynamicAttributes {
|
||||
|
||||
my $_attributes = $SCST->driverAttributes($driver);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
my $existing = cacheAttributes($_attributes);
|
||||
|
||||
@@ -3445,6 +3478,8 @@ sub removeDriverDynamicAttributes {
|
||||
|
||||
removeDriverDynamicAttribute($driver, $attribute, $$attributes{$attribute});
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub removeDriverDynamicAttribute {
|
||||
@@ -3452,13 +3487,15 @@ sub removeDriverDynamicAttribute {
|
||||
my $attribute = shift;
|
||||
my $value = shift;
|
||||
|
||||
return if (!$SCST->driverIsVirtualCapable($driver));
|
||||
return TRUE if (!$SCST->driverIsVirtualCapable($driver));
|
||||
|
||||
print "\t-> Removing dynamic attribute '$attribute' with value '$value' for driver '$driver': ";
|
||||
my $rc = $SCST->removeDriverDynamicAttribute($driver, $attribute, $value);
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub setTargetAttribute {
|
||||
@@ -3479,6 +3516,8 @@ sub setTargetAttribute {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub setTargetAttributes {
|
||||
@@ -3492,7 +3531,7 @@ sub setTargetAttributes {
|
||||
my $driverCap = $SCST->driverIsVirtualCapable($driver);
|
||||
my $_attributes = $SCST->targetAttributes($driver, $target);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return 0 if issueWarning($SCST->errorString());
|
||||
|
||||
# build caches for easier matching
|
||||
foreach my $attribute (keys %{$attributes}) {
|
||||
@@ -3568,7 +3607,7 @@ sub addTargetDynamicAttributes {
|
||||
|
||||
my $_attributes = $SCST->targetAttributes($driver, $target);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
my $existing = cacheAttributes($_attributes);
|
||||
|
||||
@@ -3582,6 +3621,8 @@ sub addTargetDynamicAttributes {
|
||||
|
||||
addTargetDynamicAttribute($driver, $target, $attribute, $$attributes{$attribute});
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub addTargetDynamicAttribute {
|
||||
@@ -3596,6 +3637,8 @@ sub addTargetDynamicAttribute {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub removeTargetDynamicAttributes {
|
||||
@@ -3605,7 +3648,7 @@ sub removeTargetDynamicAttributes {
|
||||
|
||||
my $_attributes = $SCST->targetAttributes($driver, $target);
|
||||
|
||||
return if issueWarning($SCST->errorString());
|
||||
return TRUE if issueWarning($SCST->errorString());
|
||||
|
||||
my $existing = cacheAttributes($_attributes);
|
||||
|
||||
@@ -3619,6 +3662,8 @@ sub removeTargetDynamicAttributes {
|
||||
|
||||
removeTargetDynamicAttribute($driver, $target, $attribute, $$attributes{$attribute});
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub removeTargetDynamicAttribute {
|
||||
@@ -3627,13 +3672,15 @@ sub removeTargetDynamicAttribute {
|
||||
my $attribute = shift;
|
||||
my $value = shift;
|
||||
|
||||
return if (!$SCST->driverIsVirtualCapable($driver));
|
||||
return TRUE if (!$SCST->driverIsVirtualCapable($driver));
|
||||
|
||||
print "\t-> Removing dynamic attribute '$attribute' with value '$value' for driver/target '$driver/$target': ";
|
||||
my $rc = $SCST->removeTargetDynamicAttribute($driver, $target, $attribute, $value);
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
####################################################################
|
||||
@@ -3650,6 +3697,8 @@ sub openDevice {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub closeDevice {
|
||||
@@ -3674,13 +3723,15 @@ sub closeDevice {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub resyncDevice {
|
||||
my $device = shift;
|
||||
my %attributes = ('resync_size', 1);
|
||||
|
||||
setDeviceAttributes($device, \%attributes);
|
||||
return setDeviceAttributes($device, \%attributes);
|
||||
}
|
||||
|
||||
####################################################################
|
||||
@@ -3697,6 +3748,8 @@ sub addGroup {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub removeGroup {
|
||||
@@ -3722,6 +3775,8 @@ sub removeGroup {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
####################################################################
|
||||
@@ -3754,6 +3809,8 @@ sub addInitiator {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub removeInitiator {
|
||||
@@ -3770,6 +3827,8 @@ sub removeInitiator {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub moveInitiator {
|
||||
@@ -3786,6 +3845,8 @@ sub moveInitiator {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub clearInitiators {
|
||||
@@ -3800,6 +3861,8 @@ sub clearInitiators {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
####################################################################
|
||||
@@ -3825,6 +3888,8 @@ sub addLun {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub removeLun {
|
||||
@@ -3846,6 +3911,8 @@ sub removeLun {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub replaceLun {
|
||||
@@ -3864,6 +3931,8 @@ sub replaceLun {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub clearLuns {
|
||||
@@ -3882,12 +3951,14 @@ sub clearLuns {
|
||||
print "done.\n";
|
||||
|
||||
immediateExit($SCST->errorString($rc)) if ($rc);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub clearDriverDynamicAttributes {
|
||||
my $driver = shift;
|
||||
|
||||
return if (!$SCST->driverIsVirtualCapable($driver));
|
||||
return TRUE if (!$SCST->driverIsVirtualCapable($driver));
|
||||
|
||||
print "\t-> Removing all dynamic attributes from driver '$driver': ";
|
||||
|
||||
@@ -3908,13 +3979,15 @@ sub clearDriverDynamicAttributes {
|
||||
}
|
||||
|
||||
print "done.\n";
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub clearTargetDynamicAttributes {
|
||||
my $driver = shift;
|
||||
my $target = shift;
|
||||
|
||||
return if (!$SCST->driverIsVirtualCapable($driver));
|
||||
return TRUE if (!$SCST->driverIsVirtualCapable($driver));
|
||||
|
||||
print "\t-> Removing all dynamic attributes from driver/target '$driver/$target': ";
|
||||
|
||||
@@ -3935,6 +4008,8 @@ sub clearTargetDynamicAttributes {
|
||||
}
|
||||
|
||||
print "done.\n";
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
####################################################################
|
||||
@@ -3945,6 +4020,8 @@ sub enableTarget {
|
||||
my %attributes = ('enabled', 1);
|
||||
|
||||
setTargetAttributes($driver, $target, \%attributes);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub disableTarget {
|
||||
@@ -3953,6 +4030,8 @@ sub disableTarget {
|
||||
my %attributes = ('enabled', 0);
|
||||
|
||||
setTargetAttributes($driver, $target, \%attributes);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub enableDriver {
|
||||
@@ -3960,9 +4039,9 @@ sub enableDriver {
|
||||
my %attributes = ('enabled', 1);
|
||||
|
||||
my $attrs = $SCST->driverAttributes($driver);
|
||||
return if (!defined($$attrs{'enabled'}));
|
||||
return TRUE if (!defined($$attrs{'enabled'}));
|
||||
|
||||
setDriverAttributes($driver, \%attributes);
|
||||
return setDriverAttributes($driver, \%attributes);
|
||||
}
|
||||
|
||||
sub disableDriver {
|
||||
@@ -3970,9 +4049,9 @@ sub disableDriver {
|
||||
my %attributes = ('enabled', 0);
|
||||
|
||||
my $attrs = $SCST->driverAttributes($driver);
|
||||
return if (!defined($$attrs{'enabled'}));
|
||||
return TRUE if (!defined($$attrs{'enabled'}));
|
||||
|
||||
setDriverAttributes($driver, \%attributes);
|
||||
return setDriverAttributes($driver, \%attributes);
|
||||
}
|
||||
|
||||
sub issueLip {
|
||||
@@ -4084,6 +4163,8 @@ sub readConfigFile {
|
||||
@buff_a = split(//, $buffer);
|
||||
|
||||
$CONFIG = parseStanza(\@buff_a);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub parseStanza {
|
||||
@@ -4383,6 +4464,8 @@ sub addAllGroupsToTarget {
|
||||
%{$$new{'TARGET_DRIVER'}->{$driver}->{'TARGET'}->{$target}->{'GROUP'}->{$group}->{'LUN'}->{$lun}->{$device}} = ();
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub findTargetDriver {
|
||||
@@ -4496,7 +4579,7 @@ sub numerically {
|
||||
sub immediateExit {
|
||||
my $error = shift;
|
||||
|
||||
return if (!$error);
|
||||
return FALSE if (!$error);
|
||||
|
||||
print "\n\nFATAL: Received the following error:\n\n\t";
|
||||
print "$error\n\n";
|
||||
|
||||
Reference in New Issue
Block a user