Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
smartpublicbuilding
openhab-pb-stack
Commits
446d7948
Commit
446d7948
authored
Apr 26, 2019
by
dobli
Browse files
update landing config on move
parent
0130921a
Changes
1
Show whitespace changes
Inline
Side-by-side
building_manager.py
View file @
446d7948
...
@@ -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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment