From 9219f52e74c7af70c884105d0ff58c74f16ce4ae Mon Sep 17 00:00:00 2001 From: ningyu Date: Tue, 23 Apr 2019 08:57:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=99=E9=A2=9D/=E6=B6=88=E8=B4=B9?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E5=BC=95=E5=85=A5=E4=BA=86=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BD=92=E5=B1=9E=E7=9A=84=E6=A6=82=E5=BF=B5=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E3=80=81=E5=88=97=E5=87=BA=E8=A7=84=E5=88=99?= =?UTF-8?q?=E6=97=B6=E9=83=BD=E9=9C=80=E8=A6=81=E6=8C=87=E5=AE=9A=E6=98=AF?= =?UTF-8?q?=E5=93=AA=E4=B8=AA=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/climc/shell/meteralert.go | 51 +++++++++++------------------------ 1 file changed, 15 insertions(+), 36 deletions(-) diff --git a/cmd/climc/shell/meteralert.go b/cmd/climc/shell/meteralert.go index c94cf32ab4..2bf033e9b4 100644 --- a/cmd/climc/shell/meteralert.go +++ b/cmd/climc/shell/meteralert.go @@ -28,32 +28,23 @@ func init() { * 创建一条报警规则 */ type MeterAlertCreateOptions struct { - TYPE string `help:"Alert rule type" choices:"balance|resFee|monthFee"` - THRESHOLD float64 `help:"Threshold value of the metric"` - COMPARATOR string `help:"Comparison operator for join expressions" choices:">|<|>=|<=|=|!="` - RECIPIENTS string `help:"Comma separated recipient ID"` - LEVEL string `help:"Alert level" choices:"normal|important|fatal"` - CHANNEL string `help:"Ways to send an alarm" choices:"email|mobile"` + Type string `help:"Alert rule type" required:"true" choices:"balance|resFee|monthFee"` + Threshold float64 `help:"Threshold value of the metric" required:"true"` + Comparator string `help:"Comparison operator for join expressions" required:"true" choices:">|<|>=|<=|=|!="` + Recipients string `help:"Comma separated recipient ID" required:"true"` + Level string `help:"Alert level" required:"true" choices:"normal|important|fatal"` + Channel string `help:"Ways to send an alarm" required:"true" choices:"email|mobile"` Provider string `help:"Name of the cloud platform"` AccountId string `help:"ID of the cloud platform"` + ProjectId string `help:"ID of the project" required:"true"` } R(&MeterAlertCreateOptions{}, "meteralert-create", "Create a meter alert rule", func(s *mcclient.ClientSession, args *MeterAlertCreateOptions) error { - params := jsonutils.NewDict() - params.Add(jsonutils.NewString(args.TYPE), "type") - params.Add(jsonutils.NewFloat(args.THRESHOLD), "threshold") - params.Add(jsonutils.NewString(args.COMPARATOR), "comparator") - params.Add(jsonutils.NewString(args.RECIPIENTS), "recipients") - params.Add(jsonutils.NewString(args.LEVEL), "level") - params.Add(jsonutils.NewString(args.CHANNEL), "channel") - if len(args.Provider) > 0 { - params.Add(jsonutils.NewString(args.Provider), "provider") - } - if len(args.AccountId) > 0 { - params.Add(jsonutils.NewString(args.AccountId), "account_id") + params, err := options.StructToParams(args) + if err != nil { + return err } rst, err := modules.MeterAlert.Create(s, params) - if err != nil { return err } @@ -103,27 +94,15 @@ func init() { Type string `help:"Alarm rule type" choices:"balance|resFee|monthFee"` CloudProvider string `help:"Name of cloud provider, case sensitive"` AccountId string `help:"Cloud account ID"` + ProjectId string `help:"ID of the project" required:"true"` options.BaseListOptions } R(&MeterAlertListOptions{}, "meteralert-list", "List meter alert", func(s *mcclient.ClientSession, args *MeterAlertListOptions) error { - var params *jsonutils.JSONDict - { - var err error - params, err = args.BaseListOptions.Params() - if err != nil { - return err - - } - if len(args.Type) > 0 { - params.Add(jsonutils.NewString(args.Type), "type") - } - if len(args.CloudProvider) > 0 { - params.Add(jsonutils.NewString(args.CloudProvider), "provider") - } - if len(args.AccountId) > 0 { - params.Add(jsonutils.NewString(args.AccountId), "account_id") - } + params, err := options.ListStructToParams(args) + if err != nil { + return err } + result, err := modules.MeterAlert.List(s, params) if err != nil { return err