Many minor fixes/improvements
This commit is contained in:
parent
443dbf684c
commit
a47b4fc0ec
9 changed files with 53 additions and 39 deletions
|
|
@ -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())
|
||||
}
|
||||
}()
|
||||
|
||||
|
|
|
|||
8
vm/vm.go
8
vm/vm.go
|
|
@ -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")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue