From 591d2b92b1ded09c4a6ac4584aa6d3861f405573 Mon Sep 17 00:00:00 2001 From: zhengjiajie Date: Thu, 20 Dec 2018 16:11:21 +0800 Subject: [PATCH] price_info --- cmd/climc/shell/price_infos.go | 54 +++++++++++++++++++++++++ pkg/mcclient/modules/mod_price_infos.go | 13 ++++++ 2 files changed, 67 insertions(+) create mode 100644 cmd/climc/shell/price_infos.go create mode 100644 pkg/mcclient/modules/mod_price_infos.go diff --git a/cmd/climc/shell/price_infos.go b/cmd/climc/shell/price_infos.go new file mode 100644 index 0000000000..ade96eade9 --- /dev/null +++ b/cmd/climc/shell/price_infos.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 PriceInfoListOptions struct { + options.BaseListOptions + PROVIDER string `help:"provider of the priceinfo to show"` + QUANTITY string `help:"quantity of the priceinfo to show"` + Period string `help:"period of the priceinfo to show"` + Spec string `help:"spec of the priceinfo to show"` + PriceKey string `help:"priceKey of the priceinfo to show"` + RegionId string `help:"regionId of the priceinfo to show"` + } + R(&PriceInfoListOptions{}, "priceinfo-list", "List all PriceInfos ", func(s *mcclient.ClientSession, args *PriceInfoListOptions) error { + var params *jsonutils.JSONDict + { + var err error + params, err = args.BaseListOptions.Params() + if err != nil { + return err + } + } + + params.Add(jsonutils.NewString(args.PROVIDER), "provider") + params.Add(jsonutils.NewString(args.QUANTITY), "quantity") + if len(args.Period) > 0 { + params.Add(jsonutils.NewString(args.Period), "period") + } + if len(args.Spec) > 0 { + params.Add(jsonutils.NewString(args.Spec), "spec") + } + if len(args.PriceKey) > 0 { + params.Add(jsonutils.NewString(args.PriceKey), "price_key") + } + if len(args.RegionId) > 0 { + params.Add(jsonutils.NewString(args.RegionId), "region_id") + } + result, err := modules.PriceInfos.List(s, params) + if err != nil { + return err + } + + printList(result, modules.PriceInfos.GetColumns(s)) + return nil + }) + +} diff --git a/pkg/mcclient/modules/mod_price_infos.go b/pkg/mcclient/modules/mod_price_infos.go new file mode 100644 index 0000000000..12ef15294f --- /dev/null +++ b/pkg/mcclient/modules/mod_price_infos.go @@ -0,0 +1,13 @@ +package modules + +var ( + PriceInfos ResourceManager +) + +func init() { + PriceInfos = NewMeterManager("price_info", "price_infos", + []string{"provider", "currency", "sum_price", "spec", "quantity", "period", "price_key", "region_id"}, + []string{}, + ) + register(&PriceInfos) +}