github.com/Cloud-Foundations/Dominator@v0.3.4/cmd/vm-control/reorderVmVolumes.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "net" 6 7 hyperclient "github.com/Cloud-Foundations/Dominator/hypervisor/client" 8 "github.com/Cloud-Foundations/Dominator/lib/errors" 9 "github.com/Cloud-Foundations/Dominator/lib/log" 10 ) 11 12 func reorderVmVolumesSubcommand(args []string, logger log.DebugLogger) error { 13 if err := reorderVmVolumes(args[0], logger); err != nil { 14 return fmt.Errorf("error reordering VM volumes: %s", err) 15 } 16 return nil 17 } 18 19 func reorderVmVolumes(vmHostname string, logger log.DebugLogger) error { 20 if vmIP, hypervisor, err := lookupVmAndHypervisor(vmHostname); err != nil { 21 return err 22 } else { 23 return reorderVmVolumesOnHypervisor(hypervisor, vmIP, logger) 24 } 25 } 26 27 func reorderVmVolumesOnHypervisor(hypervisor string, ipAddr net.IP, 28 logger log.DebugLogger) error { 29 if len(volumeIndices) < 1 { 30 return errors.New("no volumeIndices specified") 31 } 32 client, err := dialHypervisor(hypervisor) 33 if err != nil { 34 return err 35 } 36 defer client.Close() 37 return hyperclient.ReorderVmVolumes(client, ipAddr, nil, volumeIndices) 38 }