From 53587ae8281747e67d00c1e3398f2f461b5dd2cf Mon Sep 17 00:00:00 2001 From: cxhong Date: Fri, 28 Feb 2020 14:29:31 -0500 Subject: [PATCH] support multiple options for nicextraparams --- xCAT/postscripts/nicutils.sh | 7 ++++++- xCAT/postscripts/xcatlib.sh | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/xCAT/postscripts/nicutils.sh b/xCAT/postscripts/nicutils.sh index 9fd7b7b98..eb877310a 100755 --- a/xCAT/postscripts/nicutils.sh +++ b/xCAT/postscripts/nicutils.sh @@ -1820,7 +1820,12 @@ 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 + sed -i 's/^$name.*/$name=\"$vlaue\"/g' $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 diff --git a/xCAT/postscripts/xcatlib.sh b/xCAT/postscripts/xcatlib.sh index 4c3cf0210..a24d06b2e 100755 --- a/xCAT/postscripts/xcatlib.sh +++ b/xCAT/postscripts/xcatlib.sh @@ -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 }