diff --git a/.gitignore b/.gitignore index 238eac7..66c92a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea/ -venv/ \ No newline at end of file +.vscode/ +venv/ diff --git a/etcd3_wrapper b/etcd3_wrapper index 59974e2..cb2a416 160000 --- a/etcd3_wrapper +++ b/etcd3_wrapper @@ -1 +1 @@ -Subproject commit 59974e2047bbea08b72d32129fd905bbea6e9d70 +Subproject commit cb2a416a17d6789e613ba3b9957917770f4211e1 diff --git a/main.py b/main.py index 4c422e5..ad667c3 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ import os +import json import subprocess - +import shutil from etcd3_wrapper import Etcd3Wrapper BASE_PATH = "/var/www" @@ -10,6 +11,7 @@ images = list(client.get_prefix("/v1/image/", value_in_json=True)) images_to_be_created = list(filter(lambda e: e.value["status"] == "TO_BE_CREATED", images)) for image in images_to_be_created: + image_uuid = image.key.split("/")[-1] image_full_path = f"{BASE_PATH}/{image.value['owner']}/{image.value['filename']}" if os.path.isfile(image_full_path): output = subprocess.check_output(["qemu-img", "info", image_full_path]).decode("utf-8") @@ -17,13 +19,15 @@ for image in images_to_be_created: print("qcow2 format") print("Converting it to raw") subprocess.run(["qemu-img", "convert", "-f", "qcow2", - "-O", "raw", image_full_path, "image.raw"]) - if os.path.isfile("image.raw"): - subprocess.run(["rbd", "import", "image.raw", - f"{image.value['store_name']}/{image.key.split('/')[-1]}"]) - os.remove("image.raw") + "-O", "raw", image_full_path, f"{image_uuid}.raw"]) + if os.path.isfile(f"{image_uuid}.raw"): + shutil.move(f"{image_uuid}.raw", f"/var/vm/{image_uuid}.raw") + # subprocess.run(["rbd", "import", "image.raw", + # f"{image.value['store_name']}/{image.key.split('/')[-1]}"]) + image.value["status"] = "CREATED" + client.put(image.key, json.dumps(image.value)) else: - print("image.raw not found") + print(f"{image_uuid}.raw not found") else: print("not qcow2 format") else: