2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-06-03 03:50:08 +00:00

Merge pull request #6599 from cxhong/bondstr

Support multiple options for nicextraparams
This commit is contained in:
Mark Gurevich 2020-03-02 11:35:40 -05:00 committed by GitHub
commit 6f689c6cfc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 22 additions and 3 deletions

View File

@ -19,3 +19,7 @@ Use ``nicextraparams`` to customize attributes in NIC configuration file. For ex
HWADDR=42:f5:0a:05:6a:09
MTU=1456
#. Example to add `nicextraparams` to `bond` interface ::
chdef cn1 nicextraparams.bond0='BONDING_OPTS="mode=active-backup;abc=100" MTU=6400 XYZ="4800" IOP="mode=1 phase=2"'

View File

@ -121,6 +121,8 @@ nics Attributes:
<nic1>!<param1=value1 param2=value2>,<nic2>!<param3=value3>, for example, eth0!MTU=1500,ib0!MTU=65520 CONNECTED_MODE=yes.
If multiple ip addresses are associated with each NIC:
<nic1>!<param1=value1 param2=value2>|<param3=value3>,<nic2>!<param4=value4 param5=value5>|<param6=value6>, for example, eth0!MTU=1500|MTU=1460,ib0!MTU=65520 CONNECTED_MODE=yes.
The semicolon separator is needed if there are multiple values for extra parameters:
bond0!BONDING_OPTS=lacp_rate=1;miimon=100;mode=802.3ad
The xCAT object definition commands support to use nicextraparams.<nicname> as the sub attributes.

View File

@ -629,6 +629,8 @@ group Attributes:
<nic1>!<param1=value1 param2=value2>,<nic2>!<param3=value3>, for example, eth0!MTU=1500,ib0!MTU=65520 CONNECTED_MODE=yes.
If multiple ip addresses are associated with each NIC:
<nic1>!<param1=value1 param2=value2>|<param3=value3>,<nic2>!<param4=value4 param5=value5>|<param6=value6>, for example, eth0!MTU=1500|MTU=1460,ib0!MTU=65520 CONNECTED_MODE=yes.
The semicolon separator is needed if there are multiple values for extra parameters:
bond0!BONDING_OPTS=lacp_rate=1;miimon=100;mode=802.3ad
The xCAT object definition commands support to use nicextraparams.<nicname> as the sub attributes.

View File

@ -629,6 +629,8 @@ node Attributes:
<nic1>!<param1=value1 param2=value2>,<nic2>!<param3=value3>, for example, eth0!MTU=1500,ib0!MTU=65520 CONNECTED_MODE=yes.
If multiple ip addresses are associated with each NIC:
<nic1>!<param1=value1 param2=value2>|<param3=value3>,<nic2>!<param4=value4 param5=value5>|<param6=value6>, for example, eth0!MTU=1500|MTU=1460,ib0!MTU=65520 CONNECTED_MODE=yes.
The semicolon separator is needed if there are multiple values for extra parameters:
bond0!BONDING_OPTS=lacp_rate=1;miimon=100;mode=802.3ad
The xCAT object definition commands support to use nicextraparams.<nicname> as the sub attributes.

View File

@ -1626,6 +1626,8 @@ zvmivp => {
<nic1>!<param1=value1 param2=value2>,<nic2>!<param3=value3>, for example, eth0!MTU=1500,ib0!MTU=65520 CONNECTED_MODE=yes.
If multiple ip addresses are associated with each NIC:
<nic1>!<param1=value1 param2=value2>|<param3=value3>,<nic2>!<param4=value4 param5=value5>|<param6=value6>, for example, eth0!MTU=1500|MTU=1460,ib0!MTU=65520 CONNECTED_MODE=yes.
The semicolon separator is needed if there are multiple values for extra parameters:
bond0!BONDING_OPTS=lacp_rate=1;miimon=100;mode=802.3ad
The xCAT object definition commands support to use nicextraparams.<nicname> as the sub attributes.',
nicdevices => 'Comma-separated list of NIC device per NIC, multiple ethernet devices can be bonded as bond device, these ethernet devices are separated by | . <nic1>!<dev1>|<dev3>,<nic2>!<dev2>, e.g. bond0!eth0|eth2,br0!bond0. The xCAT object definition commands support to use nicdevices.<nicname> as the sub attributes.',
nicsadapter => 'Comma-separated list of NIC information collected by getadapter. <nic1>!<param1=value1 param2=value2>,<nic2>!<param4=value4 param5=value5>, for example, enP3p3s0f1!mac=98:be:94:59:fa:cd linkstate=DOWN,enP3p3s0f2!mac=98:be:94:59:fa:ce candidatename=enP3p3s0f2/enx98be9459face',

View File

@ -1820,7 +1820,13 @@ function add_extra_params_nmcli {
name="${array_extra_param_names[$i]}"
value="${array_extra_param_values[$i]}"
if [ -n "$name" -a -n "$value" ]; then
echo "$name=$value" >> $str_conf_file
grep $name $str_conf_file >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
replacevalue="$name=$value"
sed -i "s/^$name=.*/$replacevalue/" $str_conf_file
else
echo "$name="$value"" >> $str_conf_file
fi
else
log_error "invalid extra params $name $value, please check nics.nicextraparams"
rc=1

View File

@ -710,11 +710,12 @@ function get_nic_extra_params() {
# This functions parse the extra parameters for an ip address of a nic
# Input is like this:
# MTU=65520 something=yes
# MTU=65520 something=yes;no;maybe
# After the function is called:
# array_extra_param_names[0]="MTU"
# array_extra_param_values[0]="65520"
# array_extra_param_names[1]="something"
# array_extra_param_values[0]="yes"
# array_extra_param_values[1]="yes" or array_extra_param_values[1]="yes no maybe"
#
function parse_nic_extra_params() {
str_extra=$1
@ -731,7 +732,7 @@ function parse_nic_extra_params() {
do
token2="${params_temp[$k]}"
array_extra_param_names[$k]=`echo "$token2" | cut -d'=' -f 1`
array_extra_param_values[$k]=`echo "$token2" | cut -d'=' -f 2-`
array_extra_param_values[$k]=`echo "$token2" | cut -d'=' -f 2- | sed 's,\;, ,g'`
k=$((k+1))
done
}