From f0c706919ae1520a32fc197c262e209c81c8a38d Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Tue, 28 Aug 2018 12:50:30 +0000 Subject: [PATCH] climc: alarmevents: use options for param serialization --- cmd/climc/shell/alarmevents.go | 43 ++++------------------------- pkg/mcclient/options/alarmevents.go | 13 +++++++++ 2 files changed, 18 insertions(+), 38 deletions(-) create mode 100644 pkg/mcclient/options/alarmevents.go diff --git a/cmd/climc/shell/alarmevents.go b/cmd/climc/shell/alarmevents.go index 488fe39599..10c7d8037e 100644 --- a/cmd/climc/shell/alarmevents.go +++ b/cmd/climc/shell/alarmevents.go @@ -5,51 +5,18 @@ import ( "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/mcclient/modules" + "yunion.io/x/onecloud/pkg/mcclient/options" ) func init() { /** * 列出报警事件 */ - type AlarmEventListOptions struct { - BaseListOptions - NodeLabels string `help:"Service tree node labels"` - MetricName string `help:"Metric name"` - HostName string `help:"Host name"` - HostIp string `help:"Host IP address"` - AlarmLevel string `help:"Alarm level"` - AlarmCondition string `help:"Concrete alarm rule"` - Template string `help:"Template number of the alarm condition"` - AckStatus string `help:"Alarm event ack status"` - } - R(&AlarmEventListOptions{}, "alarmevent-list", "List all alarm's event", func(s *mcclient.ClientSession, args *AlarmEventListOptions) error { - params := FetchPagingParams(args.BaseListOptions) - - if len(args.NodeLabels) > 0 { - params.Add(jsonutils.NewString(args.NodeLabels), "node_labels") + R(&options.AlarmEventListOptions{}, "alarmevent-list", "List all alarm's event", func(s *mcclient.ClientSession, opts *options.AlarmEventListOptions) error { + params, err := options.ListStructToParams(opts) + if err != nil { + return err } - if len(args.MetricName) > 0 { - params.Add(jsonutils.NewString(args.MetricName), "metric_name") - } - if len(args.HostName) > 0 { - params.Add(jsonutils.NewString(args.HostName), "host_name") - } - if len(args.HostIp) > 0 { - params.Add(jsonutils.NewString(args.HostIp), "host_ip") - } - if len(args.AlarmLevel) > 0 { - params.Add(jsonutils.NewString(args.AlarmLevel), "alarm_level") - } - if len(args.AlarmCondition) > 0 { - params.Add(jsonutils.NewString(args.AlarmCondition), "alarm_condition") - } - if len(args.Template) > 0 { - params.Add(jsonutils.NewString(args.Template), "template") - } - if len(args.AckStatus) > 0 { - params.Add(jsonutils.NewString(args.AckStatus), "ack_status") - } - result, err := modules.AlarmEvents.List(s, params) if err != nil { return err diff --git a/pkg/mcclient/options/alarmevents.go b/pkg/mcclient/options/alarmevents.go new file mode 100644 index 0000000000..f08a8c9476 --- /dev/null +++ b/pkg/mcclient/options/alarmevents.go @@ -0,0 +1,13 @@ +package options + +type AlarmEventListOptions struct { + BaseListOptions + NodeLabels string `help:"Service tree node labels"` + MetricName string `help:"Metric name"` + HostName string `help:"Host name"` + HostIp string `help:"Host IP address"` + AlarmLevel string `help:"Alarm level"` + AlarmCondition string `help:"Concrete alarm rule"` + Template string `help:"Template number of the alarm condition"` + AckStatus string `help:"Alarm event ack status"` +}