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 47523d126..b9c394438 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 @@ -644,6 +644,7 @@ sub initiators { my $target = shift; my $group = shift; my @initiators; + my $errorString; return (undef, "Too few arguments") if (!defined($driver) || !defined($target) || !defined($group)); @@ -652,7 +653,6 @@ sub initiators { my $_path = make_path(SCST_TARGETS_DIR(), $driver, $target, SCST_GROUPS, $group, SCST_INITIATORS); if (!(opendir $iHandle, $_path)) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "initiators(): Driver '$driver' is not available"; } elsif ($self->targetExists($driver, $target) != TRUE) { @@ -682,6 +682,7 @@ sub luns { my $driver = shift; my $target = shift; my $group = shift; + my $errorString; return (undef, "Too few arguments") if (!defined($driver) || !defined($target)); @@ -698,7 +699,6 @@ sub luns { my $lHandle = new IO::Handle; if (!(opendir $lHandle, $_path)) { - my $errorString; if (defined($group) && $self->groupExists($driver, $target, $group) != TRUE) { $errorString = "initiators(): Group '$group' does not exist"; } elsif ($self->driverExists($driver) != TRUE) { @@ -828,13 +828,13 @@ sub deviceGroupDevices { my $self = shift; my $group = shift; my @devices; + my $errorString; return (undef, "Too few arguments") if (!defined($group)); my $dHandle = new IO::Handle; my $_path = make_path(SCST_DEV_GROUP_DIR(), $group, SCST_DG_DEVICES); if (!(opendir $dHandle, $_path)) { - my $errorString; if ($self->deviceGroupExists($group) != TRUE) { $errorString = "deviceGroupDevices(): Device group '$group' does not exist"; } else { @@ -860,13 +860,13 @@ sub targetGroups { my $self = shift; my $group = shift; my @tgroups; + my $errorString; return (undef, "Too few arguments") if (!defined($group)); my $dHandle = new IO::Handle; my $_path = make_path(SCST_DEV_GROUP_DIR(), $group, SCST_DG_TGROUPS); if (!(opendir $dHandle, $_path)) { - my $errorString; if ($self->deviceGroupExists($group) != TRUE) { $errorString = "targetGroups(): Device group '$group' does not exist"; } else { @@ -893,13 +893,13 @@ sub targetGroupTargets { my $group = shift; my $tgroup = shift; my @targets; + my $errorString; return (undef, "Too few arguments") if (!defined($group) || !defined($tgroup)); my $dHandle = new IO::Handle; my $_path = make_path(SCST_DEV_GROUP_DIR(), $group, SCST_DG_TGROUPS, $tgroup); if (!(opendir $dHandle, $_path)) { - my $errorString; if ($self->deviceGroupExists($group) != TRUE) { $errorString = "targetGroupTargets(): Device group '$group' does not exist"; } elsif ($self->targetGroupExists($group, $tgroup) != TRUE) { @@ -943,6 +943,7 @@ sub driverDynamicAttributes { my $driver = shift; my %attributes; my $available; + my $errorString; return (undef, "Too few arguments") if (!defined($driver)); @@ -961,7 +962,6 @@ sub driverDynamicAttributes { SCST_MGMT_IO), O_RDONLY; if (!$io) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "driverDynamicAttributes(): Driver '$driver' ". "is not available"; @@ -1144,11 +1144,13 @@ sub targetType { my $self = shift; my $driver = shift; my $target = shift; + my $errorString; return (undef, "Too few arguments") if (!defined($driver) || !defined($target)); if ($self->driverIsVirtualCapable($driver)) { - my ($attribs, $errorString) = $self->targetAttributes($driver, $target); + my $attribs; + ($attribs, $errorString) = $self->targetAttributes($driver, $target); if (defined($$attribs{'hw_target'}) && ($$attribs{'hw_target'}->{'value'} == TRUE)) { @@ -1224,6 +1226,7 @@ sub targetDynamicAttributes { my $driver = shift; my %attributes; my $available; + my $errorString; return (undef, "Too few arguments") if (!defined($driver)); @@ -1242,7 +1245,6 @@ sub targetDynamicAttributes { SCST_MGMT_IO), O_RDONLY; if (!$io) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "targetDynamicAttributes(): Driver '$driver' ". "is not available"; @@ -1728,6 +1730,7 @@ sub addDeviceGroupDevice { my $self = shift; my $group = shift; my $device = shift; + my $errorString; return SCST_C_DGRP_ADD_DEV_FAIL if (!defined($group) || !defined($device)); @@ -1769,8 +1772,9 @@ sub addDeviceGroupDevice { my ($dgroups, $errorString) = $self->deviceGroups(); foreach my $dgroup (@{$dgroups}) { - my ($devs, $errorString) = $self->deviceGroupDevices($dgroup); + my $devs; + ($devs, $errorString) = $self->deviceGroupDevices($dgroup); foreach my $dev (@{$devs}) { return SCST_C_DGRP_DEVICE_OTHER if ($dev eq $device); } @@ -2586,11 +2590,12 @@ sub deviceAttributes { my $self = shift; my $device = shift; my %attributes; + my $errorString; + my $dca; my $pHandle = new IO::Handle; my $_path = make_path(SCST_DEVICES_DIR(), $device); if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->deviceOpen($device) != TRUE) { $errorString = "deviceAttributes(): Device '$device' is not open"; } else { @@ -2599,7 +2604,7 @@ sub deviceAttributes { return (undef, $errorString); } - my ($dca, $errorString) = $self->deviceCreateAttributes($self->deviceHandler($device)); + ($dca, $errorString) = $self->deviceCreateAttributes($self->deviceHandler($device)); foreach my $attribute (readdir($pHandle)) { next if ($attribute eq '.' || $attribute eq '..' || @@ -2722,11 +2727,11 @@ sub driverAttributes { my $self = shift; my $driver = shift; my %attributes; + my $errorString; my $pHandle = new IO::Handle; my $_path = make_path(SCST_TARGETS_DIR(), $driver); if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "driverAttributes(): Driver '$driver' is not available"; } else { @@ -2853,13 +2858,13 @@ sub targetAttributes { my $driver = shift; my $target = shift; my %attributes; + my $errorString; return (undef, "Too few arguments") if (!defined($driver) || !defined($target)); my $pHandle = new IO::Handle; my $_path = make_path(SCST_TARGETS_DIR(), $driver, $target); if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "targetAttributes(): Driver '$driver' is not available"; } elsif ($self->targetExists($driver, $target) != TRUE) { @@ -3005,12 +3010,12 @@ sub groupAttributes { my $target = shift; my $group = shift; my %attributes; + my $errorString; my $pHandle = new IO::Handle; my $_path = make_path(SCST_TARGETS_DIR(), $driver, $target, SCST_GROUPS, $group); if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "groupAttributes(): Driver '$driver' is not available"; } elsif ($self->targetExists($driver, $target) != TRUE) { @@ -3313,12 +3318,12 @@ sub initiatorAttributes { my $group = shift; my $initiator = shift; my %attributes; + my $errorString; my $pHandle = new IO::Handle; my $_path = make_path(SCST_TARGETS_DIR(), $driver, $target, SCST_GROUPS, $group, SCST_INITIATORS, $initiator); if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "initiatorAttributes(): Driver '$driver' is not available"; } elsif ($self->targetExists($driver, $target) != TRUE) { @@ -3444,11 +3449,11 @@ sub deviceGroupAttributes { my $self = shift; my $group = shift; my %attributes; + my $errorString; my $pHandle = new IO::Handle; my $_path = make_path(SCST_DEV_GROUP_DIR(), $group); if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->deviceGroupExists($group) != TRUE) { $errorString = "deviceGroupAttributes(): Device group '$group' does not exist"; } else { @@ -3522,11 +3527,11 @@ sub targetGroupAttributes { my $group = shift; my $tgroup = shift; my %attributes; + my $errorString; my $pHandle = new IO::Handle; my $_path = make_path(SCST_DEV_GROUP_DIR(), $group, SCST_DG_TGROUPS, $tgroup); if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->deviceGroupExists($group) != TRUE) { $errorString = "targetGroupAttributes(): Device group '$group' does not exist"; } elsif ($self->targetGroupExists($group, $tgroup) != TRUE) { @@ -3604,6 +3609,7 @@ sub targetGroupTargetAttributes { my $tgt = shift; my $local_tgt = shift; my %attributes; + my $errorString; my $pHandle = new IO::Handle; my $_path = make_path(SCST_DEV_GROUP_DIR(), $group, SCST_DG_TGROUPS, $tgroup, $tgt); @@ -3612,7 +3618,6 @@ sub targetGroupTargetAttributes { } if (!(opendir $pHandle, $_path)) { - my $errorString; if ($self->deviceGroupExists($group) != TRUE) { $errorString = "targetGroupTargetAttributes(): Device group '$group' does not exist"; } elsif ($self->targetGroupExists($group, $tgroup) != TRUE) { @@ -3894,6 +3899,7 @@ sub handlerAttributes { my $self = shift; my $handler = shift; my %attributes; + my $errorString; my ($a, $errorString) = devices($self, $handler); $attributes{'devices'}->{'value'} = $a; @@ -3901,7 +3907,6 @@ sub handlerAttributes { my $hHandle = new IO::Handle; my $_path = make_path(SCST_HANDLERS_DIR(), $handler); if (!(opendir $hHandle, $_path)) { - my $errorString; if ($self->handlerExists($handler) != TRUE) { $errorString = "handlerAttributes(): Handler '$handler' is not available"; } else { @@ -4042,11 +4047,11 @@ sub handlerDeviceExists { sub devicesByHandler { my $self = shift; my $handler = shift; + my $errorString; my ($attributes, $errorString) = $self->handlerAttributes($handler); if (!defined($attributes)) { - my $errorString; if ($self->handlerExists($handler) != TRUE) { $errorString = "devicesByHandler(): Handler '$handler' is not available"; } else { @@ -4094,6 +4099,7 @@ sub deviceCreateAttributes { my $handler = shift; my $available; my %attributes; + my $errorString; if (new_sysfs_interface()) { my $io = new IO::File make_path(SCST_HANDLERS_DIR(), $handler, @@ -4109,7 +4115,6 @@ sub deviceCreateAttributes { SCST_MGMT_IO), O_RDONLY; if (!$io) { - my $errorString; if ($self->handlerExists($handler) != TRUE) { $errorString = "deviceCreateAttributes(): Handler '$handler' ". "is not available"; @@ -4314,6 +4319,7 @@ sub targetCreateAttributes { my $driver = shift; my $available; my %attributes; + my $errorString; if (new_sysfs_interface()) { my $io = new IO::File make_path(SCST_TARGETS_DIR(), $driver, @@ -4328,7 +4334,6 @@ sub targetCreateAttributes { SCST_MGMT_IO), O_RDONLY; if (!$io) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "targetCreateAttributes(): Driver '$driver' ". "is not available"; @@ -4506,6 +4511,7 @@ sub lunCreateAttributes { my $group = shift; my $available; my %attributes; + my $errorString; my $_path; @@ -4543,7 +4549,6 @@ sub lunCreateAttributes { my $io = new IO::File $_path, O_RDONLY; if (!$io) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "lunCreateAttributes(): Driver '$driver' ". "is not available"; @@ -4628,6 +4633,7 @@ sub initiatorCreateAttributes { my $group = shift; my $available; my %attributes; + my $errorString; if (new_sysfs_interface()) { # Do nothing - there are no initiator attributes (yet). @@ -4638,7 +4644,6 @@ sub initiatorCreateAttributes { O_RDONLY; if (!$io) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "initiatorCreateAttributes(): Driver '$driver' ". "is not available"; @@ -4680,6 +4685,7 @@ sub sessions { my $driver = shift; my $target = shift; my %_sessions; + my $errorString; return (undef, "Too few arguments") if (!defined($driver) || !defined($target)); @@ -4687,7 +4693,6 @@ sub sessions { my $_path = make_path(SCST_TARGETS_DIR(), $driver, $target, SCST_SESSIONS); if (!(opendir $sHandle, $_path)) { - my $errorString; if ($self->driverExists($driver) != TRUE) { $errorString = "sessions(): Driver '$driver' ". "is not available"; diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin index 51947df28..7d70dfd91 100755 --- a/scstadmin/scstadmin.sysfs/scstadmin +++ b/scstadmin/scstadmin.sysfs/scstadmin @@ -1358,6 +1358,7 @@ sub main { sub readWorkingConfig { my $force = shift; + my $errorString; print "\nCollecting current configuration: "; @@ -1365,11 +1366,14 @@ sub readWorkingConfig { # Get current handlers/devices - my ($handlers, $errorString) = $SCST->handlers(); + my $handlers; + ($handlers, $errorString) = $SCST->handlers(); immediateExit($errorString); foreach my $handler (@{$handlers}) { - my ($devices, $errorString) = $SCST->devicesByHandler($handler); + my $devices; + + ($devices, $errorString) = $SCST->devicesByHandler($handler); immediateExit($errorString); $CURRENT{'handler'}->{$handler} = $devices; } @@ -1382,40 +1386,48 @@ sub readWorkingConfig { foreach my $driver (@{$drivers}) { my %empty; $CURRENT{'assign'}->{$driver} = \%empty; - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); immediateExit($errorString); foreach my $target (@{$targets}) { my %empty; $CURRENT{'assign'}->{$driver}->{$target} = \%empty; - my ($luns, $errorString) = $SCST->luns($driver, $target); + my $luns; + ($luns, $errorString) = $SCST->luns($driver, $target); $CURRENT{'assign'}->{$driver}->{$target}->{'LUN'} = $luns if (defined($luns)); - my ($groups, $errorString) = $SCST->groups($driver, $target); + my $groups; + ($groups, $errorString) = $SCST->groups($driver, $target); immediateExit($errorString); foreach my $group (@{$groups}) { - my ($initiators, $errorString) = $SCST->initiators($driver, $target, $group); + my $initiators; + ($initiators, $errorString) = $SCST->initiators($driver, $target, $group); immediateExit($errorString); $CURRENT{'assign'}->{$driver}->{$target}->{'GROUP'}->{$group}->{'INITIATORS'} = $initiators; - my ($luns, $errorString) = $SCST->luns($driver, $target, $group); + ($luns, $errorString) = $SCST->luns($driver, $target, $group); $CURRENT{'assign'}->{$driver}->{$target}->{'GROUP'}->{$group}->{'LUN'} = $luns; immediateExit($errorString); } } } - my ($dgroups, $errorString) = $SCST->deviceGroups(); + my $dgroups; + ($dgroups, $errorString) = $SCST->deviceGroups(); immediateExit($errorString); foreach my $dgroup (@{$dgroups}) { - my ($dgd, $errorString) = $SCST->deviceGroupDevices($dgroup); + my $dgd; + ($dgd, $errorString) = $SCST->deviceGroupDevices($dgroup); immediateExit($errorString); $CURRENT{'dgroups'}->{$dgroup}->{'devices'} = $dgd; - my ($tgroups, $errorString) = $SCST->targetGroups($dgroup); + my $tgroups; + ($tgroups, $errorString) = $SCST->targetGroups($dgroup); immediateExit($errorString); foreach my $tgroup (@{$tgroups}) { - my ($tgt, $errorString) = $SCST->targetGroupTargets($dgroup, $tgroup); + my $tgt; + ($tgt, $errorString) = $SCST->targetGroupTargets($dgroup, $tgroup); $CURRENT{'dgroups'}->{$dgroup}->{'tgroups'}->{$tgroup}->{'targets'} = $tgt; } } @@ -1532,9 +1544,11 @@ sub serializeNkAttr { sub isPassthroughDev { my $dev = shift; my $pt = FALSE; + my $errorString; foreach my $handler (keys %{$CURRENT{'handler'}}) { - my ($ha, $errorString) = $SCST->handlerAttributes($handler); + my $ha; + ($ha, $errorString) = $SCST->handlerAttributes($handler); next if ($ha->{'mgmt'} !~ 'echo "add_device H:C:I:L"'); my @devs = @{$CURRENT{'handler'}->{$handler}}; for my $i (0 .. $#devs) { @@ -1550,6 +1564,7 @@ sub isPassthroughDev { # Returns 0 upon success and 1 upon error. sub writeConfiguration { my $nonkey = shift; + my $errorString; my $io = new IO::File $CONFIGFILE, O_CREAT|O_WRONLY|O_TRUNC; @@ -1563,7 +1578,8 @@ sub writeConfiguration { print $io "# Automatically generated by $Version.\n\n"; { - my ($attributes, $errorString) = $SCST->scstAttributes(); + my $attributes; + ($attributes, $errorString) = $SCST->scstAttributes(); immediateExit($errorString); print $io serializeKeyAttr("", $attributes); @@ -1580,10 +1596,11 @@ sub writeConfiguration { foreach my $handler (sort keys %{$CURRENT{'handler'}}) { my $handler_buff; my $handler_buff_nk; + my $handler_attrs; + my $attributes; - my ($handler_attrs, $errorString) = $SCST->deviceCreateAttributes($handler); - my ($attributes, $errorString) = $SCST->handlerAttributes($handler); - + ($handler_attrs, $errorString) = $SCST->deviceCreateAttributes($handler); + ($attributes, $errorString) = $SCST->handlerAttributes($handler); $handler_buff = serializeKeyAttr("\t", $attributes); $handler_buff_nk = serializeNkAttr("\t", $attributes) if ($nonkey); @@ -1593,11 +1610,11 @@ sub writeConfiguration { foreach my $device (sort @{$devices}) { $device_buff .= "\tDEVICE $device"; - my ($attributes, $errorString) = $SCST->deviceAttributes($device); - + my $attributes; my $attribute_buff; my $attribute_buff_nk; + ($attributes, $errorString) = $SCST->deviceAttributes($device); $attribute_buff = serializeKeyAttr("\t\t", $attributes, $handler_attrs); $attribute_buff_nk = serializeNkAttr("\t\t", $attributes, $handler_attrs) if ($nonkey); $attribute_buff .= "\n" if ($attribute_buff); @@ -1638,28 +1655,29 @@ sub writeConfiguration { foreach my $driver (sort keys %{$CURRENT{'assign'}}) { my $driver_buff; - my ($drv_attrs, $errorString) = $SCST->driverAttributes($driver); - + my $drv_attrs; my $drv_attr_buff; my $drv_attr_buff_nk; + ($drv_attrs, $errorString) = $SCST->driverAttributes($driver); $drv_attr_buff = serializeKeyAttr("\t", $drv_attrs); $drv_attr_buff_nk = serializeNkAttr("\t", $drv_attrs) if ($nonkey); $drv_attr_buff .= "\n" if ($drv_attr_buff); $drv_attr_buff_nk .= "\n" if ($drv_attr_buff_nk); my $targets = $CURRENT{'assign'}->{$driver}; - my ($tgt_attrs, $errorString) = $SCST->targetCreateAttributes($driver); + my $tgt_attrs; + ($tgt_attrs, $errorString) = $SCST->targetCreateAttributes($driver); my $target_buff; foreach my $target (sort keys %{$targets}) { $target_buff .= "\tTARGET $target"; - my ($attributes, $errorString) = $SCST->targetAttributes($driver, $target); - + my $attributes; my $attribute_buff; my $attribute_buff_nk; + ($attributes, $errorString) = $SCST->targetAttributes($driver, $target); if (defined($$attributes{'hw_target'}) && ($$attributes{'hw_target'}->{'value'} == TRUE)) { $attribute_buff = "\t\tHW_TARGET\n\n"; @@ -1671,7 +1689,8 @@ sub writeConfiguration { $attribute_buff_nk .= "\n" if ($attribute_buff_nk); my $luns = $CURRENT{'assign'}->{$driver}->{$target}->{'LUN'}; - my ($lun_attrs, $errorString) = $SCST->lunCreateAttributes($driver, $target); + my $lun_attrs; + ($lun_attrs, $errorString) = $SCST->lunCreateAttributes($driver, $target); my $t_lun_buff; foreach my $lun (sort numerically keys %{$luns}) { @@ -1685,7 +1704,8 @@ sub writeConfiguration { $t_lun_buff .= "\t\tLUN $lun $lun_dev"; - my ($attributes, $errorString) = $SCST->lunAttributes($driver, $target, $lun); + my $attributes; + ($attributes, $errorString) = $SCST->lunAttributes($driver, $target, $lun); my $l_attribute_buff = serializeKeyAttr("\t\t\t", $attributes, @@ -1716,9 +1736,11 @@ sub writeConfiguration { my $group_buff; foreach my $group (sort keys %{$groups}) { - my ($lun_attrs, $errorString) = $SCST->lunCreateAttributes($driver, $target, $group); - my ($ini_attrs, $errorString) = $SCST->initiatorCreateAttributes($driver, $target, $group); + my $lun_attrs; + my $ini_attrs; + ($lun_attrs, $errorString) = $SCST->lunCreateAttributes($driver, $target, $group); + ($ini_attrs, $errorString) = $SCST->initiatorCreateAttributes($driver, $target, $group); $group_buff .= "\t\tGROUP $group"; my $luns = $CURRENT{'assign'}->{$driver}->{$target}->{'GROUP'}->{$group}->{'LUN'}; @@ -1729,7 +1751,8 @@ sub writeConfiguration { $lun_buff .= "\t\t\tLUN $lun $lun_dev"; - my ($attributes, $errorString) = $SCST->lunAttributes($driver, $target, $lun, $group); + my $attributes; + ($attributes, $errorString) = $SCST->lunAttributes($driver, $target, $lun, $group); my $l_attribute_buff = serializeKeyAttr("\t\t\t\t", @@ -1761,7 +1784,8 @@ sub writeConfiguration { foreach my $init (sort @{$inits}) { $init_buff .= "\n\t\t\tINITIATOR " . escapeMeta($init); - my ($attributes, $errorString) = $SCST->initiatorAttributes($driver, $target, $group, $init); + my $attributes; + ($attributes, $errorString) = $SCST->initiatorAttributes($driver, $target, $group, $init); my $i_attribute_buff = serializeKeyAttr("\t\t\t\t", @@ -1787,7 +1811,8 @@ sub writeConfiguration { } } - my ($grp_attributes, $errorString) = $SCST->groupAttributes($driver, $target, $group); + my $grp_attributes; + ($grp_attributes, $errorString) = $SCST->groupAttributes($driver, $target, $group); my $g_attribute_buff = serializeKeyAttr("\t\t\t", $grp_attributes); @@ -1858,7 +1883,8 @@ sub writeConfiguration { } } - my ($dga, $errorString) = $SCST->aluaAttributes(); + my $dga; + ($dga, $errorString) = $SCST->aluaAttributes(); my $dga_buff = serializeKeyAttr("\t", $dga); my $dga_buff_nk = serializeNkAttr("\t", $dga) if ($nonkey); if ($dga_buff_nk) { @@ -1873,12 +1899,11 @@ sub writeConfiguration { foreach my $dgroup (sort keys %{$CURRENT{'dgroups'}}) { my $dgroup_buff; - - my ($dgroup_attrs, $errorString) = $SCST->deviceGroupAttributes($dgroup); - + my $dgroup_attrs; my $dgrp_attr_buff; my $dgrp_attr_buff_nk; + ($dgroup_attrs, $errorString) = $SCST->deviceGroupAttributes($dgroup); $dgrp_attr_buff = serializeKeyAttr("\t", $dgroup_attrs); $dgrp_attr_buff_nk = serializeNkAttr("\t", $dgroup_attrs) if ($nonkey); $dgrp_attr_buff .= "\n" if ($dgrp_attr_buff); @@ -1901,11 +1926,11 @@ sub writeConfiguration { foreach my $tgroup (sort keys %{$tgroups}) { $tgroup_buff .= "\tTARGET_GROUP $tgroup"; - my ($attributes, $errorString) = $SCST->targetGroupAttributes($dgroup, $tgroup); - + my $attributes; my $attribute_buff; my $attribute_buff_nk; + ($attributes, $errorString) = $SCST->targetGroupAttributes($dgroup, $tgroup); $attribute_buff .= serializeKeyAttr("\t\t", $attributes); $attribute_buff_nk .= serializeNkAttr("\t\t", $attributes) if ($nonkey); $attribute_buff .= "\n" if ($attribute_buff); @@ -1917,7 +1942,9 @@ sub writeConfiguration { foreach my $tgt (@{$tgts}) { $tgt_buff .= "\t\tTARGET $tgt"; - my ($tgt_attrs, $errorString) = $SCST->targetGroupTargetAttributes($dgroup, $tgroup, $tgt); + my $tgt_attrs; + + ($tgt_attrs, $errorString) = $SCST->targetGroupTargetAttributes($dgroup, $tgroup, $tgt); my $t_attribute_buff = serializeKeyAttr("\t\t\t", $tgt_attrs); @@ -2211,14 +2238,16 @@ sub applyConfigDevices { my $config = shift; my $deletions = shift; my $changes = 0; + my $errorString; my $handlers = $CURRENT{'handler'}; foreach my $handler (keys %{$handlers}) { foreach my $device (@{$$handlers{$handler}}) { if (!defined($$config{'HANDLER'}->{$handler}->{'DEVICE'}->{$device})) { - my ($attributes, $errorString) = $SCST->deviceAttributes($device); + my $attributes; + ($attributes, $errorString) = $SCST->deviceAttributes($device); if ($deletions) { closeDevice($handler, $device, $deletions); $changes++; @@ -2244,13 +2273,15 @@ sub applyConfigDevices { my $attributes = configToAttr(\%_attributes); my $create_attrs = configToAttr(\%_attributes); - my ($possible, $errorString) = $SCST->deviceCreateAttributes($handler); + my $possible; + ($possible, $errorString) = $SCST->deviceCreateAttributes($handler); condExit($errorString); filterCreateAttributes($possible, $create_attrs, FALSE); filterCreateAttributes($possible, $attributes, TRUE); if (handlerHasDevice($handler, $device)) { - my ($old_create_attrs, $errorString) = $SCST->deviceAttributes($device); + my $old_create_attrs; + ($old_create_attrs, $errorString) = $SCST->deviceAttributes($device); condExit($errorString); filterCreateAttributes($possible, $old_create_attrs, FALSE); @@ -2308,6 +2339,7 @@ sub applyConfigAssignments { my $deletions = shift; my $only_del = shift; my $changes = 0; + my $errorString; my $assignments = $CURRENT{'assign'}; @@ -2330,9 +2362,11 @@ sub applyConfigAssignments { } } else { my $c_attrs = configToAttr($$config{'TARGET_DRIVER'}->{$driver}->{'TARGET'}->{$target}->{'LUN'}->{$lun}->{$device}); - my ($o_attrs, $errorString) = $SCST->lunAttributes($driver, $target, $lun); + my $o_attrs; + ($o_attrs, $errorString) = $SCST->lunAttributes($driver, $target, $lun); condExit($errorString); - my ($possible, $errorString) = $SCST->lunCreateAttributes($driver, $target); + my $possible; + ($possible, $errorString) = $SCST->lunCreateAttributes($driver, $target); condExit($errorString); filterCreateAttributes($possible, $c_attrs, FALSE); @@ -2373,9 +2407,11 @@ sub applyConfigAssignments { } } else { my $c_attrs = configToAttr($$config{'TARGET_DRIVER'}->{$driver}->{'TARGET'}->{$target}->{'GROUP'}->{$group}->{'LUN'}->{$lun}->{$device}); - my ($o_attrs, $errorString) = $SCST->lunAttributes($driver, $target, $lun, $group); + my $o_attrs; + ($o_attrs, $errorString) = $SCST->lunAttributes($driver, $target, $lun, $group); condExit($errorString); - my ($possible, $errorString) = $SCST->lunCreateAttributes($driver, $target, $group); + my $possible; + ($possible, $errorString) = $SCST->lunCreateAttributes($driver, $target, $group); condExit($errorString); filterCreateAttributes($possible, $c_attrs, FALSE); @@ -2445,6 +2481,7 @@ sub applyConfigEnableDrivers { my $config = shift; my $deletions = shift; my $changes = 0; + my $errorString; my $assignments = $$config{'TARGET_DRIVER'}; @@ -2457,7 +2494,8 @@ sub applyConfigEnableDrivers { } my $attributes = configToAttr(\%_attributes); - my ($d_attributes, $errorString) = $SCST->driverAttributes($driver); + my $d_attributes; + ($d_attributes, $errorString) = $SCST->driverAttributes($driver); if (defined($$d_attributes{'enabled'}) && ($$d_attributes{'enabled'}->{'value'} != $$attributes{'enabled'})) { @@ -2762,6 +2800,7 @@ sub applyConfigEnableTargets { my $config = shift; my $deletions = shift; my $changes = 0; + my $errorString; my $assignments = $$config{'TARGET_DRIVER'}; @@ -2778,7 +2817,8 @@ sub applyConfigEnableTargets { } my $attributes = configToAttr(\%_attributes); - my ($t_attributes, $errorString) = $SCST->targetAttributes($driver, $target); + my $t_attributes; + ($t_attributes, $errorString) = $SCST->targetAttributes($driver, $target); if (defined($$t_attributes{'enabled'}) && ($$t_attributes{'enabled'}->{'value'} != $$attributes{'enabled'})) { @@ -2898,6 +2938,7 @@ sub compareToKeyAttribute { sub clearConfiguration { my $dgroups = $CURRENT{'dgroups'}; my $assignments = $CURRENT{'assign'}; + my $errorString; print "-> Clearing running configuration.\n"; @@ -2937,7 +2978,9 @@ sub clearConfiguration { foreach my $handler (sort keys %{$handlers}) { foreach my $device (@{$$handlers{$handler}}) { - my ($attributes, $errorString) = $SCST->deviceAttributes($device); + my $attributes; + + ($attributes, $errorString) = $SCST->deviceAttributes($device); closeDevice($handler, $device, TRUE); } } @@ -2947,8 +2990,9 @@ sub clearConfiguration { my ($drivers, $errorString) = $SCST->drivers(); foreach my $driver (@{$drivers}) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { disableTarget($driver, $target); } @@ -2970,8 +3014,9 @@ sub addVirtualTarget { my ($targets, $errorString) = $SCST->targets($driver); foreach my $_target (@{$targets}) { - my ($attributes, $errorString) = $SCST->targetAttributes($driver, $_target); + my $attributes; + ($attributes, $errorString) = $SCST->targetAttributes($driver, $_target); if (defined($$attributes{'hw_target'}) && !$$attributes{'enabled'}->{'value'}) { enableTarget($driver, $_target); @@ -3042,8 +3087,9 @@ sub listHandler { $l_handler = length($handler) if ($l_handler < length($handler)); - my ($devices, $errorString) = $SCST->devicesByHandler($handler); + my $devices; + ($devices, $errorString) = $SCST->devicesByHandler($handler); if ($#{$devices} == -1) { push @{$devices}, '-'; } @@ -3063,9 +3109,10 @@ sub listHandler { print "\n"; foreach my $handler (sort keys %toprint) { - my ($devices, $errorString) = $SCST->devicesByHandler($handler); + my $devices; my $first = TRUE; + ($devices, $errorString) = $SCST->devicesByHandler($handler); if ($#{$devices} == -1) { push @{$devices}, '-'; } @@ -3325,7 +3372,8 @@ sub listTargets { $l_driver = length($driver) if ($l_driver < length($driver)); - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { $l_target = length($target) if ($l_target < length($target)); @@ -3344,8 +3392,9 @@ sub listTargets { my %p; foreach my $driver (sort keys %toprint) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { if (!defined($p{$driver})) { printf("\t%-*s %-*s\n", $l_driver, $driver, $l_target, $target); @@ -3366,14 +3415,16 @@ sub listSessions { my ($drivers, $errorString) = $SCST->drivers(); foreach my $driver (@{$drivers}) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { my $had_sessions = FALSE; + my $sessions; print "Driver/Target: $driver/$target\n\n"; - my ($sessions, $errorString) = $SCST->sessions($driver, $target); + ($sessions, $errorString) = $SCST->sessions($driver, $target); foreach my $session (keys %{$sessions}) { print "\tSession: $session\n\n"; @@ -3499,7 +3550,9 @@ sub listGroups { $driver = $_driver if (!$got_driver); if ($driver eq $_driver) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + + ($targets, $errorString) = $SCST->targets($driver); foreach my $_target (@{$targets}) { $target = $_target if (!$got_target); @@ -3512,7 +3565,9 @@ sub listGroups { print "\n"; - my ($groups, $errorString) = $SCST->groups($driver, $target); + my $groups; + + ($groups, $errorString) = $SCST->groups($driver, $target); foreach my $_group (@{$groups}) { $group = $_group if (!$got_group); @@ -3770,8 +3825,9 @@ sub listDriverAttributes { } } - my ($attributes, $errorString) = $SCST->targetCreateAttributes($driver); + my $attributes; + ($attributes, $errorString) = $SCST->targetCreateAttributes($driver); return TRUE if issueWarning($errorString); return TRUE if (!scalar keys %{$attributes}); @@ -4827,11 +4883,14 @@ sub addTargetGroupTarget { sub removeDeviceGroup { my $group = shift; my $force = shift; + my $errorString; if (!$force) { - my ($devices, $errorString) = $SCST->deviceGroupDevices($group); - my ($tgroups, $errorString) = $SCST->targetGroups($group); + my $devices; + my $tgroups; + ($devices, $errorString) = $SCST->deviceGroupDevices($group); + ($tgroups, $errorString) = $SCST->targetGroups($group); if (($#{$devices} > -1) || ($#{$tgroups} > -1)) { print "\n"; listDeviceGroup($group); @@ -4854,10 +4913,12 @@ sub removeTargetGroup { my $group = shift; my $tgroup = shift; my $force = shift; + my $errorString; if (!$force) { - my ($tgts, $errorString) = $SCST->targetGroupTargets($group, $tgroup); + my $tgts; + ($tgts, $errorString) = $SCST->targetGroupTargets($group, $tgroup); if ($#{$tgts} > -1) { print "\n"; listTargetGroup($group, $tgroup); @@ -4912,14 +4973,17 @@ sub removeDeviceGroupDevice { my $group = shift; my $device = shift; my $force = shift; + my $errorString; if (!$force) { my $found = FALSE; - my ($tgroups, $errorString) = $SCST->targetGroups($group); + my $tgroups; + ($tgroups, $errorString) = $SCST->targetGroups($group); foreach my $tgroup (@{$tgroups}) { - my ($targets, $errorString) = $SCST->targetGroupTargets($group, $tgroup); + my $targets; + ($targets, $errorString) = $SCST->targetGroupTargets($group, $tgroup); if ($#{$targets} > -1) { print "\n"; listTargetGroup($group, $tgroup); @@ -4966,11 +5030,14 @@ sub removeGroup { my $target = shift; my $group = shift; my $force = shift; + my $errorString; if (!$force) { - my ($luns, $errorString) = $SCST->luns($driver, $target, $group); - my ($initiators, $errorString) = $SCST->initiators($driver, $target, $group); + my $luns; + my $initiators; + ($luns, $errorString) = $SCST->luns($driver, $target, $group); + ($initiators, $errorString) = $SCST->initiators($driver, $target, $group); if ((keys %{$luns}) || ($#{$initiators} > -1)) { listGroup($driver, $target, $group, $luns, $initiators); immediateExit("Group is still in use, aborting. Use -force to override."); @@ -5273,15 +5340,18 @@ sub issueLip { my $driver = shift; my $target = shift; my $warn = shift; + my $errorString; if (defined($driver) && defined($target)) { return _issueLip($driver, $target, $warn); } else { - my ($drivers, $errorString) = $SCST->drivers(); + my $drivers; + ($drivers, $errorString) = $SCST->drivers(); foreach my $driver(@{$drivers}) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { my $rc = _issueLip($driver, $target, $warn); @@ -5560,8 +5630,9 @@ sub readOldConfigFile { my($device, $lun) = split(/\,/, $device); foreach my $driver (@{$drivers}) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { $new{'TARGET_DRIVER'}->{$driver}->{'TARGET'}->{$target}->{'LUN'}->{$lun}->{$device} = {}; } @@ -5573,8 +5644,9 @@ sub readOldConfigFile { my $found_t = FALSE; # Find the associated target foreach my $driver (@{$drivers}) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { if ($target eq $group_t) { foreach my $device (@{$config{'ASSIGNMENT'}->{$group}->{'DEVICE'}}) { @@ -5625,8 +5697,9 @@ sub readOldConfigFile { # Fill in with known targets, all disabled. foreach my $driver (@{$drivers}) { - my ($targets, $errorString) = $SCST->targets($driver); + my $targets; + ($targets, $errorString) = $SCST->targets($driver); foreach my $target (@{$targets}) { addAllGroupsToTarget(\%config, \%new, $driver, $target); } @@ -5644,8 +5717,9 @@ sub readOldConfigFile { foreach my $driver (keys %{$new{'TARGET_DRIVER'}}) { next if ($driver =~ /^qla/); - my ($attributes, $errorString) = $SCST->driverAttributes($driver); + my $attributes; + ($attributes, $errorString) = $SCST->driverAttributes($driver); if (defined($$attributes{'enabled'})) { $new{'TARGET_DRIVER'}->{$driver}->{'enabled'}->{'1'} = {}; }