MCPcopy Create free account
hub / github.com/devnullvoid/pvetui / queueBatchOperation

Method queueBatchOperation

internal/ui/components/vm_menu.go:369–407  ·  view source on GitHub ↗
(action string, selected []*api.VM)

Source from the content-addressed store, hash-verified

367}
368
369func (a *App) queueBatchOperation(action string, selected []*api.VM) (submitted, skipped, failed int) {
370 for _, vm := range selected {
371 if vm == nil {
372 skipped++
373 continue
374 }
375
376 if !isEligibleForBatchAction(vm, action) {
377 skipped++
378 continue
379 }
380
381 client, err := a.getClientForVM(vm)
382 if err != nil {
383 failed++
384 continue
385 }
386
387 switch action {
388 case vmActionStart:
389 a.enqueueVMOperation(vm, client.StartVM, "Starting", false)
390 case vmActionShutdown:
391 a.enqueueVMOperation(vm, client.ShutdownVM, "Shutting down", false)
392 case vmActionStop:
393 a.enqueueVMOperation(vm, client.StopVM, "Stopping", false)
394 case vmActionRestart:
395 a.enqueueVMOperation(vm, client.RestartVM, "Restarting", false)
396 case vmActionReset:
397 a.enqueueVMOperation(vm, client.ResetVM, "Resetting", false)
398 default:
399 skipped++
400 continue
401 }
402
403 submitted++
404 }
405
406 return submitted, skipped, failed
407}
408
409func isEligibleForBatchAction(vm *api.VM, action string) bool {
410 if vm == nil {

Callers 1

Calls 3

getClientForVMMethod · 0.95
enqueueVMOperationMethod · 0.95
isEligibleForBatchActionFunction · 0.85

Tested by

no test coverage detected