Project

General

Profile

Download (1.4 KB) Statistics
| Branch: | Tag: | Revision:
<%#
name: kickstart_ifcfg_get_identifier_names
model: ProvisioningTemplate
snippet: true
model: ProvisioningTemplate
kind: snippet
description: |
Generates shell snippet that detects the current identifier of a network interface
based on the MAC address. This is required in provisioning flows when reboot is involved
between when the network interfaces has been reported to the database and the actual
provisioning, e.g. when provisioning using discovery image. Interfaces reported by FDI
use naming convention used by FDI, e.g. eth0, while when provisioning a newer RHEL, interfaces
use bios dev names e.g. enp0s31f6.
This is typically used by other templates and snippets that pass interface
object to be configured. It is not expected to be used directly.
-%>
<%- if @identifier -%>
<%= "real=\"#{@identifier}\"" %>
<%- else -%>
<%- if !@interface.inheriting_mac -%>
<%= "\nreal=`echo #{@interface.identifier}`" -%>
<%- else -%>
<%= "real=`grep -l #{@interface.inheriting_mac} /sys/class/net/*/{bonding_slave/perm_hwaddr,address} 2>/dev/null | awk -F '/' '// {print $5}' | head -1`" -%>
<%- end -%>
<%- if @interface.virtual? -%>
<%= "\nreal=`echo #{@interface.identifier} | sed s/#{@interface.attached_to}/$real/`" -%>
<%- end -%>
<%- end -%>
<%# ifcfg files are ignored by NM if their name contains colons so we convert colons to underscore %>
sanitized_real=`echo $real | sed s/:/_/`
(25-25/56)