Files
SDSAT/scripts/hostname.py
Hubert Cornet 3156426e8a
Some checks failed
CI / test (push) Failing after 9s
Add scripts/hostname.py
2026-02-14 10:42:25 +01:00

59 lines
1.4 KiB
Python

import os
import string
import random
import xml.etree.ElementTree as ET
import logging
import socket
def generate_random_string(length):
letters = string.ascii_lowercase
result_str = ''.join(random.choice(letters) for i in range(length))
return result_str
# Set up logging
logging.basicConfig(filename='/sdsat/logs/change_hostname.log', level=logging.INFO, format='%(asctime)s %(message)s')
host = socket.gethostname()
print (host)
logging.info(f"Hostname recupere : {host}")
if host == "sd-satxx.dtx.io" :
new_hostname = "DTX-SDSAT-" + generate_random_string(10)
logging.info('New hostname is: ' + new_hostname)
# Parse the XML configuration file
tree = ET.parse('/conf/config.xml')
root = tree.getroot()
# Find the hostname element and update it
for elem in root.iter('hostname'):
old_hostname = elem.text
elem.text = new_hostname
# Log the old and new hostname
logging.info('Changed hostname from ' + str(old_hostname) + ' to ' + new_hostname)
# Save the modified XML configuration file
tree.write('/conf/config.xml')
# Apply the new hostname immediately (this will require root privileges)
os.system("sudo hostname " + new_hostname)
# Log the completion of the script
logging.info('Hostname change completed successfully')
else:
logging.info('No need to change, changed already YBT')