X7ROOT File Manager
Current Path:
/usr/libexec/webmin/iscsi-tgtd
usr
/
libexec
/
webmin
/
iscsi-tgtd
/
📁
..
📄
CHANGELOG
(127 B)
📄
atboot.cgi
(711 B)
📄
config
(70 B)
📄
config-AlmaLinux-7.0-ALL
(184 B)
📄
config-Amazon-Linux-2-ALL
(184 B)
📄
config-CentOS-Linux-7.0-ALL
(184 B)
📄
config-CentOS-Stream-Linux-8.0-ALL
(184 B)
📄
config-Oracle-Linux-8.0-ALL
(184 B)
📄
config-Redhat-Enterprise-Linux-7.0-ALL
(184 B)
📄
config-Rocky-Linux-7.0-ALL
(184 B)
📄
config-Scientific-Linux-7.0-ALL
(184 B)
📄
config-debian-linux
(92 B)
📄
config-redhat-linux
(128 B)
📄
config-syno-linux
(70 B)
📄
config.info
(421 B)
📄
config.info.ca
(492 B)
📄
config.info.de
(496 B)
📄
config.info.no
(445 B)
📄
delete_targets.cgi
(980 B)
📄
edit_manual.cgi
(1.05 KB)
📄
edit_target.cgi
(5.41 KB)
📁
images
📄
index.cgi
(2.75 KB)
📄
install_check.pl
(346 B)
📄
iscsi-tgtd-lib.pl
(11.66 KB)
📁
lang
📄
log_parser.pl
(457 B)
📄
module.info
(196 B)
📄
module.info.af
(0 B)
📄
module.info.af.auto
(121 B)
📄
module.info.ar
(0 B)
📄
module.info.ar.auto
(146 B)
📄
module.info.be
(0 B)
📄
module.info.be.auto
(190 B)
📄
module.info.bg
(0 B)
📄
module.info.bg.auto
(175 B)
📄
module.info.ca
(137 B)
📄
module.info.cs
(0 B)
📄
module.info.cs.auto
(113 B)
📄
module.info.da
(0 B)
📄
module.info.da.auto
(112 B)
📄
module.info.de
(115 B)
📄
module.info.el
(0 B)
📄
module.info.el.auto
(216 B)
📄
module.info.es
(0 B)
📄
module.info.es.auto
(133 B)
📄
module.info.eu
(0 B)
📄
module.info.eu.auto
(102 B)
📄
module.info.fa
(0 B)
📄
module.info.fa.auto
(175 B)
📄
module.info.fi
(0 B)
📄
module.info.fi.auto
(108 B)
📄
module.info.fr
(0 B)
📄
module.info.fr.auto
(136 B)
📄
module.info.he
(0 B)
📄
module.info.he.auto
(138 B)
📄
module.info.hr
(0 B)
📄
module.info.hr.auto
(114 B)
📄
module.info.hu
(0 B)
📄
module.info.hu.auto
(142 B)
📄
module.info.it
(0 B)
📄
module.info.it.auto
(135 B)
📄
module.info.ja
(0 B)
📄
module.info.ja.auto
(164 B)
📄
module.info.ko
(0 B)
📄
module.info.ko.auto
(150 B)
📄
module.info.lt
(0 B)
📄
module.info.lt.auto
(129 B)
📄
module.info.lv
(0 B)
📄
module.info.lv.auto
(119 B)
📄
module.info.ms
(0 B)
📄
module.info.ms.auto
(119 B)
📄
module.info.mt
(0 B)
📄
module.info.mt.auto
(119 B)
📄
module.info.nl
(0 B)
📄
module.info.nl.auto
(123 B)
📄
module.info.no
(0 B)
📄
module.info.no.auto
(111 B)
📄
module.info.pl
(0 B)
📄
module.info.pl.auto
(117 B)
📄
module.info.pt
(0 B)
📄
module.info.pt.auto
(119 B)
📄
module.info.pt_BR
(0 B)
📄
module.info.pt_BR.auto
(125 B)
📄
module.info.ro
(0 B)
📄
module.info.ro.auto
(120 B)
📄
module.info.ru
(0 B)
📄
module.info.ru.auto
(208 B)
📄
module.info.sk
(0 B)
📄
module.info.sk.auto
(111 B)
📄
module.info.sl
(0 B)
📄
module.info.sl.auto
(102 B)
📄
module.info.sv
(0 B)
📄
module.info.sv.auto
(105 B)
📄
module.info.th
(0 B)
📄
module.info.th.auto
(224 B)
📄
module.info.tr
(0 B)
📄
module.info.tr.auto
(123 B)
📄
module.info.uk
(0 B)
📄
module.info.uk.auto
(177 B)
📄
module.info.ur
(0 B)
📄
module.info.ur.auto
(243 B)
📄
module.info.vi
(0 B)
📄
module.info.vi.auto
(120 B)
📄
module.info.zh
(0 B)
📄
module.info.zh.auto
(104 B)
📄
module.info.zh_TW
(0 B)
📄
module.info.zh_TW.auto
(110 B)
📄
restart.cgi
(351 B)
📄
save_manual.cgi
(684 B)
📄
save_target.cgi
(4.47 KB)
📄
start.cgi
(328 B)
📄
stop.cgi
(303 B)
Editing: edit_target.cgi
#!/usr/bin/perl # Show a form to edit or create a target use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './iscsi-tgtd-lib.pl'; our (%text, %in); &ReadParse(); my $conf = &get_tgtd_config(); # Get the target and show page header my $target; if ($in{'new'}) { &ui_print_header(undef, $text{'target_title1'}, ""); $target = { 'members' => [ ] }; } else { &ui_print_header(undef, $text{'target_title2'}, ""); ($target) = grep { $_->{'value'} eq $in{'name'} } &find($conf, "target"); $target || &error($text{'target_egone'}); } print &ui_form_start("save_target.cgi", "post"); print &ui_hidden("new", $in{'new'}); print &ui_hidden("oldname", $in{'name'}); print &ui_table_start($text{'target_header'}, undef, 4); # Target name my ($host, $tname); if ($in{'new'}) { $host = &find_host_name($conf) || &generate_host_name(); $tname = ""; } else { ($host, $tname) = split(/:/, $target->{'value'}); } print &ui_table_row($text{'target_name'}, "<tt>".$host.":</tt>".&ui_textbox("name", $tname, 30)); # Logical units it contains my @luns = (&find($target->{'members'}, "backing-store"), &find($target->{'members'}, "direct-store")); @luns = sort { $a->{'file'} <=> $b->{'file'} } @luns; push(@luns, { 'name' => 'backing-store', 'value' => '', 'values' => [] }); for(my $i=0; $i<@luns; $i++) { my $path = $luns[$i]->{'values'}->[0] || ""; my @opts; # Start with option for no device my $none_found = 0; if ($i > 0) { push(@opts, [ 'none', $text{'target_none'} ]); $none_found = 1 if (!$path); } # Add regular partitions my $part_found = 0; my $sel = &fdisk::partition_select("part".$i, $path, 0, \$part_found); push(@opts, [ 'part', $text{'target_part'}, $sel ]); # Then add RAID devices my $rconf = &raid::get_raidtab(); my @ropts; my $raid_found = 0; foreach my $c (@$rconf) { if ($c->{'active'}) { push(@ropts, [ $c->{'value'}, &text('target_md', substr($c->{'value'}, -1)) ]); $raid_found = 1 if ($path eq $c->{'value'}); } } if (@ropts) { push(@opts, [ 'raid', $text{'target_raid'}, &ui_select("raid".$i, $path, \@ropts) ]); } # Then add LVM logical volumes my @vgs = sort { $a->{'name'} cmp $b->{'name'} } &lvm::list_volume_groups(); my @lvs; foreach my $v (@vgs) { push(@lvs, sort { $a->{'name'} cmp $b->{'name'} } &lvm::list_logical_volumes($v->{'name'})); } my @lopts; my $lvm_found = 0; foreach my $l (@lvs) { push(@lopts, [ $l->{'device'}, &text('target_lv', $l->{'vg'}, $l->{'name'}) ]); $lvm_found = 1 if (&same_file($path, $l->{'device'})); } if (@lopts) { push(@opts, [ 'lvm', $text{'target_lvm'}, &ui_select("lvm".$i, $path, \@lopts) ]); } # Then add other file mode my $mode = $part_found ? 'part' : $raid_found ? 'raid' : $none_found ? 'none' : $lvm_found ? 'lvm' : 'other'; push(@opts, [ 'other', $text{'target_other'}, &ui_textbox("other".$i, $mode eq 'other' ? $path : "", 50). " ".&file_chooser_button("other") ]); # Options for this lun my @grid; my $cache = &find_value($luns[$i], "write-cache"); push(@grid, "<b>$text{'target_type'}</b>", &ui_select("type".$i, $luns[$i]->{'name'}, [ [ 'backing-store', $text{'target_backing'} ], [ 'direct-store', $text{'target_direct'} ] ])); push(@grid, "<b>$text{'target_cache'}</b>", &ui_radio("cache".$i, $cache, [ [ "on", $text{'yes'} ], [ "off", $text{'no'} ], [ "", $text{'default'} ] ])); print &ui_table_row(&text('target_lun', $i+1), &ui_radio_table("mode".$i, $mode, \@opts)."\n". &ui_grid_table(\@grid, 2), 3); } print &ui_table_hr(); # Incoming user(s) my @iusers = &find_value($target, "incominguser"); my $utable = &ui_columns_start([ $text{'target_uname'}, $text{'target_upass'}, ]); my $i = 0; foreach my $u (@iusers, "", "") { my ($uname, $upass) = split(/\s+/, $u); $utable .= &ui_columns_row([ &ui_textbox("uname_$i", $uname, 30), &ui_textbox("upass_$i", $upass, 20), ]); $i++; } $utable .= &ui_columns_end(); print &ui_table_row($text{'target_iuser'}, &ui_radio("iuser_def", @iusers ? 0 : 1, [ [ 1, $text{'target_iuserall'} ], [ 0, $text{'target_iuserbelow'} ] ])."<br>\n". $utable, 3); # Outgoing user my $u = &find_value($target, "outgoinguser"); my ($uname, $upass) = $u ? split(/\s+/, $u) : ( ); print &ui_table_row($text{'target_ouser'}, &ui_radio("ouser_def", $u ? 0 : 1, [ [ 1, $text{'target_ousernone'}."<br>" ], [ 0, $text{'target_ousername'} ] ])." ". &ui_textbox("ouser", $uname, 20)." ". $text{'target_ouserpass'}." ". &ui_textbox("opass", $upass, 20), 3); print &ui_table_hr(); # Allowed initiator address my @a = &find_value($target, "initiator-address"); print &ui_table_row($text{'target_iaddress'}, &ui_radio("iaddress_def", @a ? 0 : 1, [ [ 1, $text{'target_iall'} ], [ 0, $text{'target_ibelow'} ] ])."<br>\n". &ui_textarea("iaddress", join("\n", @a), 3, 20)); # Allowed initiator name my @n = &find_value($target, "initiator-name"); print &ui_table_row($text{'target_iname'}, &ui_radio("iname_def", @n ? 0 : 1, [ [ 1, $text{'target_iall'} ], [ 0, $text{'target_ibelow'} ] ])."<br>\n". &ui_textarea("iname", join("\n", @n), 3, 20)); print &ui_table_end(); if ($in{'new'}) { print &ui_form_end([ [ undef, $text{'create'} ] ]); } else { print &ui_form_end([ [ undef, $text{'save'} ], [ 'delete', $text{'delete'} ] ]); } &ui_print_footer("", $text{'index_return'});
Upload File
Create Folder