Skip to content

Commit

Permalink
fix: status-base resource's action log missing owner project/domain
Browse files Browse the repository at this point in the history
  • Loading branch information
Qiu Jian committed May 13, 2020
1 parent 246fe02 commit 9c26c04
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 9 deletions.
15 changes: 15 additions & 0 deletions pkg/cloudcommon/db/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -367,3 +367,18 @@ type IAdminSharableVirtualModel interface {

GetIAdminSharableVirtualModel() IAdminSharableVirtualModel
}

type IStatusStandaloneModel interface {
IStandaloneModel
IStatusBase
}

type IStatusDomainLevelModel interface {
IDomainLevelModel
IStatusBase
}

type IStatusInfrasModel interface {
IInfrasModel
IStatusBase
}
10 changes: 7 additions & 3 deletions pkg/cloudcommon/db/statusbase.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,15 @@ type SStatusResourceBase struct {
}

type IStatusBase interface {
IModel
SetStatusValue(status string)
GetStatus() string
}

type IStatusBaseModel interface {
IModel
IStatusBase
}

func (model *SStatusResourceBase) SetStatusValue(status string) {
model.Status = status
}
Expand All @@ -50,7 +54,7 @@ func (model SStatusResourceBase) GetStatus() string {
return model.Status
}

func statusBaseSetStatus(model IStatusBase, userCred mcclient.TokenCredential, status string, reason string) error {
func statusBaseSetStatus(model IStatusBaseModel, userCred mcclient.TokenCredential, status string, reason string) error {
if model.GetStatus() == status {
return nil
}
Expand All @@ -73,7 +77,7 @@ func statusBaseSetStatus(model IStatusBase, userCred mcclient.TokenCredential, s
return nil
}

func StatusBasePerformStatus(model IStatusBase, userCred mcclient.TokenCredential, input apis.PerformStatusInput) error {
func StatusBasePerformStatus(model IStatusBaseModel, userCred mcclient.TokenCredential, input apis.PerformStatusInput) error {
if len(input.Status) == 0 {
return httperrors.NewMissingParameterError("status")
}
Expand Down
8 changes: 6 additions & 2 deletions pkg/cloudcommon/db/statusdomainresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,21 @@ func (self *SStatusDomainLevelResourceBase) AllowPerformStatus(ctx context.Conte
return IsDomainAllowPerform(userCred, self, "status")
}

func (self *SStatusDomainLevelResourceBase) GetIStatusDomainLevelModel() IStatusDomainLevelModel {
return self.GetVirtualObject().(IStatusDomainLevelModel)
}

// 更新资源状态
func (self *SStatusDomainLevelResourceBase) PerformStatus(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, input apis.PerformStatusInput) (jsonutils.JSONObject, error) {
err := StatusBasePerformStatus(self, userCred, input)
err := StatusBasePerformStatus(self.GetIStatusDomainLevelModel(), userCred, input)
if err != nil {
return nil, errors.Wrap(err, "StatusBasePerformStatus")
}
return nil, nil
}

func (model *SStatusDomainLevelResourceBase) SetStatus(userCred mcclient.TokenCredential, status string, reason string) error {
return statusBaseSetStatus(model, userCred, status, reason)
return statusBaseSetStatus(model.GetIStatusDomainLevelModel(), userCred, status, reason)
}

func (manager *SStatusDomainLevelResourceBaseManager) ValidateCreateData(
Expand Down
8 changes: 6 additions & 2 deletions pkg/cloudcommon/db/statusinfrasresource.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,21 @@ func (self *SStatusInfrasResourceBase) AllowPerformStatus(ctx context.Context, u
return IsDomainAllowPerform(userCred, self, "status")
}

func (self *SStatusInfrasResourceBase) GetIStatusInfrasModel() IStatusInfrasModel {
return self.GetVirtualObject().(IStatusInfrasModel)
}

// 更新资源状态
func (self *SStatusInfrasResourceBase) PerformStatus(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, input apis.PerformStatusInput) (jsonutils.JSONObject, error) {
err := StatusBasePerformStatus(self, userCred, input)
err := StatusBasePerformStatus(self.GetIStatusInfrasModel(), userCred, input)
if err != nil {
return nil, errors.Wrap(err, "StatusBasePerformStatus")
}
return nil, nil
}

func (model *SStatusInfrasResourceBase) SetStatus(userCred mcclient.TokenCredential, status string, reason string) error {
return statusBaseSetStatus(model, userCred, status, reason)
return statusBaseSetStatus(model.GetIStatusInfrasModel(), userCred, status, reason)
}

func (manager *SStatusInfrasResourceBaseManager) ValidateCreateData(
Expand Down
8 changes: 6 additions & 2 deletions pkg/cloudcommon/db/statusstandalone.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,21 @@ func (self *SStatusStandaloneResourceBase) AllowPerformStatus(ctx context.Contex
return IsAdminAllowPerform(userCred, self, "status")
}

func (self *SStatusStandaloneResourceBase) GetIStatusStandaloneModel() IStatusStandaloneModel {
return self.GetVirtualObject().(IStatusStandaloneModel)
}

// 更新资源状态
func (self *SStatusStandaloneResourceBase) PerformStatus(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, input apis.PerformStatusInput) (jsonutils.JSONObject, error) {
err := StatusBasePerformStatus(self, userCred, input)
err := StatusBasePerformStatus(self.GetIStatusStandaloneModel(), userCred, input)
if err != nil {
return nil, errors.Wrap(err, "StatusBasePerformStatus")
}
return nil, nil
}

func (model *SStatusStandaloneResourceBase) SetStatus(userCred mcclient.TokenCredential, status string, reason string) error {
return statusBaseSetStatus(model, userCred, status, reason)
return statusBaseSetStatus(model.GetIStatusStandaloneModel(), userCred, status, reason)
}

func (manager *SStatusStandaloneResourceBaseManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, input apis.StatusStandaloneResourceCreateInput) (apis.StatusStandaloneResourceCreateInput, error) {
Expand Down

0 comments on commit 9c26c04

Please sign in to comment.