mirror of
https://github.com/SCST-project/scst.git
synced 2026-08-20 06:06:23 +00:00
scstadmin, SCST.pm: Check the number of arguments passed to subroutines
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5060 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -572,6 +572,8 @@ sub targets {
|
||||
my $driver = shift;
|
||||
my @targets;
|
||||
|
||||
return undef if (!defined($driver));
|
||||
|
||||
if ($self->driverExists($driver) != TRUE) {
|
||||
$self->{'err_string'} = "targets(): Driver '$driver' is not available";
|
||||
return undef;
|
||||
@@ -604,6 +606,8 @@ sub groups {
|
||||
my $target = shift;
|
||||
my @groups;
|
||||
|
||||
return undef if (!defined($driver) || !defined($target));
|
||||
|
||||
if ($self->driverExists($driver) != TRUE) {
|
||||
$self->{'err_string'} = "groups(): Driver '$driver' is not available";
|
||||
return undef;
|
||||
@@ -643,6 +647,9 @@ sub initiators {
|
||||
my $group = shift;
|
||||
my @initiators;
|
||||
|
||||
return undef if (!defined($driver) || !defined($target) ||
|
||||
!defined($group));
|
||||
|
||||
if ($self->driverExists($driver) != TRUE) {
|
||||
$self->{'err_string'} = "initiators(): Driver '$driver' is not available";
|
||||
return undef;
|
||||
@@ -685,6 +692,8 @@ sub luns {
|
||||
my $group = shift;
|
||||
my %luns;
|
||||
|
||||
return undef if (!defined($driver) || !defined($target));
|
||||
|
||||
if ($self->driverExists($driver) != TRUE) {
|
||||
$self->{'err_string'} = "luns(): Driver '$driver' is not available";
|
||||
return undef;
|
||||
@@ -827,6 +836,8 @@ sub deviceGroupDevices {
|
||||
my $group = shift;
|
||||
my @devices;
|
||||
|
||||
return undef if (!defined($group));
|
||||
|
||||
if ($self->deviceGroupExists($group) != TRUE) {
|
||||
$self->{'err_string'} = "deviceGroupDevices(): Device group '$group' does not exist";
|
||||
return undef;
|
||||
@@ -857,6 +868,8 @@ sub targetGroups {
|
||||
my $group = shift;
|
||||
my @tgroups;
|
||||
|
||||
return undef if (!defined($group));
|
||||
|
||||
if ($self->deviceGroupExists($group) != TRUE) {
|
||||
$self->{'err_string'} = "targetGroups(): Device group '$group' does not exist";
|
||||
return undef;
|
||||
@@ -888,6 +901,8 @@ sub targetGroupTargets {
|
||||
my $tgroup = shift;
|
||||
my @targets;
|
||||
|
||||
return undef if (!defined($group) || !defined($tgroup));
|
||||
|
||||
if ($self->deviceGroupExists($group) != TRUE) {
|
||||
$self->{'err_string'} = "targetGroupTargets(): Device group '$group' does not exist";
|
||||
return undef;
|
||||
@@ -922,6 +937,8 @@ sub driverExists {
|
||||
my $self = shift;
|
||||
my $driver = shift;
|
||||
|
||||
return FALSE if (!defined($driver));
|
||||
|
||||
my $drivers = $self->drivers();
|
||||
|
||||
return SCST_C_FATAL_ERROR if (!defined($drivers));
|
||||
@@ -939,6 +956,8 @@ sub driverDynamicAttributes {
|
||||
my %attributes;
|
||||
my $available;
|
||||
|
||||
return undef if (!defined($driver));
|
||||
|
||||
if ($self->driverExists($driver) != TRUE) {
|
||||
$self->{'err_string'} = "driverDynamicAttributes(): Driver '$driver' ".
|
||||
"is not available";
|
||||
@@ -1151,6 +1170,8 @@ sub targetType {
|
||||
my $driver = shift;
|
||||
my $target = shift;
|
||||
|
||||
return undef if (!defined($driver) || !defined($target));
|
||||
|
||||
if ($self->driverIsVirtualCapable($driver)) {
|
||||
my $attribs = $self->targetAttributes($driver, $target);
|
||||
|
||||
@@ -1566,6 +1587,9 @@ sub addGroup {
|
||||
my $target = shift;
|
||||
my $group = shift;
|
||||
|
||||
return SCST_C_GRP_ADD_FAIL if (!defined($driver) || !defined($target) ||
|
||||
!defined($group));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1613,6 +1637,9 @@ sub removeGroup {
|
||||
my $target = shift;
|
||||
my $group = shift;
|
||||
|
||||
return SCST_C_GRP_REM_FAIL if (!defined($driver) || !defined($target) ||
|
||||
!defined($group));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1658,6 +1685,8 @@ sub addDeviceGroup {
|
||||
my $self = shift;
|
||||
my $group = shift;
|
||||
|
||||
return SCST_C_DEV_GRP_ADD_FAIL if (!defined($group));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_EXISTS if ($rc == TRUE);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1693,6 +1722,8 @@ sub removeDeviceGroup {
|
||||
my $self = shift;
|
||||
my $group = shift;
|
||||
|
||||
return SCST_C_DEV_GRP_REM_FAIL if (!defined($group));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1729,6 +1760,8 @@ sub addDeviceGroupDevice {
|
||||
my $group = shift;
|
||||
my $device = shift;
|
||||
|
||||
return SCST_C_DGRP_ADD_DEV_FAIL if (!defined($group) || !defined($device));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1785,6 +1818,8 @@ sub addTargetGroup {
|
||||
my $group = shift;
|
||||
my $tgroup = shift;
|
||||
|
||||
return SCST_C_DGRP_ADD_GRP_FAIL if (!defined($group) || !defined($tgroup));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1827,6 +1862,8 @@ sub addTargetGroupTarget {
|
||||
my $tgroup = shift;
|
||||
my $tgt = shift;
|
||||
|
||||
return SCST_C_TGRP_ADD_TGT_FAIL if (!defined($group) || !defined($tgroup) || !defined($tgt));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1873,6 +1910,8 @@ sub removeDeviceGroupDevice {
|
||||
my $group = shift;
|
||||
my $device = shift;
|
||||
|
||||
return SCST_C_DGRP_REM_DEV_FAIL if (!defined($group) || !defined($device));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1918,6 +1957,8 @@ sub removeTargetGroup {
|
||||
my $group = shift;
|
||||
my $tgroup = shift;
|
||||
|
||||
return SCST_C_DGRP_REM_GRP_FAIL if (!defined($group) || !defined($tgroup));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -1960,6 +2001,8 @@ sub removeTargetGroupTarget {
|
||||
my $tgroup = shift;
|
||||
my $tgt = shift;
|
||||
|
||||
return SCST_C_TGRP_REM_TGT_FAIL if (!defined($group) || !defined($tgroup) || !defined($tgt));
|
||||
|
||||
my $rc = $self->deviceGroupExists($group);
|
||||
return SCST_C_DEV_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -2008,6 +2051,10 @@ sub addInitiator {
|
||||
my $group = shift;
|
||||
my $initiator = shift;
|
||||
|
||||
return SCST_C_GRP_ADD_INI_FAIL
|
||||
if (!defined($driver) || !defined($target) ||
|
||||
!defined($group) || !defined($initiator));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -2062,6 +2109,10 @@ sub removeInitiator {
|
||||
my $group = shift;
|
||||
my $initiator = shift;
|
||||
|
||||
return SCST_C_GRP_REM_INI_FAIL if (!defined($driver) ||
|
||||
!defined($target) ||
|
||||
!defined($initiator));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -2230,8 +2281,12 @@ sub addLun {
|
||||
my $attributes = shift;
|
||||
my $group = shift;
|
||||
|
||||
my $err;
|
||||
my $err2;
|
||||
my $err = defined($group) ? SCST_C_GRP_ADD_LUN_FAIL :
|
||||
SCST_C_TGT_ADD_LUN_FAIL;
|
||||
|
||||
return $err if (!defined($driver) || !defined($target) ||
|
||||
!defined($device) || !defined($lun) ||
|
||||
!defined($attributes));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
@@ -2249,6 +2304,8 @@ sub addLun {
|
||||
return SCST_C_LUN_BAD_ATTRIBUTES if ($rc == TRUE);
|
||||
return $rc if ($rc > 1);
|
||||
|
||||
my $err2;
|
||||
|
||||
if (defined($group)) {
|
||||
$rc = $self->groupExists($driver, $target, $group);
|
||||
return SCST_C_GRP_NO_GROUP if (!$rc);
|
||||
@@ -2262,8 +2319,6 @@ sub addLun {
|
||||
$err2 = SCST_C_TGT_LUN_EXISTS;
|
||||
}
|
||||
|
||||
return $err if (!defined($lun));
|
||||
|
||||
$rc = $self->lunExists($driver, $target, $lun, $group);
|
||||
return $err2 if ($rc == TRUE);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -2325,8 +2380,10 @@ sub removeLun {
|
||||
my $lun = shift;
|
||||
my $group = shift;
|
||||
|
||||
my $err;
|
||||
my $err2;
|
||||
my $err = defined($group) ? SCST_C_GRP_REM_LUN_FAIL :
|
||||
SCST_C_TGT_ADD_LUN_FAIL;
|
||||
|
||||
return $err if (!defined($driver) || !defined($target) || !defined($lun));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
@@ -2336,15 +2393,15 @@ sub removeLun {
|
||||
return SCST_C_TGT_NO_TARGET if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
|
||||
my $err2;
|
||||
|
||||
if (defined($group)) {
|
||||
$rc = $self->groupExists($driver, $target, $group);
|
||||
return SCST_C_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
|
||||
$err = SCST_C_GRP_REM_LUN_FAIL;
|
||||
$err2 = SCST_C_GRP_NO_LUN;
|
||||
} else {
|
||||
$err = SCST_C_TGT_ADD_LUN_FAIL;
|
||||
$err2 = SCST_C_TGT_NO_LUN;
|
||||
}
|
||||
|
||||
@@ -2497,7 +2554,10 @@ sub clearLuns {
|
||||
my $target = shift;
|
||||
my $group = shift;
|
||||
|
||||
my $err;
|
||||
my $err = defined($group) ? SCST_C_GRP_CLR_LUN_FAIL :
|
||||
SCST_C_TGT_CLR_LUN_FAIL;
|
||||
|
||||
return $err if (!defined($driver) || !defined($target));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
@@ -2511,10 +2571,6 @@ sub clearLuns {
|
||||
$rc = $self->groupExists($driver, $target, $group);
|
||||
return SCST_C_GRP_NO_GROUP if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
|
||||
$err = SCST_C_GRP_CLR_LUN_FAIL;
|
||||
} else {
|
||||
$err = SCST_C_TGT_CLR_LUN_FAIL
|
||||
}
|
||||
|
||||
my ($path, $cmd);
|
||||
@@ -2879,6 +2935,8 @@ sub targetAttributes {
|
||||
my $target = shift;
|
||||
my %attributes;
|
||||
|
||||
return undef if (!defined($driver) || !defined($target));
|
||||
|
||||
if ($self->driverExists($driver) != TRUE) {
|
||||
$self->{'err_string'} = "targetAttributes(): Driver '$driver' is not available";
|
||||
return undef;
|
||||
@@ -3302,6 +3360,10 @@ sub setLunAttribute {
|
||||
my $value = shift;
|
||||
my $group = shift;
|
||||
|
||||
return SCST_C_LUN_SETATTR_FAIL
|
||||
if (!defined($driver) || !defined($target) || !defined($lun) ||
|
||||
!defined($attribute) || !defined($value));
|
||||
|
||||
my $rc = $self->driverExists($driver);
|
||||
return SCST_C_DRV_NO_DRIVER if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -3329,8 +3391,6 @@ sub setLunAttribute {
|
||||
return SCST_C_GRP_NO_LUN if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
|
||||
return TRUE if (!defined($attribute) || !defined($value));
|
||||
|
||||
my $attributes = $self->lunAttributes($driver, $target, $group, $lun);
|
||||
|
||||
return SCST_C_LUN_BAD_ATTRIBUTES if (!defined($$attributes{$attribute}));
|
||||
@@ -4228,6 +4288,10 @@ sub openDevice {
|
||||
my $device = shift;
|
||||
my $attributes = shift;
|
||||
|
||||
return SCST_C_DEV_OPEN_FAIL if (!defined($handler) ||
|
||||
!defined($device) ||
|
||||
!defined($attributes));
|
||||
|
||||
my $rc = $self->handlerExists($handler);
|
||||
return SCST_C_HND_NO_HANDLER if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -4282,6 +4346,9 @@ sub closeDevice {
|
||||
my $handler = shift;
|
||||
my $device = shift;
|
||||
|
||||
return SCST_C_DEV_CLOSE_FAIL if (!defined($handler) ||
|
||||
!defined($device));
|
||||
|
||||
my $rc = $self->handlerExists($handler);
|
||||
return SCST_C_HND_NO_HANDLER if (!$rc);
|
||||
return $rc if ($rc > 1);
|
||||
@@ -4786,6 +4853,8 @@ sub sessions {
|
||||
my $target = shift;
|
||||
my %_sessions;
|
||||
|
||||
return undef if (!defined($driver) || !defined($target));
|
||||
|
||||
if ($self->driverExists($driver) != TRUE) {
|
||||
$self->{'err_string'} = "sessions(): Driver '$driver' ".
|
||||
"is not available";
|
||||
|
||||
Reference in New Issue
Block a user