diff --git a/confluent_osdeploy/el7/profiles/default/scripts/prechroot.sh b/confluent_osdeploy/el7/profiles/default/scripts/prechroot.sh index 5b6d5be8..51651124 100644 --- a/confluent_osdeploy/el7/profiles/default/scripts/prechroot.sh +++ b/confluent_osdeploy/el7/profiles/default/scripts/prechroot.sh @@ -12,6 +12,8 @@ export confluent_mgr confluent_profile nodename cp -a /etc/confluent /mnt/sysimage/etc chmod -R og-rwx /mnt/sysimage/etc/confluent cp /tmp/functions /mnt/sysimage/etc/confluent/ +hostnamectl set-hostname $nodename +cp /etc/hostname /mnt/sysimage/etc/hostname . /tmp/functions if [ -f /tmp/cryptboot ]; then cp /tmp/cryptboot /mnt/sysimage/tmp/ diff --git a/confluent_osdeploy/el8/profiles/default/scripts/prechroot.sh b/confluent_osdeploy/el8/profiles/default/scripts/prechroot.sh index 5b6d5be8..51651124 100644 --- a/confluent_osdeploy/el8/profiles/default/scripts/prechroot.sh +++ b/confluent_osdeploy/el8/profiles/default/scripts/prechroot.sh @@ -12,6 +12,8 @@ export confluent_mgr confluent_profile nodename cp -a /etc/confluent /mnt/sysimage/etc chmod -R og-rwx /mnt/sysimage/etc/confluent cp /tmp/functions /mnt/sysimage/etc/confluent/ +hostnamectl set-hostname $nodename +cp /etc/hostname /mnt/sysimage/etc/hostname . /tmp/functions if [ -f /tmp/cryptboot ]; then cp /tmp/cryptboot /mnt/sysimage/tmp/ diff --git a/confluent_server/confluent/consoleserver.py b/confluent_server/confluent/consoleserver.py index 81f97b27..b7023361 100644 --- a/confluent_server/confluent/consoleserver.py +++ b/confluent_server/confluent/consoleserver.py @@ -658,6 +658,7 @@ class ProxyConsole(object): while data: self.data_handler(data) data = tlvdata.recv(self.remote) + self.remote.close() def get_buffer_age(self): # the server sends a buffer age if appropriate, no need to handle @@ -720,7 +721,6 @@ class ProxyConsole(object): if self.remote: try: tlvdata.send(self.remote, {'operation': 'stop'}) - self.remote.close() except Exception: pass self.clisession = None diff --git a/confluent_server/confluent/plugins/hardwaremanagement/redfish.py b/confluent_server/confluent/plugins/hardwaremanagement/redfish.py index 13df986e..45e68da6 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/redfish.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/redfish.py @@ -183,7 +183,7 @@ class IpmiCommandWrapper(ipmicommand.Command): if 'Access Denied' in str(pe): raise exc.TargetEndpointBadCredentials() if 'Redfish not ready' in str(pe): - raise exc.TargetEndpointUnreachable('Redfish not yet ready') + raise exc.TargetEndpointUnreachable('Redfish is not supported by this system or is not yet ready') raise def close_confluent(self): diff --git a/imgutil/imgutil b/imgutil/imgutil index b64473c4..62905c9b 100644 --- a/imgutil/imgutil +++ b/imgutil/imgutil @@ -15,6 +15,7 @@ import struct import subprocess import sys import tempfile +import time libc = ctypes.CDLL(ctypes.util.find_library('c')) CLONE_NEWNS = 0x00020000 @@ -315,7 +316,16 @@ def encrypt_image(plainfile, cryptfile, keyfile): lastoffset = plainin.tell() cryptout.write(chunk) chunk = plainin.read(2097152) - subprocess.check_call(['dmsetup', 'remove', dmname]) + mounted = True + tries = 30 + time.sleep(0.1) + while mounted: + tries -= 1 + try: + subprocess.check_call(['dmsetup', 'remove', dmname]) + mounted = False + except subprocess.CalledProcessError: + time.sleep(0.1) subprocess.check_call(['losetup', '-d', loopdev]) oum = os.umask(0o077) with open(keyfile, 'w') as keyout: @@ -890,7 +900,16 @@ def unpack_image(args): subprocess.check_call(['unsquashfs', '-d', 'rootfs', indir]) finally: if cleandmtable: - subprocess.check_call(['dmsetup', 'remove', cleandmtable]) + mounted = True + tries = 30 + time.sleep(0.1) + while mounted and tries: + tries -= 1 + try: + subprocess.check_call(['dmsetup', 'remove', cleandmtable]) + mounted = False + except subprocess.CalledProcessError: + time.sleep(0.1) def pack_image(args):