From 49d979dee811407a4252ddea25ab24b94e3ae073 Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Mon, 27 Feb 2023 22:27:52 +0800 Subject: [PATCH] fix(climc): add list monitorresource cmd (#16048) --- cmd/climc/shell/monitor/monitor_resource.go | 1 + pkg/mcclient/modules/monitor/mod_monitor_resource.go | 2 +- pkg/mcclient/options/monitor/monitor_resource.go | 11 +++++++++++ pkg/monitor/models/monitor_resource.go | 8 ++++---- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/cmd/climc/shell/monitor/monitor_resource.go b/cmd/climc/shell/monitor/monitor_resource.go index ff216ffc02..ba024dedc8 100644 --- a/cmd/climc/shell/monitor/monitor_resource.go +++ b/cmd/climc/shell/monitor/monitor_resource.go @@ -22,4 +22,5 @@ import ( func init() { cmd := NewResourceCmd(modules.MonitorResourceManager) cmd.GetProperty(new(options.MonitorResourceJointAlertOptions)) + cmd.List(new(options.MonitorResourceListOptions)) } diff --git a/pkg/mcclient/modules/monitor/mod_monitor_resource.go b/pkg/mcclient/modules/monitor/mod_monitor_resource.go index 9695e06481..b1de1d344c 100644 --- a/pkg/mcclient/modules/monitor/mod_monitor_resource.go +++ b/pkg/mcclient/modules/monitor/mod_monitor_resource.go @@ -42,7 +42,7 @@ func init() { func NewMonitorResourceManager() *SMonitorResourceManager { man := modules.NewMonitorV2Manager("monitorresource", "monitorresources", - []string{"id", "name", "res_type", "res_id", "alert_state"}, + []string{"id", "name", "res_type", "res_id", "alert_state", "status"}, []string{}) return &SMonitorResourceManager{ ResourceManager: &man, diff --git a/pkg/mcclient/options/monitor/monitor_resource.go b/pkg/mcclient/options/monitor/monitor_resource.go index 41c704c883..448ec233e8 100644 --- a/pkg/mcclient/options/monitor/monitor_resource.go +++ b/pkg/mcclient/options/monitor/monitor_resource.go @@ -30,3 +30,14 @@ func (o *MonitorResourceJointAlertOptions) Params() (jsonutils.JSONObject, error func (o *MonitorResourceJointAlertOptions) Property() string { return "alert" } + +type MonitorResourceListOptions struct { + options.BaseListOptions + ResType string `help:"filter by resource type" json:"res_type"` + ResId []string `help:"filter by resource id" json:"res_id"` + ResName string `help:"filter by resource name" json:"res_name"` +} + +func (o *MonitorResourceListOptions) Params() (jsonutils.JSONObject, error) { + return options.ListStructToParams(o) +} diff --git a/pkg/monitor/models/monitor_resource.go b/pkg/monitor/models/monitor_resource.go index 2a75fe3ab8..62d2e03554 100644 --- a/pkg/monitor/models/monitor_resource.go +++ b/pkg/monitor/models/monitor_resource.go @@ -499,14 +499,14 @@ func (manager *SMonitorResourceManager) SyncManually(ctx context.Context) { func (manager *SMonitorResourceManager) SyncResources(ctx context.Context, mss *MonitorResModelSets) error { userCred := auth.AdminCredential() errs := make([]error, 0) - log.Infoln("start sync") + log.Infof("start sync monitorresource") aliveIds := make([]string, 0) for _, set := range mss.ModelSetList() { setRv := reflect.ValueOf(set) needSync, typ := manager.GetSetType(set) - log.Infof("Type: %s,length: %d", typ, len(setRv.MapKeys())) + log.Infof("Type: %s, length: %d", typ, len(setRv.MapKeys())) if !needSync { - log.Infof("Type: %s don't sync", typ) + log.Infof("Type: %s don't need sync", typ) continue } for _, kRv := range setRv.MapKeys() { @@ -517,7 +517,7 @@ func (manager *SMonitorResourceManager) SyncResources(ctx context.Context, mss * } res, err := MonitorResourceManager.GetMonitorResources(input) if err != nil { - return errors.Wrap(err, "GetMonitorResources err") + return errors.Wrapf(err, "GetMonitorResources by input: %s", jsonutils.Marshal(input).String()) } if mRv.IsValid() { aliveIds = append(aliveIds, kRv.String())