From 4249d5d98256e83fd358bf73e3e12f60a4c965a2 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Tue, 9 Jul 2019 13:58:57 -0400 Subject: [PATCH] Always load and store IPMI on daemon start Without this, the IPMI information set during initial node creation can never be changed, which can cause issues later. Instead, always set it fresh on each node boot. --- node-daemon/pvcd/Daemon.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/node-daemon/pvcd/Daemon.py b/node-daemon/pvcd/Daemon.py index 6e34aef4..b1695182 100644 --- a/node-daemon/pvcd/Daemon.py +++ b/node-daemon/pvcd/Daemon.py @@ -542,9 +542,15 @@ signal.signal(signal.SIGQUIT, term) # Check if our node exists in Zookeeper, and create it if not if zk_conn.exists('/nodes/{}'.format(myhostname)): logger.out("Node is " + logger.fmt_green + "present" + logger.fmt_end + " in Zookeeper", state='i') - zkhandler.writedata(zk_conn, { '/nodes/{}/daemonstate'.format(myhostname): 'init' }) # Update static data just in case it's changed - zkhandler.writedata(zk_conn, { '/nodes/{}/staticdata'.format(myhostname): ' '.join(staticdata) }) + zkhandler.writedata(zk_conn, { + '/nodes/{}/daemonstate'.format(myhostname): 'init', + '/nodes/{}/staticdata'.format(myhostname): ' '.join(staticdata), + # Keepalives and fencing information (always load and set from config on boot) + '/nodes/{}/ipmihostname'.format(myhostname): config['ipmi_hostname'], + '/nodes/{}/ipmiusername'.format(myhostname): config['ipmi_username'], + '/nodes/{}/ipmipassword'.format(myhostname): config['ipmi_password'] + }) else: logger.out("Node is " + logger.fmt_red + "absent" + logger.fmt_end + " in Zookeeper; adding new node", state='i') keepalive_time = int(time.time())