forked from webmin/webmin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.cgi
executable file
·119 lines (109 loc) · 3.39 KB
/
index.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/usr/local/bin/perl
# Display a list of iSCSI targets
use strict;
use warnings;
require './iscsi-target-lib.pl';
our (%text, %config, $module_name);
&ui_print_header(undef, $text{'index_title'}, "", "intro", 1, 1, 0,
&help_search_link("ietadm", "man", "doc", "google"));
my $err = &check_config();
if ($err) {
&ui_print_endpage(
$err." ".&text('index_clink', "../config.cgi?$module_name"));
}
# Find and show targets
my $conf = &get_iscsi_config();
my @targets = &find($conf, "Target");
my @crlinks = ( &ui_link("edit_target.cgi?new=1",$text{'index_add'}) );
if (@targets) {
unshift(@crlinks, &select_all_link("d"), &select_invert_link("d"));
print &ui_form_start("delete_targets.cgi");
print &ui_links_row(\@crlinks);
my @tds = ( "width=5" );
print &ui_columns_start([
"", $text{'index_target'}, $text{'index_lun'},
$text{'index_size'}, $text{'index_users'},
], 100, 0, \@tds);
foreach my $t (@targets) {
my @luns;
my $size = 0;
foreach my $l (&find($t->{'members'}, "Lun")) {
if ($l->{'value'} =~ /Path=([^, ]+)/) {
push(@luns, &mount::device_name("$1"));
$size += &get_device_size("$1");
}
elsif ($l->{'value'} =~ /Sectors=(\d+)/) {
push(@luns, &text('index_nullio', "$1"));
}
}
my @users = map { $_->{'values'}->[0] }
&find($t->{'members'}, "IncomingUser");
if (@users > 5) {
@users = (@users[0 .. 4], "...");
}
print &ui_checked_columns_row([
"<a href='edit_target.cgi?name=".
&urlize($t->{'value'})."'>".$t->{'value'}."</a>",
join(" , ", @luns) || "<i>$text{'index_noluns'}</i>",
$size ? &nice_size($size) : "",
join(" , ", @users) || "<i>$text{'index_nousers'}</i>"
],
\@tds, "d", $t->{'value'});
}
print &ui_columns_end();
print &ui_links_row(\@crlinks);
print &ui_form_end([ [ undef, $text{'index_delete'} ] ]);
}
else {
print "<b>$text{'index_none'}</b><p>\n";
print &ui_links_row(\@crlinks);
}
# Icons for global settings
print &ui_hr();
my @links = ( "edit_auth.cgi",
"edit_conn.cgi",
"edit_timeout.cgi",
"list_allow.cgi?mode=initiators",
"list_allow.cgi?mode=targets",
"edit_addr.cgi",
"edit_manual.cgi" );
my @titles = ( $text{'auth_title'},
$text{'conn_title'},
$text{'timeout_title'},
$text{'initiators_title'},
$text{'targets_title'},
$text{'addr_title'},
$text{'manual_title'} );
my @icons = ( "images/auth.gif",
"images/conn.gif",
"images/timeout.gif",
"images/initiators.gif",
"images/targets.gif",
"images/addr.gif",
"images/manual.gif" );
&icons_table(\@links, \@titles, \@icons, 5);
print &ui_hr();
print &ui_buttons_start();
# Show start/stop/restart buttons
my $pid = &is_iscsi_target_running();
if ($pid) {
print &ui_buttons_row("restart.cgi", $text{'index_restart'},
$text{'index_restartdesc'});
print &ui_buttons_row("stop.cgi", $text{'index_stop'},
$text{'index_stopdesc'});
}
else {
print &ui_buttons_row("start.cgi", $text{'index_start'},
$text{'index_startdesc'});
}
# Show start at boot button
&foreign_require("init");
my $starting = &init::action_status($config{'init_name'});
print &ui_buttons_row("atboot.cgi",
$text{'index_atboot'},
$text{'index_atbootdesc'},
undef,
&ui_radio("boot", $starting == 2 ? 1 : 0,
[ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ]));
print &ui_buttons_end();
&ui_print_footer("/", $text{'index'});