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 {