-
Notifications
You must be signed in to change notification settings - Fork 0
/
del_vmhd.cgi
82 lines (67 loc) · 1.49 KB
/
del_vmhd.cgi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/perl
use Switch;
require 'vboxctrl-lib.pl';
&ReadParse();
init_config();
$DEBUGMODE = $config{'DEBUGMODE'};
if ($DEBUGMODE)
{
DebugOut();
}
my $VBOXBIN = $config{'PATH_VB_BIN'};
if (! ($VBBOXBIN =~ /\/$/))
{
$VBOXBIN .= "/";
}
@VMHDs = split(/\0/, $in{'vmhd'});
foreach $DUMMY (@VMHDs)
{
my($USER,$VM,$FILE) = split(":" , $DUMMY);
my ($COMMAND, $return);
# unregistered pool HD?
if ( ($USER eq "none") && ($VM eq "none") )
{
$COMMAND = "rm -f $FILE 2>1&";
$RETURN = readpipe($COMMAND);
if ($DEBUGMODE)
{
print "<b>COMMAND:</b> $COMMAND - <br><b>RETURN:</b> $RETURN<br>";
}
}
else
{
if ($config{'multiuser'})
{
$COMMAND = "sudo -H -u $USER ";
}
$COMMAND .= $VBOXBIN."VBoxManage -q closemedium disk '$FILE' --delete 2>&1 ";
$RETURN = readpipe($COMMAND);
if ($DEBUGMODE)
{
print "<b>COMMAND:</b> $COMMAND - <br><b>RETURN:</b> $RETURN<br>";
}
}
my $DUMMY = IsError($RETURN,"Remove HD from media registry");
$ERR = ($ERR || $DUMMY);
}
if ($ERR)
{
#print ui_print_footer("index.cgi?mode=hdds", $text{'index_return'});
print ui_print_footer("list_hdds.cgi", $text{'index_return'});
}
else
{
#redirect("index.cgi?mode=hdds");
redirect("list_hdds.cgi");
}
sub IsError
{
my ($ERROR,$REMARK) = @_;
if ($ERROR =~ /error\:.*\n/i)
{
ui_print_header(undef, "", "", undef, 1, 1);
print "<b>$REMARK<br>'$&'</b><br>";
return 1;
}
return 0;
}