adding main
This commit is contained in:
56
main.py
Normal file
56
main.py
Normal 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",
|
||||||
|
],
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user