Commit 446d7948 authored by dobli's avatar dobli
Browse files

update landing config on move

parent 0130921a
...@@ -6,6 +6,7 @@ from typing import NamedTuple ...@@ -6,6 +6,7 @@ from typing import NamedTuple
import logging import logging
import os import os
import sys import sys
import json as pyjson
from hashlib import md5 from hashlib import md5
from shutil import copy2 from shutil import copy2
from subprocess import PIPE, run from subprocess import PIPE, run
...@@ -960,6 +961,28 @@ def generate_pb_framr_file(frames): ...@@ -960,6 +961,28 @@ def generate_pb_framr_file(frames):
EDIT_FILES['pb_framr_pages'], configs, json=True) EDIT_FILES['pb_framr_pages'], configs, json=True)
def update_pb_framr_host(old_host, new_host):
"""Updates framr config to use changed host name
:old_host: old host that shall be replaced
:new_host: host that will be the new target
"""
configs = []
config_path = EDIT_FILES['pb_framr_pages']
custom_config_path = f'{custom_path}/{config_path}'
with open(custom_config_path, 'r') as file:
configs = pyjson.load(file)
for c in configs:
for e in c['entries']:
if e['url'] == f"http://{old_host}/":
e['url'] = f"http://{new_host}/"
if configs:
create_or_replace_config_file(
EDIT_FILES['pb_framr_pages'], configs, json=True)
def create_or_replace_config_file(config_path, content, json=False): def create_or_replace_config_file(config_path, content, json=False):
"""Creates or replaces a config file with new content """Creates or replaces a config file with new content
...@@ -1328,7 +1351,7 @@ def remove_label_from_nodes(label, value, manager=None): ...@@ -1328,7 +1351,7 @@ def remove_label_from_nodes(label, value, manager=None):
logging.info(f'Remove label {label} with value {value} from {m}') logging.info(f'Remove label {label} with value {value} from {m}')
client.close() client.close()
return [n.id for n in matching_nodes] return [n.attrs['Description']['Hostname'] for n in matching_nodes]
def assign_label_to_node(nodeid, label, value, manager=None): def assign_label_to_node(nodeid, label, value, manager=None):
...@@ -1418,6 +1441,7 @@ def restore_building_backup(manager, building, new_machine=None): ...@@ -1418,6 +1441,7 @@ def restore_building_backup(manager, building, new_machine=None):
run_command_in_service('backup', 'restore', new_machine) run_command_in_service('backup', 'restore', new_machine)
# When building was moved update host entry of openhab in compose # When building was moved update host entry of openhab in compose
move_openhab_service(building, new_machine) move_openhab_service(building, new_machine)
update_pb_framr_host(old_nodes[0], new_machine)
else: else:
logging.error( logging.error(
f"Failed to start services on {new_machine}, " f"Failed to start services on {new_machine}, "
...@@ -1426,6 +1450,7 @@ def restore_building_backup(manager, building, new_machine=None): ...@@ -1426,6 +1450,7 @@ def restore_building_backup(manager, building, new_machine=None):
remove_label_from_nodes('building', building, manager) remove_label_from_nodes('building', building, manager)
for on in old_nodes: for on in old_nodes:
assign_label_to_node(on, 'building', building, manager) assign_label_to_node(on, 'building', building, manager)
update_pb_framr_host(new_machine, on)
else: else:
# execute restore command in backup service # execute restore command in backup service
run_command_in_service('backup', 'restore', manager) run_command_in_service('backup', 'restore', manager)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment