Current File : //usr/share/webmin/iscsi-client/delete_conns.cgi |
#!/usr/bin/perl
# Remove one or more active connections
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './iscsi-client-lib.pl';
our (%text, %in);
&ReadParse();
&error_setup($text{'dconns_err'});
# Get the connections
my $conns = &list_iscsi_connections();
ref($conns) || &error(&text('conns_elist', $conns));
my @d = split(/\0/, $in{'d'});
my @delconns;
foreach my $d (@d) {
my ($conn) = grep { $_->{'num'} eq $d } @$conns;
push(@delconns, $conn) if ($conn);
}
@delconns || &error($text{'dconns_enone'});
if (!$in{'confirm'}) {
&ui_print_header(undef, $text{'dconns_title'}, "");
# Find users of each device
my @users;
foreach my $conn (@delconns) {
push(@users, &get_connection_users($conn));
}
# Build table of users
my $utable = "";
if (@users) {
$utable = $text{'dconns_users'}."<p>\n";
$utable .= &ui_columns_start([
$text{'conns_ip'},
$text{'conns_target'},
$text{'dconns_part'},
$text{'dconns_use'} ]);
foreach my $u (@users) {
$utable .= &ui_columns_row([
$u->[0]->{'ip'},
$u->[0]->{'target'},
&mount::device_name($u->[1]->{'device'}),
&lvm::device_message($u->[2], $u->[3], $u->[4]),
], "50");
}
$utable .= &ui_columns_end();
}
# Ask the user if he is sure
print &ui_confirmation_form(
"delete_conns.cgi",
@delconns == 1 && $delconns[0]->{'device'} ?
&text('dconns_rusure2',
"<tt>".$delconns[0]->{'ip'}."</tt>",
"<tt>".$delconns[0]->{'device'}."</tt>") :
@delconns == 1 ?
&text('dconns_rusure1',
"<tt>".$delconns[0]->{'ip'}."</tt>") :
&text('dconns_rusure', scalar(@delconns)),
[ map { [ "d", $_ ] } @d ],
[ [ "confirm", $text{'dconns_confirm'} ] ],
$utable);
&ui_print_footer("list_conns.cgi", $text{'conns_return'});
}
else {
# Delete each one
foreach my $conn (@delconns) {
my $err = &delete_iscsi_connection($conn);
&error(&text('dconns_edelete', $conn->{'ip'},
$conn->{'target'}, $err)) if ($err);
}
if (@delconns == 1) {
&webmin_log("delete", "connection", $delconns[0]->{'ip'},
{ 'host' => $delconns[0]->{'ip'},
'port' => $delconns[0]->{'port'},
'target' => $delconns[0]->{'target'} });
}
else {
&webmin_log("delete", "connections", scalar(@delconns));
}
&redirect("list_conns.cgi");
}