feat(mcclient): add bills dimension climc

This commit is contained in:
zhaoxiangchun
2021-06-09 11:15:13 +08:00
parent 82f969e408
commit 79f08937ab
3 changed files with 147 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
package meter
import (
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/mcclient/modules"
options "yunion.io/x/onecloud/pkg/mcclient/options/meter"
)
func init() {
cmd := shell.NewResourceCmd(modules.BillingDimensionManager)
cmd.Create(&options.BillDimensionCreateOptions{})
cmd.List(&options.BillDimensionListOptions{})
cmd.Show(&options.BillDimensionShowOptions{})
cmd.Delete(&options.BillDimensionDeleteOptions{})
cmdAnalysis := shell.NewResourceCmd(modules.BillingDimensionAnalysisManager)
cmdAnalysis.List(&options.BillDimensionAnalysisListOptions{})
cmdAnalysis.Show(&options.BillDimensionAnalysisShowOptions{})
}
@@ -0,0 +1,37 @@
package modules
import "yunion.io/x/onecloud/pkg/mcclient/modulebase"
type SBillsDimensionManager struct {
*modulebase.ResourceManager
}
var (
BillingDimensionManager *SBillsDimensionManager
BillingDimensionAnalysisManager *SBillsDimensionManager
)
func NewBillingDimensionManager() *SBillsDimensionManager {
man := NewMeterManager("billsdimension", "billsdimensions",
[]string{"id", "name", "dimension_type", "dimension_items"},
[]string{})
return &SBillsDimensionManager{
ResourceManager: &man,
}
}
func NewBillingDimensionAnalysisManager() *SBillsDimensionManager {
man := NewMeterManager("billsdimensionsanalysis", "billsdimensionsanalysis",
[]string{"id", "name", "usage_type", "resource_type", "brand", "description"},
[]string{})
return &SBillsDimensionManager{
ResourceManager: &man,
}
}
func init() {
BillingDimensionManager = NewBillingDimensionManager()
BillingDimensionAnalysisManager = NewBillingDimensionAnalysisManager()
register(BillingDimensionManager)
register(BillingDimensionAnalysisManager)
}
@@ -0,0 +1,90 @@
package meter
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/apis"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
type BillDimensionCreateOptions struct {
apis.StatusStandaloneResourceCreateInput
DimensionAnalysisIds []string `json:"dimension_analysis_ids" help:"ids of DimensionAnalysis"`
DimensionItemName string `json:"dimension_item_name" help:"name of dimension item" required:"true"`
DimensionType string `json:"dimension_type" choices:"bill|resource_type"`
}
func (o *BillDimensionCreateOptions) Params() (jsonutils.JSONObject, error) {
data := jsonutils.NewDict()
data.Add(jsonutils.NewString(o.Name), "name")
data.Add(jsonutils.NewString(o.DimensionType), "dimension_type")
dimensionItem := jsonutils.NewDict()
dimensionItem.Add(jsonutils.NewString(o.DimensionItemName))
dimensionItem.Add(jsonutils.NewStringArray(o.DimensionAnalysisIds), "dimension_analysis_ids")
data.Add(jsonutils.NewArray(dimensionItem), "dimension_items")
return data, nil
}
type BillDimensionListOptions struct {
options.BaseListOptions
apis.EnabledResourceBaseListInput
DimensionType string `json:"dimension_type"`
}
func (o *BillDimensionListOptions) Params() (jsonutils.JSONObject, error) {
return options.ListStructToParams(o)
}
type BillDimensionShowOptions struct {
ID string `help:"ID of bill dimension " json:"-"`
}
func (o *BillDimensionShowOptions) Params() (jsonutils.JSONObject, error) {
return options.StructToParams(o)
}
func (o *BillDimensionShowOptions) GetId() string {
return o.ID
}
type BillDimensionDeleteOptions struct {
ID string `json:"-"`
}
func (o *BillDimensionDeleteOptions) GetId() string {
return o.ID
}
func (o *BillDimensionDeleteOptions) Params() (jsonutils.JSONObject, error) {
return options.StructToParams(o)
}
type BillDimensionAnalysisListOptions struct {
options.BaseListOptions
apis.EnabledResourceBaseListInput
UsageType string `json:"usage_type"`
ResourceType string `json:"resource_type"`
Description string `json:"description"`
}
func (o *BillDimensionAnalysisListOptions) Params() (jsonutils.JSONObject, error) {
return options.ListStructToParams(o)
}
type BillDimensionAnalysisShowOptions struct {
ID string `help:"ID of bill dimension " json:"-"`
}
func (o *BillDimensionAnalysisShowOptions) Params() (jsonutils.JSONObject, error) {
return options.StructToParams(o)
}
func (o *BillDimensionAnalysisShowOptions) GetId() string {
return o.ID
}