diff --git a/cmd/climc/shell/underutilizedinstances.go b/cmd/climc/shell/underutilizedinstances.go new file mode 100644 index 0000000000..84fd17ed08 --- /dev/null +++ b/cmd/climc/shell/underutilizedinstances.go @@ -0,0 +1,34 @@ +package shell + +import ( + "yunion.io/x/jsonutils" + "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/mcclient/modules" + "yunion.io/x/onecloud/pkg/mcclient/options" +) + +func init() { + + type UnderutilizedInstancesListOptions struct { + options.BaseListOptions + } + R(&UnderutilizedInstancesListOptions{}, "underutilized-instances-list", "List underutilized instances", func(s *mcclient.ClientSession, args *UnderutilizedInstancesListOptions) error { + var params *jsonutils.JSONDict + { + var err error + params, err = args.BaseListOptions.Params() + if err != nil { + return err + + } + } + result, err := modules.UnderutilizedInstances.List(s, params) + if err != nil { + return err + } + + printList(result, modules.UnderutilizedInstances.GetColumns(s)) + return nil + }) + +} diff --git a/pkg/mcclient/modules/managers.go b/pkg/mcclient/modules/managers.go index cf51952d23..6172530fc7 100644 --- a/pkg/mcclient/modules/managers.go +++ b/pkg/mcclient/modules/managers.go @@ -25,6 +25,15 @@ func NewMonitorManager(keyword, keywordPlural string, columns, adminColumns []st Keyword: keyword, KeywordPlural: keywordPlural} } +func NewCloudmonManager(keyword, keywordPlural string, columns, adminColumns []string) ResourceManager { + return ResourceManager{ + BaseManager: BaseManager{columns: columns, + adminColumns: adminColumns, + version: "v1", + serviceType: "cloudmon"}, + Keyword: keyword, KeywordPlural: keywordPlural} +} + func NewNotifyManager(keyword, keywordPlural string, columns, adminColumns []string) ResourceManager { return ResourceManager{ BaseManager: BaseManager{columns: columns, diff --git a/pkg/mcclient/modules/mod_underutilizedinstances.go b/pkg/mcclient/modules/mod_underutilizedinstances.go new file mode 100644 index 0000000000..8c0e6af42f --- /dev/null +++ b/pkg/mcclient/modules/mod_underutilizedinstances.go @@ -0,0 +1,13 @@ +package modules + +var ( + UnderutilizedInstances ResourceManager +) + +func init() { + UnderutilizedInstances = NewCloudmonManager("underutilizedinstance", "underutilizedinstances", + []string{"id", "vm_id", "vm_name", "time", "advices", "vm_cpu", "vm_disk", "vm_memory", "vm_provider"}, + []string{}) + + register(&UnderutilizedInstances) +}