From 31cb423a2f8442a1385a6f0c87e4a0bec4062e74 Mon Sep 17 00:00:00 2001 From: zhengjiajie Date: Wed, 12 Dec 2018 11:53:45 +0800 Subject: [PATCH] zhengjj add files --- cmd/climc/shell/bill_resources.go | 47 ++++++++++++++++++++++ pkg/mcclient/modules/mod_bill_details.go | 2 +- pkg/mcclient/modules/mod_bill_resources.go | 14 +++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 cmd/climc/shell/bill_resources.go create mode 100644 pkg/mcclient/modules/mod_bill_resources.go diff --git a/cmd/climc/shell/bill_resources.go b/cmd/climc/shell/bill_resources.go new file mode 100644 index 0000000000..61a3c1ad4b --- /dev/null +++ b/cmd/climc/shell/bill_resources.go @@ -0,0 +1,47 @@ +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 BillResourceListOptions struct { + options.BaseListOptions + STARTDATE string `help:"start date of the bill_resource"` + ENDDATE string `help:"end date of the bill_resource"` + ProjectId string `help:"project id of the bill_resource"` + } + R(&BillResourceListOptions{}, "billresource-list", "List all bill resources", func(s *mcclient.ClientSession, args *BillResourceListOptions) error { + var params *jsonutils.JSONDict + { + var err error + params, err = args.BaseListOptions.Params() + if err != nil { + return err + + } + } + 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.ProjectId) > 0 { + params.Add(jsonutils.NewString(args.ProjectId), "project_id") + } + + result, err := modules.BillResources.List(s, params) + if err != nil { + return err + } + + printList(result, modules.BillResources.GetColumns(s)) + return nil + }) +} diff --git a/pkg/mcclient/modules/mod_bill_details.go b/pkg/mcclient/modules/mod_bill_details.go index 4f588feb4b..b389ca1f59 100644 --- a/pkg/mcclient/modules/mod_bill_details.go +++ b/pkg/mcclient/modules/mod_bill_details.go @@ -6,7 +6,7 @@ var ( func init() { BillDetails = NewMeterManager("bill_detail", "bill_details", - []string{"bill_id", "account", "platform", "region", "sub_account_project", "res_id", + []string{"bill_id", "account", "platform", "region", "manager_project", "res_id", "res_type", "res_name", "start_time", "end_time", "charge_type", "item_rate", "item_fee"}, []string{}, ) diff --git a/pkg/mcclient/modules/mod_bill_resources.go b/pkg/mcclient/modules/mod_bill_resources.go new file mode 100644 index 0000000000..284d716768 --- /dev/null +++ b/pkg/mcclient/modules/mod_bill_resources.go @@ -0,0 +1,14 @@ +package modules + +var ( + BillResources ResourceManager +) + +func init() { + BillResources = NewMeterManager("bill_resource", "bill_resources", + []string{"account", "platform", "region", "manager_project", "res_id", + "res_type", "res_name", "charge_type", "res_fee"}, + []string{}, + ) + register(&BillResources) +}