diff --git a/cmd/climc/shell/unused_resources.go b/cmd/climc/shell/unused_resources.go new file mode 100644 index 0000000000..3743e0fb89 --- /dev/null +++ b/cmd/climc/shell/unused_resources.go @@ -0,0 +1,54 @@ +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 UnusedResourceListOptions struct { + options.BaseListOptions + ProjectId string `help:"project id of the unused resources"` + StartDate string `help:"start_date of the unused resources"` + EndDate string `help:"end_date of the unused resources"` + ResType string `help:"res_type of the unused resources"` + Platform string `help:"platform of the unused resources"` + } + R(&UnusedResourceListOptions{}, "unusedresources-list", "List all unused resources", func(s *mcclient.ClientSession, args *UnusedResourceListOptions) error { + var params *jsonutils.JSONDict + { + var err error + params, err = args.BaseListOptions.Params() + if err != nil { + return err + + } + } + if len(args.ProjectId) > 0 { + params.Add(jsonutils.NewString(args.ProjectId), "project_id") + } + if len(args.StartDate) > 0 { + params.Add(jsonutils.NewString(args.StartDate), "start_date") + } + if len(args.EndDate) > 0 { + params.Add(jsonutils.NewString(args.EndDate), "end_date") + } + if len(args.ResType) > 0 { + params.Add(jsonutils.NewString(args.ResType), "res_type") + } + if len(args.Platform) > 0 { + params.Add(jsonutils.NewString(args.Platform), "platform") + } + + result, err := modules.UnusedResources.List(s, params) + if err != nil { + return err + } + + printList(result, modules.UnusedResources.GetColumns(s)) + return nil + }) +} diff --git a/pkg/mcclient/modules/mod_unused_resources.go b/pkg/mcclient/modules/mod_unused_resources.go new file mode 100644 index 0000000000..6dcb43bd93 --- /dev/null +++ b/pkg/mcclient/modules/mod_unused_resources.go @@ -0,0 +1,14 @@ +package modules + +var ( + UnusedResources ResourceManager +) + +func init() { + UnusedResources = NewMeterManager("unused_resource", "unused_resources", + []string{"res_id", "res_name", "res_type", "start_time", "end_time", "project_name", "spec", + "platform", "action", "quantity", "medium_type", "storage_type", "event_id"}, + []string{}, + ) + register(&UnusedResources) +}