From 7d601ebaa8dfcd22896c5868464ca13d7cfed9b0 Mon Sep 17 00:00:00 2001 From: wanyaoqi Date: Thu, 14 Jul 2022 16:34:04 +0800 Subject: [PATCH] feat(climc): server batch convert to kvm Signed-off-by: wanyaoqi --- cmd/climc/shell/compute/servers.go | 13 +------------ pkg/mcclient/options/compute/servers.go | 5 +++-- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/cmd/climc/shell/compute/servers.go b/cmd/climc/shell/compute/servers.go index 4c191fa4b8..7b58732a3e 100644 --- a/cmd/climc/shell/compute/servers.go +++ b/cmd/climc/shell/compute/servers.go @@ -63,6 +63,7 @@ func init() { cmd.BatchPerform("reset", new(options.ServerResetOptions)) cmd.BatchPerform("restart", new(options.ServerRestartOptions)) cmd.BatchPerform("purge", new(options.ServerIdsOptions)) + cmd.BatchPerform("convert-to-kvm", new(options.ServerConvertToKvmOptions)) cmd.PrintObjectYAML().Perform("migrate-forecast", new(options.ServerMigrateForecastOptions)) cmd.Perform("migrate", new(options.ServerMigrateOptions)) cmd.Perform("live-migrate", new(options.ServerLiveMigrateOptions)) @@ -946,16 +947,4 @@ func init() { } return nil }) - - R(&options.ServerConvertToKvmOptions{}, "server-convert-to-kvm", "Convert esxi server to kvm", func(s *mcclient.ClientSession, opts *options.ServerConvertToKvmOptions) error { - params := jsonutils.Marshal(opts) - dict := params.(*jsonutils.JSONDict) - dict.Set("target_hypervisor", jsonutils.NewString("kvm")) - result, err := modules.Servers.PerformAction(s, opts.ID, "convert", dict) - if err != nil { - return err - } - printObject(result) - return nil - }) } diff --git a/pkg/mcclient/options/compute/servers.go b/pkg/mcclient/options/compute/servers.go index b713ba6b23..384a1b8509 100644 --- a/pkg/mcclient/options/compute/servers.go +++ b/pkg/mcclient/options/compute/servers.go @@ -110,12 +110,13 @@ type ServerSSHLoginOptions struct { } type ServerConvertToKvmOptions struct { - ServerIdOptions + ServerIdsOptions + PreferHost string `help:"Perfer host id or name" json:"prefer_host"` } func (o *ServerConvertToKvmOptions) Params() (jsonutils.JSONObject, error) { - return jsonutils.Marshal(o), nil + return options.StructToParams(o) } type ServerStartOptions struct {