Merge pull request #10055 from ioito/hotfix/qx-aliyun-balance

fix(region): add aliyun credit amount check
This commit is contained in:
Zexi Li
2021-01-28 20:46:45 +08:00
committed by GitHub
4 changed files with 20 additions and 20 deletions
+4 -5
View File
@@ -205,19 +205,18 @@ func _jsonRequest(client *sdk.Client, domain string, version string, apiName str
resp, err := processCommonRequest(client, req)
if err != nil {
log.Errorf("request %s error %s with params %s", apiName, err, params)
return nil, err
return nil, errors.Wrapf(err, "processCommonRequest")
}
body, err := jsonutils.Parse(resp.GetHttpContentBytes())
if err != nil {
log.Errorf("parse json fail %s", err)
return nil, err
return nil, errors.Wrapf(err, "jsonutils.Parse")
}
//{"Code":"InvalidInstanceType.ValueNotSupported","HostId":"ecs.aliyuncs.com","Message":"The specified instanceType beyond the permitted range.","RequestId":"0042EE30-0EDF-48A7-A414-56229D4AD532"}
//{"Code":"200","Message":"successful","PageNumber":1,"PageSize":50,"RequestId":"BB4C970C-0E23-48DC-A3B0-EB21FFC70A29","RouterTableList":{"RouterTableListType":[{"CreationTime":"2017-03-19T13:37:40Z","Description":"","ResourceGroupId":"rg-acfmwie3cqoobmi","RouteTableId":"vtb-j6c60lectdi80rk5xz43g","RouteTableName":"","RouteTableType":"System","RouterId":"vrt-j6c00qrol733dg36iq4qj","RouterType":"VRouter","VSwitchIds":{"VSwitchId":["vsw-j6c3gig5ub4fmi2veyrus"]},"VpcId":"vpc-j6c86z3sh8ufhgsxwme0q"}]},"Success":true,"TotalCount":1}
//{"Code":"Success","Data":{"CashCoupon":[]},"Message":"Successful!","RequestId":"87AD7E9A-3F8F-460F-9934-FFFE502325EE","Success":true}
if body.Contains("Code") {
code, _ := body.GetString("Code")
if len(code) > 0 && !utils.IsInStringArray(code, []string{"200"}) {
if len(code) > 0 && !utils.IsInStringArray(code, []string{"200", "Success"}) {
return nil, fmt.Errorf(body.String())
}
}
+4 -9
View File
@@ -87,14 +87,12 @@ func (self *SAliyunClient) QueryCashCoupons() ([]SCashCoupon, error) {
params["EffectiveOrNot"] = "True"
body, err := self.businessRequest("QueryCashCoupons", params)
if err != nil {
log.Errorf("QueryCashCoupons fail %s", err)
return nil, err
return nil, errors.Wrapf(err, "QueryCashCoupons")
}
coupons := make([]SCashCoupon, 0)
err = body.Unmarshal(&coupons, "Data", "CashCoupon")
if err != nil {
log.Errorf("Unmarshal fail %s", err)
return nil, err
return nil, errors.Wrapf(err, "body.Unmarshal")
}
return coupons, nil
}
@@ -104,14 +102,12 @@ func (self *SAliyunClient) QueryPrepaidCards() ([]SPrepaidCard, error) {
params["EffectiveOrNot"] = "True"
body, err := self.businessRequest("QueryPrepaidCards", params)
if err != nil {
log.Errorf("QueryPrepaidCards fail %s", err)
return nil, err
return nil, errors.Wrapf(err, "QueryPrepaidCards")
}
cards := make([]SPrepaidCard, 0)
err = body.Unmarshal(&cards, "Data", "PrepaidCard")
if err != nil {
log.Errorf("Unmarshal fail %s", err)
return nil, err
return nil, errors.Wrapf(err, "body.Unmarshal")
}
return cards, nil
}
@@ -123,7 +119,6 @@ func (self *SAliyunClient) SubscribeBillToOSS(bucket string) error {
params["SubscribeType.1"] = "InstanceDetailForBillingPeriod"
body, err := self.businessRequest("SubscribeBillToOSS", params)
if err != nil {
log.Errorf("SubscribeBillToOSS fail %s", err)
return errors.Wrap(err, "SubscribeBillToOSS")
}
log.Debugf("%s", body)
+6 -4
View File
@@ -282,10 +282,12 @@ func (self *SAliyunProvider) GetBalance() (float64, string, error) {
return 0.0, api.CLOUD_PROVIDER_HEALTH_UNKNOWN, err
}
status := api.CLOUD_PROVIDER_HEALTH_NORMAL
if balance.AvailableAmount <= 0 {
status = api.CLOUD_PROVIDER_HEALTH_ARREARS
} else if balance.AvailableAmount < 100 {
status = api.CLOUD_PROVIDER_HEALTH_INSUFFICIENT
if balance.CreditAmount+balance.MybankCreditAmount <= 0 {
if balance.AvailableAmount <= 0 {
status = api.CLOUD_PROVIDER_HEALTH_ARREARS
} else if balance.AvailableAmount < 100 {
status = api.CLOUD_PROVIDER_HEALTH_INSUFFICIENT
}
}
return balance.AvailableAmount, status, nil
}
+6 -2
View File
@@ -33,13 +33,17 @@ func init() {
if err != nil {
return err
}
printList(result2, len(result2), 0, 0, nil)
if len(result2) > 0 {
printList(result2, len(result2), 0, 0, nil)
}
result3, err := cli.GetClient().QueryPrepaidCards()
if err != nil {
return err
}
printList(result3, len(result3), 0, 0, nil)
if len(result3) > 0 {
printList(result3, len(result3), 0, 0, nil)
}
return nil
})