ISCSIDirect : fixes and cleanup
-use "lunX" for volume name. previously it was only the lun number, and it conflict with current syntax to disk alloc disk size. -scsi-ls return size in Gb, so we need to convert to bytes -small cleanups Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
This commit is contained in:
committed by
Dietmar Maurer
parent
60301ee037
commit
3a0c324642
@ -17,29 +17,25 @@ sub iscsi_ls {
|
|||||||
my $portal = $scfg->{portal};
|
my $portal = $scfg->{portal};
|
||||||
my $cmd = ['/usr/bin/iscsi-ls', '-s', 'iscsi://'.$portal ];
|
my $cmd = ['/usr/bin/iscsi-ls', '-s', 'iscsi://'.$portal ];
|
||||||
my $list = {};
|
my $list = {};
|
||||||
my $test = "";
|
my %unittobytes = (
|
||||||
|
"k" => 1024,
|
||||||
my $errfunc = sub {
|
"M" => 1024*1024,
|
||||||
my $line = shift;
|
"G" => 1024*1024*1024,
|
||||||
$line = trim($line);
|
"T" => 1024*1024*1024*1024
|
||||||
|
);
|
||||||
die $line if $line;
|
|
||||||
};
|
|
||||||
|
|
||||||
eval {
|
eval {
|
||||||
|
|
||||||
run_command($cmd, errmsg => "iscsi error", errfunc => $errfunc, outfunc => sub {
|
run_command($cmd, errmsg => "iscsi error", errfunc => sub {}, outfunc => sub {
|
||||||
my $line = shift;
|
my $line = shift;
|
||||||
$line = trim($line);
|
$line = trim($line);
|
||||||
if( $line =~ /Lun:(\d+)\s+([A-Za-z0-9\-\_\.\:]*)\s+\(Size:(\d+)G\)/ ) {
|
if( $line =~ /Lun:(\d+)\s+([A-Za-z0-9\-\_\.\:]*)\s+\(Size:([0-9\.]*)(k|M|G|T)\)/ ) {
|
||||||
$test = $1;
|
my $image = "lun".$1;
|
||||||
|
|
||||||
my $image = $1;
|
|
||||||
my $size = $3;
|
my $size = $3;
|
||||||
|
my $unit = $4;
|
||||||
|
|
||||||
$list->{$storeid}->{$image} = {
|
$list->{$storeid}->{$image} = {
|
||||||
name => $image,
|
name => $image,
|
||||||
size => $size,
|
size => $size * $unittobytes{$unit},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -47,7 +43,9 @@ sub iscsi_ls {
|
|||||||
|
|
||||||
my $err = $@;
|
my $err = $@;
|
||||||
die $err if $err && $err !~ m/TESTUNITREADY failed with SENSE KEY/ ;
|
die $err if $err && $err !~ m/TESTUNITREADY failed with SENSE KEY/ ;
|
||||||
|
|
||||||
return $list;
|
return $list;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
@ -78,7 +76,7 @@ sub parse_volname {
|
|||||||
my ($class, $volname) = @_;
|
my ($class, $volname) = @_;
|
||||||
|
|
||||||
|
|
||||||
if ($volname =~ m/^(\d+)$/) {
|
if ($volname =~ m/^lun(\d+)$/) {
|
||||||
return ('images', $1, undef);
|
return ('images', $1, undef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user