From 6877a49cc09a372a8209ca2c395d25b154cd49fb Mon Sep 17 00:00:00 2001 From: Rene Peinthor Date: Tue, 11 Jun 2024 14:27:00 +0200 Subject: [PATCH] tm/snap_create_live: implement (copy from snap_create) --- tm/snap_create_live | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tm/snap_create_live b/tm/snap_create_live index af8ee67..1ead6db 100755 --- a/tm/snap_create_live +++ b/tm/snap_create_live @@ -20,14 +20,33 @@ limitations under the License. import sys -from one import util +from linstor import Resource +from one import consts, util, vm +from one.datastore import Datastore + +SRC = sys.argv[1] +SNAP_ID = sys.argv[2] +VM_ID = int(sys.argv[3]) +DS_ID = sys.argv[4] def main(): util.log_info("Entering tm/snap_create_live") - util.log_info("Operation not supported!") - util.log_info("Entering tm/snap_create_live") - sys.exit(1) + disk_id = SRC.split(".")[-1].strip() + snap_id = util.arg_host(SNAP_ID).strip() + + datastore = Datastore(util.show_ds(DS_ID)) + + target_vm = vm.Vm(util.show_vm(VM_ID)) + + res_name = target_vm.disk_source(disk_id) + if target_vm.disk_persistent(disk_id) != "YES": + res_name = "{}-vm{}-disk{}".format(res_name, VM_ID, disk_id) + + res = Resource(name=res_name, uri=datastore.linstor_controllers) + + res.snapshot_create("{}-{}".format(consts.SNAP_PREFIX, snap_id)) + util.log_info("Exiting tm/snap_create_live") if __name__ == "__main__":