Implement rmstorage for sc
This commit is contained in:
parent
bd899691b0
commit
bb351003dc
@ -44,21 +44,59 @@ sub detachstorage {
|
||||
unless ($controller) {
|
||||
$controller = assure_identical_table_values(\@nodes, $storents, 'controller');
|
||||
}
|
||||
my $volname = shift @ARGV;
|
||||
my @volnames = @ARGV;
|
||||
my $wwns = get_wwns(@nodes);
|
||||
use Data::Dumper;
|
||||
my %namemap = makehosts($wwns, controller=>$controller, cfg=>$storents);
|
||||
foreach my $node (keys %namemap) {
|
||||
my $host = $namemap{$node};
|
||||
my $session = establish_session(controller=>$controller);
|
||||
my @rets = $session->cmd("rmvdiskhostmap -host $host $volname");
|
||||
my $ret = $rets[0];
|
||||
if ($ret =~ m/^CMMVC5842E/) {
|
||||
sendmsg([1,"Node not attached"],$callback,$node);
|
||||
foreach my $volname (@volnames) {
|
||||
my @rets = $session->cmd("rmvdiskhostmap -host $host $volname");
|
||||
my $ret = $rets[0];
|
||||
if ($ret =~ m/^CMMVC5842E/) {
|
||||
sendmsg([1,"Node not attached to $volname"],$callback,$node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub rmstorage {
|
||||
my $request = shift;
|
||||
my @nodes = @{$request->{node}};
|
||||
my $controller;
|
||||
@ARGV = @{$request->{arg}};
|
||||
unless (GetOptions(
|
||||
'controller=s' => \$controller,
|
||||
)) {
|
||||
foreach (@nodes) {
|
||||
sendmsg([1,"Error parsing arguments"],$callback,$_);
|
||||
}
|
||||
}
|
||||
my @volnames = @ARGV;
|
||||
my $storagetab = xCAT::Table->new('storage');
|
||||
my $storents = $storagetab->getNodesAttribs(\@nodes, [qw/controller/]);
|
||||
unless ($controller) {
|
||||
$controller = assure_identical_table_values(\@nodes, $storents, 'controller');
|
||||
}
|
||||
detachstorage($request);
|
||||
my $session = establish_session(controller=>$controller);
|
||||
foreach my $volname (@volnames) {
|
||||
my @info = $session->cmd("rmvdisk $volname");
|
||||
my $ret = $info[0];
|
||||
if ($ret =~ m/^CMMVC5753E/) {
|
||||
foreach my $node (@nodes) {
|
||||
sendmsg([1,"Disk $volname does not exist"], $callback, @nodes);
|
||||
}
|
||||
} elsif ($ret =~ m/^CMMVC5840E/) {
|
||||
foreach my $node (@nodes) {
|
||||
sendmsg([1,"Disk $volname is mapped to other nodes and/or busy"], $callback, @nodes);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub lsstorage {
|
||||
my $request = shift;
|
||||
my @nodes = @{$request->{node}};
|
||||
@ -431,6 +469,8 @@ sub process_request {
|
||||
mkstorage($request);
|
||||
} elsif ($request->{command}->[0] eq 'lsstorage') {
|
||||
lsstorage($request);
|
||||
} elsif ($request->{command}->[0] eq 'rmstorage') {
|
||||
rmstorage($request);
|
||||
} elsif ($request->{command}->[0] eq 'detachstorage') {
|
||||
detachstorage($request);
|
||||
} elsif ($request->{command}->[0] eq 'lspool') {
|
||||
|
Loading…
x
Reference in New Issue
Block a user