From 4f27908fff25a8b829163d17631b2a45c2771d57 Mon Sep 17 00:00:00 2001 From: Rain Date: Wed, 22 Apr 2020 16:25:02 +0800 Subject: [PATCH] fix(region): Fix problems for Auto Scaling 1. ScalingPolicyManager and ScalingActivityManager override ResourceScope. 2. Change 'tenant' as 'project_id' before requesting to forcast. --- pkg/compute/models/scaling_activity.go | 5 +++++ pkg/compute/models/scaling_policy.go | 5 +++++ pkg/controller/autoscaling/controller.go | 5 +++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/compute/models/scaling_activity.go b/pkg/compute/models/scaling_activity.go index f0479bc82c..4ec1b7d662 100644 --- a/pkg/compute/models/scaling_activity.go +++ b/pkg/compute/models/scaling_activity.go @@ -25,6 +25,7 @@ import ( "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/util/rbacutils" "yunion.io/x/onecloud/pkg/util/stringutils2" ) @@ -61,6 +62,10 @@ func init() { ScalingActivityManager.SetVirtualObject(ScalingActivityManager) } +func (sam *SScalingActivityManager) ResourceScope() rbacutils.TRbacScope { + return rbacutils.ScopeProject +} + func (sam *SScalingActivityManager) FetchByStatus(ctx context.Context, saIds, status []string, action string) (ids []string, err error) { q := sam.Query("id").In("id", saIds) if action == "not" { diff --git a/pkg/compute/models/scaling_policy.go b/pkg/compute/models/scaling_policy.go index e8b4911272..2d50d2872a 100644 --- a/pkg/compute/models/scaling_policy.go +++ b/pkg/compute/models/scaling_policy.go @@ -32,6 +32,7 @@ import ( "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/logclient" + "yunion.io/x/onecloud/pkg/util/rbacutils" "yunion.io/x/onecloud/pkg/util/stringutils2" ) @@ -108,6 +109,10 @@ func (spm *SScalingPolicyManager) ListItemFilter(ctx context.Context, q *sqlchem return q, nil } +func (spm *SScalingPolicyManager) ResourceScope() rbacutils.TRbacScope { + return rbacutils.ScopeProject +} + func (spm *SScalingPolicyManager) QueryDistinctExtraField(q *sqlchemy.SQuery, field string) (*sqlchemy.SQuery, error) { q, err := spm.SStatusStandaloneResourceBaseManager.QueryDistinctExtraField(q, field) if err == nil { diff --git a/pkg/controller/autoscaling/controller.go b/pkg/controller/autoscaling/controller.go index 61378bfbe6..bc01983900 100644 --- a/pkg/controller/autoscaling/controller.go +++ b/pkg/controller/autoscaling/controller.go @@ -415,6 +415,7 @@ func (asc *SASController) createInstances(session *mcclient.ClientSession, param clientErr := err.(*httputils.JSONClientError) failedList = append(failedList, clientErr.Details) } + dict.Remove("domain_id") dict.Remove("count") if count == 1 { @@ -471,8 +472,8 @@ func (asc *SASController) CreateInstances( // For compatibility content.Remove("__count__") // set onwer project and id - content.Set("tenant", jsonutils.NewString(ownerId.GetProjectId())) - content.Set("user", jsonutils.NewString(ownerId.GetUserId())) + content.Set("project_id", jsonutils.NewString(ownerId.GetProjectId())) + content.Set("user_id", jsonutils.NewString(ownerId.GetUserId())) countPR, requests := asc.countPRAndRequests(num) log.Debugf("countPR: %d, requests: %d", countPR, requests)