Merge pull request #6328 from swordqiu/hotfix/qj-status-resource-action-log-no-owner

fix: status-base resource's action log missing owner project/domain
This commit is contained in:
Zexi Li
2020-05-14 09:53:14 +08:00
committed by GitHub
5 changed files with 40 additions and 9 deletions
+15
View File
@@ -367,3 +367,18 @@ type IAdminSharableVirtualModel interface {
GetIAdminSharableVirtualModel() IAdminSharableVirtualModel
}
type IStatusStandaloneModel interface {
IStandaloneModel
IStatusBase
}
type IStatusDomainLevelModel interface {
IDomainLevelModel
IStatusBase
}
type IStatusInfrasModel interface {
IInfrasModel
IStatusBase
}
+7 -3
View File
@@ -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
}
@@ -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
}
@@ -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")
}
+6 -2
View File
@@ -51,9 +51,13 @@ 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")
}
@@ -61,7 +65,7 @@ func (self *SStatusDomainLevelResourceBase) PerformStatus(ctx context.Context, u
}
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(
+6 -2
View File
@@ -51,9 +51,13 @@ 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")
}
@@ -61,7 +65,7 @@ func (self *SStatusInfrasResourceBase) PerformStatus(ctx context.Context, userCr
}
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(
+6 -2
View File
@@ -51,9 +51,13 @@ 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")
}
@@ -61,7 +65,7 @@ func (self *SStatusStandaloneResourceBase) PerformStatus(ctx context.Context, us
}
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) {