dvmbased.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:qubes-incremental-backup-poc 作者: v6ak 项目源码 文件源码
def restore_vm(self, new_vm, new_name, size, qvm_create_args, vm_keys, backup_storage_vm):
        subprocess.check_call("qvm-create "+shlex.quote(new_name)+" "+qvm_create_args, shell=True)
        subprocess.check_call(["qvm-prefs", "-s", new_name, "netvm", "none"]) # Safe approach…
        if size is not None:
            subprocess.check_call(["qvm-grow-private", new_name, size])
        with Dvm() as dvm:
            dvm.attach("xvdz", new_vm.private_volume())
            try:
                if size is not None:
                    dvm.check_call("sudo e2fsck -f -p /dev/xvdz")
                    dvm.check_call("sudo resize2fs /dev/xvdz")
                dvm.check_call("sudo mkdir /mnt/clone")
                dvm.check_call("sudo mount /dev/xvdz /mnt/clone")
                try:
                    self.upload_agent(dvm)
                    with self.add_permissions(backup_storage_vm, dvm, vm_keys.encrypted_name):
                        dvm.check_call("/tmp/restore-agent "+shlex.quote(backup_storage_vm.get_name())+" "+shlex.quote(vm_keys.encrypted_name), input = vm_keys.key, stdout = None, stderr = None)
                finally: dvm.check_call("sudo umount /mnt/clone")
            finally: dvm.detach_all()

    # abstract def upload_agent(self, dvm)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号