c9f583 kdump-lib.sh: rework nmcli related functions

Authored and Committed by liutgnu 3 years ago
    kdump-lib.sh: rework nmcli related functions
    
    upstream: fedora
    resolves: bz2003832
    conflict: none
    
    commit 58d3e6db3a2f066ea8e48fe9a8c77a6bb8ca7159
    Author: Kairui Song <kasong@redhat.com>
    Date:   Wed Sep 8 15:20:42 2021 +0800
    
        kdump-lib.sh: rework nmcli related functions
    
        This fixes word splitting issue with nmcli args. Current kexec-tools
        scripts won't call nmcli with correct arguments when there are space in
        network interface name.
    
        nmcli expects multiple parameters, but get_nmcli_value_by_field only
        accepts two params and depends on shell word splitting to split the
        _nm_show_cmd into multiple params, which is very fragile.
        So switch the param order, simplified this function and now multiple
        params can be used properly.
    
        And get_nmcli_connection_show_cmd_by_ifname returns multiple
        nmcli params in a single variable, it depend on shell word splitting to
        split the words when calling nmcli. But this is very fragile and break
        easily when there are any special character in the connection path.
    
        This function is only introduced to get and cache the nmcli command
        which contains the "connection name".
    
        Actually only cache the "connection path" is enough. Callers should
        just call get_nmcli_connection_apath_by_ifname to cache the path, and
        a new helper get_nmcli_field_by_conpath is introduced here to get value
        from nmcli. This way "connection path" can contain any character.
    
        Also get rid of another nmcli_cmd usage in
        get_nmcli_connection_apath_by_ifname which stores multiple params in a
        single bash variable separated by space.
    
        Signed-off-by: Kairui Song <kasong@redhat.com>
        Acked-by: Philipp Rudo <prudo@redhat.com>
    
    Signed-off-by: Tao Liu <ltao@redhat.com>
    
        
file modified
+18 -19
file modified
+10 -22