From 7e09ceb57bd4eab69441c28bce968e8431f44909 Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Wed, 22 Feb 2023 10:34:45 +0100 Subject: [PATCH] F #6044 + #6048: Remove unneeded addresses NIC can only have one of IP/IP6/MAC to get a lease from the network. As all address tuples are indexed only the relevant one is preserved. (cherry picked from commit 9adcefb05b4c8f6deab24ba28340eacdb3873608) --- src/tm_mad/lib/backup.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/tm_mad/lib/backup.rb b/src/tm_mad/lib/backup.rb index 08fdc8b721..264db57ae1 100644 --- a/src/tm_mad/lib/backup.rb +++ b/src/tm_mad/lib/backup.rb @@ -299,6 +299,7 @@ module TransferManager template.delete('NIC') else remove_keys(NIC_LIST, template['NIC']) + remove_address(template['NIC']) end remove_empty(template) @@ -340,6 +341,24 @@ module TransferManager end end + # Sanity check - A NIC can only have one of IP / IP6 / MAC. + def remove_address(nic) + return if nic.nil? + + if nic.instance_of? Array + nic.each {|n| remove_addresses(n) } + else + if nic['IP'] + nic.delete('MAC') + nic.delete('IP6') + nic.delete('IP6_ULA') + nic.delete('IP6_GLOBAL') + elsif nic['IP6'] + nic.delete('MAC') + end + end + end + # Renders a template attribute in text form def render_template_value(str, value) if value.class == Hash