new: unit's name can be now set via main.name configuration parameter

This commit is contained in:
Simone Margaritelli
2019-10-24 17:48:37 +02:00
parent 61b957ac77
commit 0f171c35ce
3 changed files with 35 additions and 0 deletions

View File

@ -9,6 +9,37 @@ version = '1.1.0b'
_name = None
def set_name(new_name):
if new_name is None:
return
new_name = new_name.strip()
if new_name == '':
return
current = name()
if new_name != current:
global _name
logging.info("setting unit hostname '%s' -> '%s'" % (current, new_name))
with open('/etc/hostname', 'wt') as fp:
fp.write(new_name)
with open('/etc/hosts', 'rt') as fp:
prev = fp.read()
logging.debug("old hosts:\n%s\n" % prev)
with open('/etc/hosts', 'wt') as fp:
patched = prev.replace(current, new_name, -1)
logging.debug("new hosts:\n%s\n" % patched)
fp.write(patched)
_name = new_name
logging.info("restarting avahi ...")
os.system("service avahi-daemon restart")
logging.info("hostname set")
def name():
global _name
if _name is None: