From 642eb49f614238aafa35fb7c475d0ea63deee747 Mon Sep 17 00:00:00 2001 From: Michael Gasch Date: Tue, 5 Apr 2022 21:59:31 +0200 Subject: [PATCH] govc: Edit disk storage IO Closes: #2806 Signed-off-by: Michael Gasch --- govc/vm/disk/change.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/govc/vm/disk/change.go b/govc/vm/disk/change.go index f2b83afab..8e55dcc5c 100644 --- a/govc/vm/disk/change.go +++ b/govc/vm/disk/change.go @@ -41,6 +41,9 @@ type change struct { bytes units.ByteSize mode string + + // SIOC + limit int64 } func init() { @@ -73,6 +76,7 @@ func (cmd *change) Register(ctx context.Context, f *flag.FlagSet) { f.IntVar(&cmd.key, "disk.key", 0, "Disk unique key") f.StringVar(&cmd.mode, "mode", "", fmt.Sprintf("Disk mode (%s)", strings.Join(vdmTypes, "|"))) f.StringVar(&cmd.sharing, "sharing", "", fmt.Sprintf("Sharing (%s)", strings.Join(sharing, "|"))) + f.Int64Var(&cmd.limit, "disk.io.limit", 0, "Disk storage IO per seconds limit (-1 for unlimited)") } func (cmd *change) Process(ctx context.Context) error { @@ -152,6 +156,13 @@ func (cmd *change) Run(ctx context.Context, f *flag.FlagSet) error { editdisk.CapacityInKB = int64(cmd.bytes) / 1024 } + current := editdisk.StorageIOAllocation.Limit + desired := cmd.limit + + if desired != 0 && *current != desired { + editdisk.StorageIOAllocation.Limit = types.NewInt64(desired) + } + switch backing := editdisk.Backing.(type) { case *types.VirtualDiskFlatVer2BackingInfo: backing.Sharing = cmd.sharing