Can backup vm disks as images
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import { APIClient } from "./ApiClient";
|
||||
import { VMFileDisk, VMInfo } from "./VMApi";
|
||||
|
||||
export type DiskImageFormat =
|
||||
| { format: "Raw"; is_sparse: boolean }
|
||||
@ -77,6 +78,22 @@ export class DiskImageApi {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Backup VM disk into image disks library
|
||||
*/
|
||||
static async BackupVMDisk(
|
||||
vm: VMInfo,
|
||||
disk: VMFileDisk,
|
||||
dest_file_name: string,
|
||||
format: DiskImageFormat
|
||||
): Promise<void> {
|
||||
await APIClient.exec({
|
||||
uri: `/vm/${vm.uuid}/disk/${disk.name}/backup`,
|
||||
method: "POST",
|
||||
jsonData: { ...format, dest_file_name },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete disk image file
|
||||
*/
|
||||
|
@ -5,7 +5,6 @@
|
||||
*/
|
||||
|
||||
import { APIClient } from "./ApiClient";
|
||||
import { DiskImageFormat } from "./DiskImageApi";
|
||||
|
||||
export type VMState =
|
||||
| "NoState"
|
||||
@ -385,20 +384,4 @@ export class VMApi {
|
||||
encodeURIComponent(token)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Backup VM disk
|
||||
*/
|
||||
static async BackupDisk(
|
||||
vm: VMInfo,
|
||||
disk: VMFileDisk,
|
||||
file_name: string,
|
||||
format: DiskImageFormat
|
||||
): Promise<void> {
|
||||
await APIClient.exec({
|
||||
uri: `/vm/${vm.uuid}/disk/${disk.name}/backup`,
|
||||
method: "POST",
|
||||
jsonData: { ...format, file_name },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
import React from "react";
|
||||
import { DiskImage, DiskImageApi, DiskImageFormat } from "../api/DiskImageApi";
|
||||
import { ServerApi } from "../api/ServerApi";
|
||||
import { VMApi, VMFileDisk, VMInfo } from "../api/VMApi";
|
||||
import { VMFileDisk, VMInfo } from "../api/VMApi";
|
||||
import { useAlert } from "../hooks/providers/AlertDialogProvider";
|
||||
import { useLoadingMessage } from "../hooks/providers/LoadingMessageProvider";
|
||||
import { useSnackbar } from "../hooks/providers/SnackbarProvider";
|
||||
@ -60,7 +60,8 @@ export function ConvertDiskImageDialog(
|
||||
);
|
||||
|
||||
// Perform the conversion / backup operation
|
||||
if (p.backup) await VMApi.BackupDisk(p.vm, p.disk, filename, format);
|
||||
if (p.backup)
|
||||
await DiskImageApi.BackupVMDisk(p.vm, p.disk, filename, format);
|
||||
else await DiskImageApi.Convert(p.image, filename, format);
|
||||
|
||||
p.onFinished();
|
||||
|
Reference in New Issue
Block a user