Disk settings: new option " Enable NVME power monitoring

OFF by default
This commit is contained in:
bergware
2023-12-07 13:33:14 +01:00
parent a59e63369e
commit d965d43b83
6 changed files with 14 additions and 6 deletions

View File

@@ -15,7 +15,7 @@ Tag="database"
*/
?>
<?
$power = in_array('nvme',array_column(main_filter($disks),'transport')) ? ' / '._('Power') : '';
$power = _var($display,'power') && in_array('nvme',array_column(main_filter($disks),'transport')) ? ' / '._('Power') : '';
?>
<script>
String.prototype.no_tilde = function(){return this.replace('<?=$_tilde_?>','<?=$_proxy_?>');}

View File

@@ -138,7 +138,7 @@ $('#tab2').bind({click:function() {$('i.toggle').show('slow');}});
<table class="disk_status wide<?=$i?' divider':''?>">
<?if (!isSubpool($pool)):
$cache = array_filter(cache_filter($disks),function($disk) use ($pool){return prefix($disk['name'])==$pool;});
$power = in_array('nvme',array_column($cache,'transport')) ? ' / '._('Power') : '';
$power = _var($display,'power') && in_array('nvme',array_column($cache,'transport')) ? ' / '._('Power') : '';
?>
<thead><tr><td>_(Device)_</td><td>_(Identification)_</td><td>_(Temp)_<?=$power?></td><td>_(Reads)_</td><td>_(Writes)_</td><td>_(Errors)_</td><td>_(FS)_</td><td>_(Size)_</td><td>_(Used)_</td><td>_(Free)_</td></tr></thead>
<?endif;?>

View File

@@ -41,6 +41,7 @@ function doDispatch(form) {
fields['#cfg'] = "/boot/config/plugins/dynamix/dynamix.cfg";
fields['#cleanup'] = true;
$(form).find('input[name^="display_"]').each(function(){fields[$(this).attr('name')] = $(this).val(); $(this).prop('disabled',true);});
$(form).find('select[name^="display_"]').each(function(){fields[$(this).attr('name')] = $(this).val(); $(this).prop('disabled',true);});
$.post('/webGui/include/Dispatcher.php',fields);
}
function prepareDiskSettings(form) {
@@ -224,6 +225,12 @@ _(Tunable (md_write_method))_:
:disk_tunable_md_write_method_help:
_(Enable NVME power monitoring)_:
: <select name="display_power">
<?=mk_option($display['power'], "", _('No'))?>
<?=mk_option($display['power'], "1", _('Yes'))?>
</select>
_(Default warning disk utilization threshold)_ (%):
: <input type="number" min="0" max="100" name="display_warning" class="narrow" value="<?=$display['warning']?>" placeholder="<?=$default['display']['warning']?>">

View File

@@ -16,7 +16,7 @@ Cond="(count($devs)>0)"
*/
?>
<?
$power = in_array('nvme',array_column($devs,'transport')) ? ' / '._('Power') : '';
$power = _var($display,'power') && in_array('nvme',array_column($devs,'transport')) ? ' / '._('Power') : '';
$tabX = '#tab'.($var['fsState']=='Stopped'||$pool_devices ? '4' : '3');
?>
<script>

View File

@@ -41,7 +41,7 @@ function get_model($id) {
function my_power($power) {
global $display;
$number = _var($display,'number','.,');
return $power ? ' / '.number_format($power,$power<10?2:1,$number[0]).' '._('W') : '';
return _var($display,'power') && $power ? ' / '.number_format($power,$power<10?2:1,$number[0]).' '._('W') : '';
}
function device_info(&$disk,$online) {
global $pools, $var, $crypto;
@@ -179,8 +179,8 @@ function my_diskio($data) {
return my_scale($data,$unit,1)." $unit/s";
}
function array_offline(&$disk, $pool='') {
global $var, $disks;
$disk['power'] ??= (_var($disk,'transport')=='nvme' ? get_nvme_info(_var($disk,'device'),'power') : 0);
global $var, $disks, $display;
$disk['power'] ??= (_var($display,'power') && _var($disk,'transport')=='nvme' ? get_nvme_info(_var($disk,'device'),'power') : 0);
$echo = []; $warning = '';
$status = ['DISK_DSBL','DISK_INVALID','DISK_DSBL_NEW','DISK_NEW','DISK_WRONG'];
$text = "<span class='red-text'><em>"._('All existing data on this device will be OVERWRITTEN when array is Started')."</em></span>";

View File

@@ -32,6 +32,7 @@ $locale_init = $locale;
function my_power($device) {
global $display;
if (!_var($display,'power')) return '';
$number = _var($display,'number','.,');
[$power,$state] = explode('W ',get_nvme_info($device,'state'));
$state = strtr($state, ['non-operational' => 'green', 'operational' => 'orange']);