mirror of
https://github.com/unraid/webgui.git
synced 2026-02-24 19:35:32 -06:00
device_list: code optimization
This commit is contained in:
@@ -82,7 +82,7 @@ function device_info(&$disk,$online) {
|
||||
(_var($disk,'type')=='Cache' && $disk_status!='DISK_NP') ||
|
||||
(_var($disk,'name')=='flash') || in_array(_var($disk,'name'),$pools) ||
|
||||
_var($disk,'type')=='New' ? "<a href=\"".htmlspecialchars("/Main/Settings/$type?name=$name")."\">$fancy</a>" : $fancy;
|
||||
return $view.$status.$luks.$link;
|
||||
return $view.$status.$link;
|
||||
}
|
||||
function device_desc(&$disk) {
|
||||
global $var;
|
||||
@@ -387,9 +387,6 @@ while (true) {
|
||||
$disks = (array)@parse_ini_file("$varroot/disks.ini",true);
|
||||
$sec = (array)@parse_ini_file("$varroot/sec.ini",true);
|
||||
$diskio = (array)@parse_ini_file("$varroot/diskload.ini");
|
||||
$crypto = false;
|
||||
$pools = pools_filter($disks);
|
||||
$echo = [];
|
||||
// check for language changes
|
||||
extract(parse_plugin_cfg('dynamix',true));
|
||||
if (_var($display,'locale') != $locale_init) {
|
||||
@@ -417,51 +414,58 @@ while (true) {
|
||||
}
|
||||
}
|
||||
|
||||
// initialize stuff
|
||||
$sum = initSum();
|
||||
$Parity = $Data = $Cache = [];
|
||||
$Flash = &$disks['flash'];
|
||||
$crypto = false;
|
||||
$echo = [];
|
||||
foreach ($disks as $disk) {
|
||||
if ($disk['type']=='Flash') continue;
|
||||
${$disk['type']}[] = $disk;
|
||||
$crypto |= _var($disk,'luksState',0)!=0 || vfs_luks(_var($disk,'fsType'));
|
||||
}
|
||||
$pools = array_unique(array_map('prefix',array_column($Cache,'name')));
|
||||
|
||||
$echo[0] = "array_devices\n";
|
||||
$parity = parity_filter($disks);
|
||||
$data = data_filter($disks);
|
||||
foreach ($data as $disk) $crypto |= _var($disk,'luksState',0)!=0 || vfs_luks(_var($disk,'fsType'));
|
||||
if (_var($var,'fsState')=='Stopped') {
|
||||
foreach ($parity as $disk) $echo[0] .= array_offline($disk);
|
||||
foreach ($Parity as $disk) $echo[0] .= array_offline($disk);
|
||||
$echo[0] .= "<tr class='tr_last'><td colspan='10'></td></tr>";
|
||||
foreach ($data as $disk) $echo[0] .= array_offline($disk);
|
||||
foreach ($Data as $disk) $echo[0] .= array_offline($disk);
|
||||
$echo[0] .= "<tr class='tr_last'><td>"._('Slots').":</td><td colspan='8'>".array_slots()."</td><td></td></tr>";
|
||||
} else {
|
||||
foreach ($parity as $disk) if ($disk['status']!='DISK_NP_DSBL') $echo[0] .= array_online($disk);
|
||||
foreach ($data as $disk) $echo[0] .= array_online($disk);
|
||||
foreach ($Parity as $disk) if ($disk['status']!='DISK_NP_DSBL') $echo[0] .= array_online($disk);
|
||||
foreach ($Data as $disk) $echo[0] .= array_online($disk);
|
||||
if (_var($display,'total') && _var($var,'mdNumDisks',0)>1) $echo[0] .= show_totals(sprintf(_('Array of %s devices'),my_word($var['mdNumDisks'])),true,'disk*');
|
||||
}
|
||||
|
||||
$echo[1] = "boot_device\n";
|
||||
$disk = &$disks['flash'];
|
||||
$data = explode(' ',$diskio[_var($disk,'device')] ?? '0 0');
|
||||
$data = explode(' ',$diskio[_var($Flash,'device')] ?? '0 0');
|
||||
$flash = &$sec['flash'];
|
||||
$share = (_var($var,'shareSMBEnabled')=='yes' && _var($flash,'export')=='e' && _var($flash,'security')=='public')
|
||||
? " <a class='info'><i class='fa fa-warning fa-fw orange-text'></i><span>"._('Flash device is set as public share')."<br>"._('Please change share SMB security')."<br>"._('Click on **FLASH** above this message')."</span></a>"
|
||||
: "";
|
||||
$echo[1] .= "<tr>";
|
||||
$echo[1] .= "<td>".device_info($disk,true).$share."</td>";
|
||||
$echo[1] .= "<td>".device_desc($disk)."</td>";
|
||||
$echo[1] .= "<td>".device_info($Flash,true).$share."</td>";
|
||||
$echo[1] .= "<td>".device_desc($Flash)."</td>";
|
||||
$echo[1] .= "<td>*</td>";
|
||||
$echo[1] .= "<td><span class='diskio'>".my_diskio($data[0])."</span><span class='number'>".my_number(_var($disk,'numReads',0))."</span></td>";
|
||||
$echo[1] .= "<td><span class='diskio'>".my_diskio($data[1])."</span><span class='number'>".my_number(_var($disk,'numWrites',0))."</span></td>";
|
||||
$echo[1] .= "<td>".my_number(_var($disk,'numErrors',0))."</td>";
|
||||
$echo[1] .= fs_info($disk);
|
||||
$echo[1] .= "<td><span class='diskio'>".my_diskio($data[0])."</span><span class='number'>".my_number(_var($Flash,'numReads',0))."</span></td>";
|
||||
$echo[1] .= "<td><span class='diskio'>".my_diskio($data[1])."</span><span class='number'>".my_number(_var($Flash,'numWrites',0))."</span></td>";
|
||||
$echo[1] .= "<td>".my_number(_var($Flash,'numErrors',0))."</td>";
|
||||
$echo[1] .= fs_info($Flash);
|
||||
$echo[1] .= "</tr>";
|
||||
|
||||
$sum = initSum();
|
||||
$cache = cache_filter($disks); $n = 2;
|
||||
foreach ($cache as $disk) $crypto |= _var($disk,'luksState',0)!=0 || vfs_luks(_var($disk,'fsType'));
|
||||
$n = 2;
|
||||
foreach ($pools as $pool) {
|
||||
$echo[$n] = "pool_device".($n-2)."\n";
|
||||
$root = explode($_tilde_,$pool)[0];
|
||||
$print = array_filter(array_column($cache,'name'),function($name) use ($pools,$root) {return in_array($name,$pools) && strncmp($root,$name,strlen($root))==0;});
|
||||
$print = array_filter(array_column($Cache,'name'),function($name) use ($pools,$root) {return in_array($name,$pools) && strncmp($root,$name,strlen($root))==0;});
|
||||
$print = end($print);
|
||||
if (_var($var,'fsState')=='Stopped') {
|
||||
$log = @parse_ini_file($pool_log) ?: [];
|
||||
$off = false;
|
||||
foreach ($cache as $disk) if (prefix(_var($disk,'name'))==$pool) {
|
||||
foreach ($Cache as $disk) if (prefix(_var($disk,'name'))==$pool) {
|
||||
$echo[$n] .= array_offline($disk,$pool);
|
||||
$name = _var($disk,'name');
|
||||
// tilde is not allowed in array key - replace it
|
||||
@@ -469,10 +473,10 @@ while (true) {
|
||||
if (isset($log[$named])) $off |= ($log[$named] != _var($disk,'id')); elseif ($named) $log[$named] = _var($disk,'id');
|
||||
}
|
||||
$data = []; foreach ($log as $key => $value) $data[] = "$key=\"$value\"";
|
||||
$off &= !empty(_var($cache[$pool],'uuid'));
|
||||
$off &= !empty(_var($Cache[$pool],'uuid'));
|
||||
file_put_contents($pool_log,implode("\n",$data));
|
||||
$echo[$n] .= "<tr class='tr_last'><td>"._('Slots').":</td><td colspan='8'><span class='slots'><span class='slots-left'>".cache_slots($off,$pool,_var($cache[$pool],'devicesSb'),_var($cache[$pool],'slots',0))."</span>";
|
||||
$zfsPool = strstr(_var($cache[$pool],'fsType'),'zfs') && !isSubpool($pool);
|
||||
$echo[$n] .= "<tr class='tr_last'><td>"._('Slots').":</td><td colspan='8'><span class='slots'><span class='slots-left'>".cache_slots($off,$pool,_var($Cache[$pool],'devicesSb'),_var($Cache[$pool],'slots',0))."</span>";
|
||||
$zfsPool = strstr(_var($Cache[$pool],'fsType'),'zfs') && !isSubpool($pool);
|
||||
if ($zfsPool) {
|
||||
$current_subpools = array_filter($pools, function($element) use ($pool,$_tilde_) {return str_contains($element,"{$pool}{$_tilde_}");});
|
||||
$current_subpools_list = str_replace("{$pool}{$_tilde_}","", implode(',', $current_subpools));
|
||||
@@ -480,15 +484,15 @@ while (true) {
|
||||
}
|
||||
$echo[$n] .= "</span></td><td></td></tr>";
|
||||
} else {
|
||||
foreach ($cache as $disk) if (prefix($disk['name'])==$pool) {
|
||||
foreach ($Cache as $disk) if (prefix($disk['name'])==$pool) {
|
||||
$fstype = str_replace('luks:','',_var($disk,'fsType'));
|
||||
if (substr(_var($cache[$pool],'fsStatus'),0,11)=='Unmountable' && empty($disk['fsStatus'])) $disk['fsStatus'] = _var($cache[$pool],'fsStatus');
|
||||
if (substr(_var($Cache[$pool],'fsStatus'),0,11)=='Unmountable' && empty($disk['fsStatus'])) $disk['fsStatus'] = _var($Cache[$pool],'fsStatus');
|
||||
$echo[$n] .= array_online($disk,$fstype);
|
||||
}
|
||||
if (strcmp($root,$pool)!=0) $cache[$root]['devices'] += $cache[$pool]['devices'];
|
||||
if (strcmp($root,$pool)!=0) $Cache[$root]['devices'] += $Cache[$pool]['devices'];
|
||||
if (strcmp($pool,$print)==0) {
|
||||
delete_file($pool_log);
|
||||
if (_var($display,'total') && _var($cache[$root],'devices',0)>1) $echo[$n] .= show_totals(sprintf(_('Pool of %s devices'),my_word($cache[$root]['devices'])),str_contains($pool,$_tilde_),"$root*");
|
||||
if (_var($display,'total') && _var($Cache[$root],'devices',0)>1) $echo[$n] .= show_totals(sprintf(_('Pool of %s devices'),my_word($Cache[$root]['devices'])),str_contains($pool,$_tilde_),"$root*");
|
||||
$sum = initSum();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user