Merge pull request #241 from bergware/6.4-wip

Miscalleneous updates/fixes
This commit is contained in:
tom mortensen
2018-01-19 22:36:47 -08:00
committed by GitHub
8 changed files with 90 additions and 38 deletions

View File

@@ -119,7 +119,7 @@ Docker vdisk size:
> If the system needs to create a new docker image file, this is the default size to use specified in GB.
>
> To resize an existing image file, specify the new size here. Next time the Docker service is started the file (and file system) will increased to the new size (but never decreased).
> To resize an existing image file, specify the new size here. Next time the Docker service is started the file (and file system) will increased to the new size (but never decreased).
Docker storage location:
: <input id="DOCKER_IMAGE_FILE" type="text" name="DOCKER_IMAGE_FILE" value="<?=$dockercfg['DOCKER_IMAGE_FILE']?>" placeholder="e.g. /mnt/disk1/docker.img" data-pickcloseonfile="true" data-pickfilter="img" data-pickroot="/mnt/" data-pickfolders="true" required="required">
@@ -132,7 +132,7 @@ Docker storage location:
<span><i class="fa fa-warning icon warning"></i> Path does not exist</span>
<?endif;?><span id="IMAGE_ERROR" class="errortext"></span>
> You must specify an image file for Docker. The system will automatically create this file when the Docker service is first started.
> You must specify an image file for Docker. The system will automatically create this file when the Docker service is first started.
Docker LOG rotation:
: <select name="DOCKER_LOG_ROTATION" class="narrow" onchange="showLogOptions(this.value)">
@@ -163,6 +163,16 @@ Docker LOG number of files:
</select>
</div>
User defined networks:
: <select name="DOCKER_USER_NETWORKS" class="narrow">
<?=mk_option($dockercfg['DOCKER_USER_NETWORKS'], 'remove', 'Remove')?>
<?=mk_option($dockercfg['DOCKER_USER_NETWORKS'], 'preserve', 'Preserve')?>
</select>
> By default user created networks are removed from Docker. This is done to prevent potential conflicts with the automatic generation of custom networks.
>
> Change this setting to preserve user defined networks, but it is the responsibility of the user to ensure these entries work correctly and are conflict free.
</div>
<?else: /* DOCKER STARTED */?>
<div markdown="1" class="advanced">
@@ -181,6 +191,11 @@ Docker LOG rotation:
> By default a single unlimited LOG file is created. Otherwise LOG file size and number of files are limited when LOG rotation is enabled.
User defined networks:
: <?=ucfirst($dockercfg['DOCKER_USER_NETWORKS']??'remove').'d'?>
> Shows whether user defined networks are removed or preserved from Docker. When preserved user defined networks become available in the *Network type* dropdown list of containers.
</div>
<?endif;?>
<div markdown="1" class="advanced">
@@ -194,7 +209,7 @@ Default appdata storage location:
> You can specify a folder to automatically generate and store subfolders containing configuration files for each Docker app (via the /config mapped volume).
>
> Only used when adding new Docker apps. Editing existing Docker apps will not be affected by this setting.
> Only used when adding new Docker apps. Editing existing Docker apps will not be affected by this setting.
<!--
Auto-map user shares to containers as /unraid:
@@ -205,7 +220,7 @@ Auto-map user shares to containers as /unraid:
> You can expose all of your user shares (/mnt/user) to a folder named /unraid within Docker containers.
>
> Only used when adding new Docker apps. Editing existing Docker apps will not be affected by this setting.
> Only used when adding new Docker apps. Editing existing Docker apps will not be affected by this setting.
-->
</div>
<div markdown="1" class="advanced">

View File

