Many minor fixes/improvements

This commit is contained in:
AlexSSD7 2023-08-29 10:59:50 +01:00
commit a47b4fc0ec
9 changed files with 53 additions and 39 deletions

View file

@ -40,11 +40,6 @@ func (fm *FileManager) Init() error {
defer func() { _ = sc.Close() }()
_, err = runSSHCmd(sc, "apk add util-linux lvm2")
if err != nil {
return errors.Wrap(err, "install utilities")
}
_, err = runSSHCmd(sc, "vgchange -ay")
if err != nil {
return errors.Wrap(err, "run vgchange cmd")
@ -110,7 +105,7 @@ func (fm *FileManager) luksOpen(sc *ssh.Client, fullDevPath string) error {
return errors.Wrap(err, "start cryptsetup luksopen cmd")
}
lg.Info("Attempting to open LUKS device")
lg.Info("Attempting to open a LUKS device")
_, err = os.Stderr.Write([]byte("Enter Password: "))
if err != nil {
@ -140,6 +135,10 @@ func (fm *FileManager) luksOpen(sc *ssh.Client, fullDevPath string) error {
err = sess.Wait()
if err != nil {
if strings.Contains(stderrBuf.String(), "Not enough available memory to open a keyslot.") {
fm.logger.Warn("Detected not enough memory to open a LUKS device, please allocate more memory using --vm-mem-alloc flag.")
}
return utils.WrapErrWithLog(err, "wait for cryptsetup luksopen cmd to finish", stderrBuf.String())
}
@ -268,11 +267,11 @@ pasv_address=127.0.0.1
go func() {
_, err = stdinPipe.Write(pwd)
if err != nil {
fm.vm.logger.Error("Failed to write FTP password to passwd stdin", "error", err)
fm.vm.logger.Error("Failed to write FTP password to passwd stdin", "error", err.Error())
}
_, err = stdinPipe.Write(pwd)
if err != nil {
fm.vm.logger.Error("Failed to write repeated FTP password to passwd stdin", "error", err)
fm.vm.logger.Error("Failed to write repeated FTP password to passwd stdin", "error", err.Error())
}
}()

View file

@ -61,6 +61,8 @@ type VMConfig struct {
CdromImagePath string
Drives []DriveConfig
MemoryAlloc uint64 // In KiB.
USBDevices []USBDevicePassthroughConfig
ExtraPortForwardingRules []PortForwardingRule
@ -84,7 +86,7 @@ func NewVM(logger *slog.Logger, cfg VMConfig) (*VM, error) {
// TODO: Configurable memory allocation
cmdArgs := []string{"-serial", "stdio", "-m", "2048", "-smp", fmt.Sprint(runtime.NumCPU())}
cmdArgs := []string{"-serial", "stdio", "-m", fmt.Sprint(cfg.MemoryAlloc), "-smp", fmt.Sprint(runtime.NumCPU())}
baseCmd := "qemu-system"
@ -319,14 +321,14 @@ func (vm *VM) Cancel() error {
sc, err := vm.DialSSH()
if err != nil {
if !errors.Is(err, ErrSSHUnavailable) {
vm.logger.Warn("Failed to dial VM SSH to do graceful shutdown", "error", err)
vm.logger.Warn("Failed to dial VM SSH to do graceful shutdown", "error", err.Error())
}
} else {
vm.logger.Warn("Sending poweroff command to the VM")
_, err = runSSHCmd(sc, "poweroff")
_ = sc.Close()
if err != nil {
vm.logger.Warn("Could not power off the VM safely", "error", err)
vm.logger.Warn("Could not power off the VM safely", "error", err.Error())
} else {
vm.logger.Info("Shutting the VM down safely")
}