diff --git a/cmd/dkl-local-server/boot-img.go b/cmd/dkl-local-server/boot-img.go index efc86a5..ba95908 100644 --- a/cmd/dkl-local-server/boot-img.go +++ b/cmd/dkl-local-server/boot-img.go @@ -98,11 +98,10 @@ func buildBootImgQemuConvert(out io.Writer, ctx *renderContext, format string) ( io.Copy(out, img) return } -func buildBootQcow2(out io.Writer, ctx *renderContext) (err error) { - return buildBootImgQemuConvert(out, ctx, "qcow2") -} -func buildBootVmdk(out io.Writer, ctx *renderContext) (err error) { - return buildBootImgQemuConvert(out, ctx, "vmdk") +func qemuImgBootImg(format string) func(out io.Writer, ctx *renderContext) (err error) { + return func(out io.Writer, ctx *renderContext) (err error) { + return buildBootImgQemuConvert(out, ctx, format) + } } var grubSupportVersion = flag.String("grub-support", "1.1.0", "GRUB support version") diff --git a/cmd/dkl-local-server/ws-host.go b/cmd/dkl-local-server/ws-host.go index fe4f6ac..6406198 100644 --- a/cmd/dkl-local-server/ws-host.go +++ b/cmd/dkl-local-server/ws-host.go @@ -46,20 +46,30 @@ func (ws wsHost) register(rws *restful.WebService, alterRB func(*restful.RouteBu Produces(mime.DISK). Doc("Get the " + ws.hostDoc + "'s boot disk image"), + // - raw + compressed b("boot.img.gz"). Produces(mime.DISK + "+gzip"). - Doc("Get the " + ws.hostDoc + "'s boot disk image (gzip compressed)"), - + Doc("Get the " + ws.hostDoc + "'s boot disk image, gzip compressed"), b("boot.img.lz4"). Produces(mime.DISK + "+lz4"). - Doc("Get the " + ws.hostDoc + "'s boot disk image (lz4 compressed)"), + Doc("Get the " + ws.hostDoc + "'s boot disk image, lz4 compressed"), + // - other formats b("boot.qcow2"). Produces(mime.DISK + "+qcow2"). - Doc("Get the " + ws.hostDoc + "'s boot disk image (qcow2)"), + Doc("Get the " + ws.hostDoc + "'s boot disk image, QCOW2 (KVM, Xen)"), + b("boot.qed"). + Produces(mime.DISK + "+qed"). + Doc("Get the " + ws.hostDoc + "'s boot disk image, QED (KVM)"), + b("boot.vmdk"). + Produces(mime.DISK + "+vdi"). + Doc("Get the " + ws.hostDoc + "'s boot disk image, VDI (VirtualBox)"), + b("boot.qcow2"). + Produces(mime.DISK + "+vpc"). + Doc("Get the " + ws.hostDoc + "'s boot disk image, VHD (Hyper-V)"), b("boot.vmdk"). Produces(mime.DISK + "+vmdk"). - Doc("Get the " + ws.hostDoc + "'s boot disk image (VMDK)"), + Doc("Get the " + ws.hostDoc + "'s boot disk image, VMDK (VMware)"), // metal/local HDD upgrades b("boot.tar"). @@ -194,9 +204,15 @@ func renderHost(w http.ResponseWriter, r *http.Request, what string, host *local case "boot.img.lz4": err = renderCtx(w, r, ctx, what, buildBootImgLZ4) case "boot.qcow2": - err = renderCtx(w, r, ctx, what, buildBootQcow2) + err = renderCtx(w, r, ctx, what, qemuImgBootImg("qcow2")) + case "boot.qed": + err = renderCtx(w, r, ctx, what, qemuImgBootImg("qed")) + case "boot.vdi": + err = renderCtx(w, r, ctx, what, qemuImgBootImg("vdi")) case "boot.vmdk": - err = renderCtx(w, r, ctx, what, buildBootVmdk) + err = renderCtx(w, r, ctx, what, qemuImgBootImg("vmdk")) + case "boot.vpc": + err = renderCtx(w, r, ctx, what, qemuImgBootImg("vpc")) default: http.NotFound(w, r)