From 8c886b751ca95ea35c1298d5d7187106254debb4 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 26 Mar 2019 13:43:30 -0400 Subject: [PATCH] Skip pushing static config if config already matches A strategy of manually adding DHCP managed nodes produced static-baking when not desired. For now skip the baking in if the address matches. --- confluent_server/confluent/discovery/handlers/bmc.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/confluent_server/confluent/discovery/handlers/bmc.py b/confluent_server/confluent/discovery/handlers/bmc.py index fe86876d..389b429a 100644 --- a/confluent_server/confluent/discovery/handlers/bmc.py +++ b/confluent_server/confluent/discovery/handlers/bmc.py @@ -109,9 +109,14 @@ class NodeHandler(generic.NodeHandler): netconfig = netutil.get_nic_config(cfg, nodename, ip=newip) plen = netconfig['prefix'] newip = '{0}/{1}'.format(newip, plen) - ic.set_net_configuration(ipv4_address=newip, - ipv4_configuration='static', - ipv4_gateway=netconfig['ipv4_gateway']) + currcfg = ic.get_net_configuration() + if currcfg['ipv4_address'] != newip: + # do not change the ipv4_config if the current config looks + # like it is already accurate + ic.set_net_configuration(ipv4_address=newip, + ipv4_configuration='static', + ipv4_gateway=netconfig[ + 'ipv4_gateway']) elif self.ipaddr.startswith('fe80::'): cfg.set_node_attributes( {nodename: {'hardwaremanagement.manager': self.ipaddr}})