adding main

This commit is contained in:
alex
2024-01-23 14:45:34 +01:00
parent 5f95ac484a
commit 621ffe6d98

56
main.py Normal file
View File

@@ -0,0 +1,56 @@
import json
import socket
import subprocess
REMOTES = {"bee1", "bee2", "bee3"}
CUR_PROJECT = "default"
BAK_PROJECT = "backs"
def run_and_load(cmd_list):
std = subprocess.run(
cmd_list,
capture_output=True,
).stdout.decode()
return json.loads(std)
if __name__ == "__main__":
curr_host = socket.gethostname()
other_nodes = REMOTES.difference([curr_host])
containers = run_and_load(
[
"lxc",
"list",
"-f",
"json",
"--project",
CUR_PROJECT,
]
)
cont_names = [x["name"] for x in containers]
for name in cont_names:
print(f"Snapshot {name}")
std = subprocess.run(
[
"lxc",
"snapshot",
name,
"--project",
CUR_PROJECT,
],
)
for node in other_nodes:
print(f"export {name} on {node}")
std = subprocess.run(
[
"lxc",
"cp",
name,
f"{node}:{name}",
"--target-project",
BAK_PROJECT,
"--stateless",
"--refresh",
],
)