@@ -2,7 +2,7 @@
/* Copyright 2005-2017, Lime Technology
* Copyright 2015-2017, Guilherme Jardim, Eric Schultz, Jon Panozzo.
*
* Adaptations by Bergware International (May 2016)
* Adaptations by Bergware International (May 2016 / January 2018)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2,
@@ -1585,12 +1585,12 @@ optgroup.title{background-color:#625D5D;color:#FFFFFF;text-align:center;margin-t
<?endforeach;?>
function showSubnet(bridge) {
if (bridge.match(/^(br|eth|bond)[0-9]/) !== null) {
$('.myIP').show();
$('#myIP').html('Subnet: '+subnet[bridge]);
} else {
if (bridge.match(/^(bridge|host|none)$/i) !== null) {
$('.myIP').hide();
$('input[name="contMyIP"]').val('');
} else {
$('.myIP').show();
$('#myIP').html('Subnet: '+subnet[bridge]);
}
}
function reloadTriggers() {

View File

@@ -257,7 +257,7 @@ $(function(){
<tr><td>Parity is valid.</td><td><input type="submit" name="cmdCheck" value="Check"></td><td><strong>Check</strong> will start <strong>Parity-Check</strong>.
<br><input type="checkbox" name="optionCorrect" value="correct" checked><small>Write corrections to parity</small></td></tr>
<? endif;?>
<tr><td></td><td><input type="button" value="History" onclick="openBox('/webGui/include/ParityHistory.php','Parity/Read-Check History',600,540,false)"></td>
<tr><td></td><td><input type="button" value="History" onclick="openBox('/webGui/include/ParityHistory.php','Parity/Read-Check History',600,600,false)"></td>
<? if ($var['sbSyncExit']!=0):?>
<td>Last check incomplete on <strong><?=my_time($var['sbSynced2']).day_count($var['sbSynced2'])?></strong><?if ($var['sbSynced2']):?>, finding <strong><?=$var['sbSyncErrs']?></strong> error<?=$var['sbSyncErrs']==1?'':'s'?>.<?endif;?>
<br><i class="fa fa-dot-circle-o icon"></i><small>Error code: <?=my_error($var['sbSyncExit'])?></small></td></tr>
@@ -301,6 +301,7 @@ $(function(){
<tr><td>Clearing in progress.</td><td><input type="button" id="cancelButton" value="Cancel" onclick="stopParity(this.form,'Clearing')"></td>
<td id="cancelText"><strong>Cancel</strong> will stop Clearing.</td></tr>
<? endif;?>
<tr><td></td><td><input type="button" value="History" onclick="openBox('/webGui/include/ParityHistory.php','Parity/Read-Check History',600,600,false)"></td><td>Last check in progress.</td></tr>
<tr><td>Total size:</td><td id="line0"></td><td></td></tr>
<tr><td>Elapsed time:</td><td id="line1"></td><td></td></tr>
<tr><td>Current position:</td><td id="line2"></td><td></td></tr>

View File

@@ -459,7 +459,7 @@ Bonding mode:
> It requires a switch that supports IEEE 802.3ad dynamic link.
> Slave selection for outgoing traffic is done according to the transmit hash policy, which may be changed from the default simple XOR policy via the xmit_hash_policy option.
> Note that not all transmit policies may be 802.3ad compliant, particularly inregards to the packet mis-ordering requirements of section 43.2.4 of the 802.3ad standard.
> Differing peer implementations will have varying tolerances for noncompliance.
> Different peer implementations will have varying tolerances for noncompliance.
>
> **Mode 5 (balance-tlb)**<br>
> This mode is called *Adaptive transmit load balancing*. The outgoing traffic is distributed according to the current load and queue on each slave interface.
@@ -527,7 +527,7 @@ IPv4 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv4 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv4 address from the local DHCP server<br>
> *Static* - the IPv4 address is manually set for this interface<br>
> *None* - no IPv4 address is assigned to the interface (only available for VLANs)
@@ -560,13 +560,13 @@ IPv4 default gateway:
> Greyed out when using automatic IP assignment. Otherwise specify here the IPv4 address of your router.
</div>
DNSv4 server assignment:
IPv4 DNS server assignment:
: <select name="DHCP_KEEPRESOLV" size="1" onchange="checkDNSSettings(this.form)">
<?=mk_option($eth0['DHCP_KEEPRESOLV'], "no", "Automatic");?>
<?=mk_option($eth0['DHCP_KEEPRESOLV'], "yes", "Static");?>
</select>
> If set to *Automatic* the server will use DNS server IPv4 address returned by the local automatic assignment.<br>
> If set to *Automatic* the server will use IPv4 DNS server(s) returned by the local automatic assignment.<br>
> If set to *Static* you may enter your own list.
>
> This is useful in Active Directory configurations where you need to set the first DNS Server entry to the IP address of your AD Domain server.
@@ -574,7 +574,7 @@ DNSv4 server assignment:
IPv4 DNS server:
: <input type="text" name="DNS_SERVER1" maxlength="15" value="<?=$eth0['DNS_SERVER1'];?>" class="narrow" pattern="<?=$validIP4?>" title="IPv4 address A.B.C.D">
> This is the primary DNS server to use. Enter an IPv4 address.
> This is the primary IPv4 DNS server to use. Enter a IPv4 address.
>
> Note: for *Active Directory* you **must** ensure this is set to the IP address of your AD Domain server.
@@ -582,14 +582,14 @@ IPv4 DNS server:
IPv4 DNS server 2:
: <input type="text" name="DNS_SERVER2" maxlength="15" value="<?=$eth0['DNS_SERVER2'];?>" class="narrow" pattern="<?=$validIP4?>" title="IPv4 address A.B.C.D">
> This is the DNS server to use when DNS server 1 is down.
> This is the IPv4 DNS server to use when IPv4 DNS server 1 is down.
</div>
<div id="dnsserver3" style="display:none" markdown="1">
IPv4 DNS server 3:
: <input type="text" name="DNS_SERVER3" maxlength="15" value="<?=$eth0['DNS_SERVER3'];?>" class="narrow" pattern="<?=$validIP4?>" title="IPv4 address A.B.C.D">
> This is the DNS server to use when DNS servers 1 and 2 are both down.
> This is the IPv4 DNS server to use when IPv4 DNS servers 1 and 2 are both down.
</div>
</div>
@@ -602,7 +602,7 @@ IPv6 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv6 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv6 address from the local DHCP server or Router Advertisement (RA)<br>
> *Static* - the IPv6 address is manually set for this interface<br>
> *None* - no IPv6 address is assigned to the interface (only available for VLANs)
@@ -626,32 +626,32 @@ IPv6 privacy extensions:
> Enable or disable the generation of a random IPv6 interface identifier according to RFC4941. This is similar to the temporary IPv6 address generation on Windows machines.
</div>
DNSv6 server assignment:
IPv6 DNS server assignment:
: <select name="DHCP6_KEEPRESOLV" size="1" onchange="checkDNSSettings6(this.form)">
<?=mk_option($eth0['DHCP6_KEEPRESOLV'], "no", "Automatic");?>
<?=mk_option($eth0['DHCP6_KEEPRESOLV'], "yes", "Static");?>
</select>
> If set to *Automatic* the server will use DNS server IPv4 address returned by the local automatic assignment.<br>
> If set to *Automatic* the server will use IPv6 DNS server(s) returned by the local automatic assignment.<br>
> If set to *Static* you may enter your own list.
IPv6 DNS server:
: <input type="text" name="DNS6_SERVER1" maxlength="39" value="<?=$eth0['DNS6_SERVER1'];?>" pattern="<?=$validIP6?>" title="IPv6 address nnnn:xxxx::yyyy">
> This is the primary DNS IPv6 server to use. Enter an IPv6 address.
> This is the primary IPv6 DNS server to use. Enter a IPv6 address.
<div id="dns6server2" style="display:none" markdown="1">
IPv6 DNS server 2:
: <input type="text" name="DNS6_SERVER2" maxlength="39" value="<?=$eth0['DNS6_SERVER2'];?>" pattern="<?=$validIP6?>" title="IPv6 address nnnn:xxxx::yyyy">
> This is the DNS IPv6 server to use when DNS IPv6 server 1 is down.
> This is the IPv6 DNS server to use when IPv6 DNS server 1 is down.
</div>
<div id="dns6server3" style="display:none" markdown="1">
IPv6 DNS server 3:
: <input type="text" name="DNS6_SERVER3" maxlength="39" value="<?=$eth0['DNS6_SERVER3'];?>" pattern="<?=$validIP6?>" title="IPv6 address nnnn:xxxx::yyyy">
> This is the DNS IPv6 server to use when DNS IPv6 servers 1 and 2 are both down.
> This is the IPv6 DNS server to use when IPv6 DNS servers 1 and 2 are both down.
</div>
</div>
@@ -698,7 +698,7 @@ IPv4 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv4 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv4 address from the local DHCP server<br>
> *Static* - the IPv4 address is manually set for this interface<br>
> *None* - no IPv4 address is assigned to the interface (only available for VLANs)
@@ -744,7 +744,7 @@ IPv6 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv6 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv6 address from the local DHCP server or Router Advertisement (RA)<br>
> *Static* - the IPv6 address is manually set for this interface<br>
> *None* - no IPv6 address is assigned to the interface (only available for VLANs)
@@ -804,7 +804,7 @@ IPv4 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv4 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv4 address from the local DHCP server<br>
> *Static* - the IPv4 address is manually set for this interface<br>
> *None* - no IPv4 address is assigned to the interface (only available for VLANs)
@@ -848,7 +848,7 @@ IPv6 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv6 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv6 address from the local DHCP server or Router Advertisement (RA)<br>
> *Static* - the IPv6 address is manually set for this interface<br>
> *None* - no IPv6 address is assigned to the interface (only available for VLANs)

View File

@@ -123,8 +123,42 @@ Bonding mode:
</select>
<span id="attention0" style="display:none"><b>Attention:</b> this mode requires a network switch with proper setup and support...</span>
> Mode 1 (active-backup) is the recommended default. Other modes allow you to set up a specific environment, but may require proper switch support.
> Choosing a unsupported mode can result in a disrupted communication. Use with caution.
> **Mode 0 (balance-rr)**<br>
> This mode transmits packets in a sequential order from the first available slave through the last.
> If two real interfaces are slaves in the bond and two packets arrive destined out of the bonded interface the first will be transmitted on the first slave and the second frame will be transmitted on the second slave.
> The third packet will be sent on the first and so on. This provides load balancing and fault tolerance.
>
> **Mode 1 (active-backup) - default**<br>
> This mode places one of the interfaces into a backup state and will only make it active if the link is lost by the active interface.
> Only one slave in the bond is active at an instance of time. A different slave becomes active only when the active slave fails.
> This mode provides fault tolerance.
>
> **Mode 2 (balance-xor)**<br>
> This mode transmits packets based on an XOR formula. Source MAC address is XOR'd with destination MAC address modula slave count.
> This selects the same slave for each destination MAC address and provides load balancing and fault tolerance.
>
> **Mode 3 (broadcast)**<br>
> This mode transmits everything on all slave interfaces. This mode is least used (only for specific purpose) and provides only fault tolerance.
>
> **Mode 4 (802.3ad)**<br>
> This mode is known as *Dynamic Link Aggregation*. It creates aggregation groups that share the same speed and duplex settings.
> It requires a switch that supports IEEE 802.3ad dynamic link.
> Slave selection for outgoing traffic is done according to the transmit hash policy, which may be changed from the default simple XOR policy via the xmit_hash_policy option.
> Note that not all transmit policies may be 802.3ad compliant, particularly inregards to the packet mis-ordering requirements of section 43.2.4 of the 802.3ad standard.
> Different peer implementations will have varying tolerances for noncompliance.
>
> **Mode 5 (balance-tlb)**<br>
> This mode is called *Adaptive transmit load balancing*. The outgoing traffic is distributed according to the current load and queue on each slave interface.
> Incoming traffic is received by the current slave.
>
> **Mode 6 (balance-alb)**<br>
> This mode is called *Adaptive load balancing*. This includes balance-tlb + receive load balancing (rlb) for IPV4 traffic.
> The receive load balancing is achieved by ARP negotiation.
> The bonding driver intercepts the ARP Replies sent by the server on their way out and overwrites the src hw address with the unique hw address of one of the slaves in the bond
> such that different clients use different hw addresses for the server.
>
> *Mode 1 (active-backup) is the recommended setting. Other modes allow you to set up a specific environment, but may require proper switch support.
> Choosing a unsupported mode can result in a disrupted communication.*
Bonding members of bondX:
: <select id="bond-ethX" name="BONDNICS" size="1" multiple="multiple" style="display:none">
@@ -180,7 +214,7 @@ IPv4 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv4 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv4 address from the local DHCP server<br>
> *Static* - the IPv4 address is manually set for this interface<br>
> *None* - no IPv4 address is assigned to the interface
@@ -224,7 +258,7 @@ IPv6 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv6 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv6 address from the local DHCP server or Router Advertisement (RA)<br>
> *Static* - the IPv6 address is manually set for this interface<br>
> *None* - no IPv6 address is assigned to the interface
@@ -290,7 +324,7 @@ IPv4 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv4 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv4 address from the local DHCP server<br>
> *Static* - the IPv4 address is manually set for this interface<br>
> *None* - no IPv4 address is assigned to the interface
@@ -334,7 +368,7 @@ IPv6 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv6 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv6 address from the local DHCP server or Router Advertisement (RA)<br>
> *Static* - the IPv6 address is manually set for this interface<br>
> *None* - no IPv6 address is assigned to the interface
@@ -394,7 +428,7 @@ IPv4 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv4 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv4 address from the local DHCP server<br>
> *Static* - the IPv4 address is manually set for this interface<br>
> *None* - no IPv4 address is assigned to the interface
@@ -438,7 +472,7 @@ IPv6 address assignment:
> The following settings are possible:
>
> *Automatic* - the server will attempt to obtain an IPv6 address from the local DHCP server<br>
> *Automatic* - the server will attempt to obtain a IPv6 address from the local DHCP server or Router Advertisement (RA)<br>
> *Static* - the IPv6 address is manually set for this interface<br>
> *None* - no IPv6 address is assigned to the interface

View File

@@ -17,6 +17,7 @@ Tag="users"
<?
$submenu = !empty($display['users']) && substr($display['users'],0,5)!='Tasks';
if ($submenu) $path = './Users';
ksort($users);
?>
<?foreach ($users as $user):?>
<?$img = "/boot/config/plugins/dynamix/users/{$user['name']}.png"?>

View File

@@ -17,7 +17,8 @@ $preselect = [['code' => 5, 'set' => true, 'text' => 'Reallocated sectors coun
['code' => 187, 'set' => true, 'text' => 'Reported uncorrectable errors'],
['code' => 188, 'set' => false,'text' => 'Command time-out'],
['code' => 197, 'set' => true, 'text' => 'Current pending sector count'],
['code' => 198, 'set' => true, 'text' => 'Uncorrectable sector count']];
['code' => 198, 'set' => true, 'text' => 'Uncorrectable sector count'],
['code' => 199, 'set' => true, 'text' => 'UDMA CRC error rate']];
for ($x = 0; $x < count($preselect); $x++) if ($preselect[$x]['set']) $numbers[] = $preselect[$x]['code'];
$numbers = implode('|',$numbers);

View File

@@ -142,8 +142,8 @@ echo $size;
Extract error correction type, if none, do not include additional information in the output
If maximum < installed then roundup maximum to the next power of 2 size of installed. E.g. 6 -> 8 or 12 -> 16
*/
$memory_installed = exec("dmidecode -qt17|awk -F: '/^\tSize: [0-9]+ MB\$/{t+=\$2};/^\tSize: [0-9]+ GB\$/{t+=\$2*1024} END{print t}'");
list($memory_maximum,$ecc_support) = array_map('trim',explode('#',exec("dmidecode -qt16|awk -F: '/^\tMaximum Capacity: [0-9]+ GB\$/{t+=\$2*1024};/^\tError Correction Type:/{e=\$2} END{print t\"#\"e}'")));
$memory_installed = exec("dmidecode -qt17|awk -F: '/^\tSize: [0-9]+ MB\$/{t+=\$2};/^\tSize: [0-9]+ GB\$/{t+=\$2*1024};/^\tSize: [0-9]+ TB\$/{t+=\$2*1048576} END{print t}'");
list($memory_maximum,$ecc_support) = array_map('trim',explode('#',exec("dmidecode -qt16|awk -F: '/^\tMaximum Capacity: [0-9]+ GB\$/{t+=\$2*1024};/^\tMaximum Capacity: [0-9]+ TB\$/{t+=\$2*1048576};/^\tError Correction Type:/{e=\$2} END{print t\"#\"e}'")));
if ($memory_installed >= 1024) {
$memory_installed = round($memory_installed/1024);
$memory_maximum = round($memory_maximum/1024);