Skip to content

Commit 578a6d6

Browse files
swordqiuQiu Jian
andauthored
fix: update extar fields when updating status field (#24595)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
1 parent 0926369 commit 578a6d6

6 files changed

Lines changed: 31 additions & 8 deletions

File tree

pkg/cloudcommon/db/statusbase.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func (model SStatusResourceBase) GetProgress() float32 {
7272
}
7373

7474
func StatusBaseSetStatus(ctx context.Context, model IStatusBaseModel, userCred mcclient.TokenCredential, status string, reason string) error {
75-
return statusBaseSetStatus(ctx, model, userCred, status, reason)
75+
return statusBaseSetStatus(ctx, model, userCred, status, reason, nil)
7676
}
7777

7878
func statusBaseSetProgress(model IStatusBaseModel, progress float32) error {
@@ -86,13 +86,16 @@ func statusBaseSetProgress(model IStatusBaseModel, progress float32) error {
8686
return nil
8787
}
8888

89-
func statusBaseSetStatus(ctx context.Context, model IStatusBaseModel, userCred mcclient.TokenCredential, status string, reason string) error {
89+
func statusBaseSetStatus(ctx context.Context, model IStatusBaseModel, userCred mcclient.TokenCredential, status string, reason string, otherUpdates func()) error {
9090
if model.GetStatus() == status {
9191
return nil
9292
}
9393
oldStatus := model.GetStatus()
9494
_, err := Update(model, func() error {
9595
model.SetStatusValue(status)
96+
if otherUpdates != nil {
97+
otherUpdates()
98+
}
9699
return nil
97100
})
98101
if err != nil {
@@ -121,10 +124,14 @@ func statusBaseSetStatus(ctx context.Context, model IStatusBaseModel, userCred m
121124
}
122125

123126
func StatusBasePerformStatus(ctx context.Context, model IStatusBaseModel, userCred mcclient.TokenCredential, input apis.PerformStatusInput) error {
127+
return StatusBasePerformStatusWithOtherUpdates(ctx, model, userCred, input, nil)
128+
}
129+
130+
func StatusBasePerformStatusWithOtherUpdates(ctx context.Context, model IStatusBaseModel, userCred mcclient.TokenCredential, input apis.PerformStatusInput, otherUpdates func()) error {
124131
if len(input.Status) == 0 {
125132
return httperrors.NewMissingParameterError("status")
126133
}
127-
err := statusBaseSetStatus(ctx, model, userCred, input.Status, input.Reason)
134+
err := statusBaseSetStatus(ctx, model, userCred, input.Status, input.Reason, otherUpdates)
128135
if err != nil {
129136
return errors.Wrap(err, "statusBaseSetStatus")
130137
}

pkg/cloudcommon/db/statusdomainresource.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,12 @@ func (self *SStatusDomainLevelResourceBase) PerformStatus(ctx context.Context, u
5656
return nil, nil
5757
}
5858

59+
func (model *SStatusDomainLevelResourceBase) SetStatusWithOtherUpdates(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string, otherUpdates func()) error {
60+
return statusBaseSetStatus(ctx, model.GetIStatusDomainLevelModel(), userCred, status, reason, otherUpdates)
61+
}
62+
5963
func (model *SStatusDomainLevelResourceBase) SetStatus(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string) error {
60-
return statusBaseSetStatus(ctx, model.GetIStatusDomainLevelModel(), userCred, status, reason)
64+
return statusBaseSetStatus(ctx, model.GetIStatusDomainLevelModel(), userCred, status, reason, nil)
6165
}
6266

6367
func (manager *SStatusDomainLevelResourceBaseManager) ValidateCreateData(

pkg/cloudcommon/db/statusinfrasresource.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,12 @@ func (self *SStatusInfrasResourceBase) PerformStatus(ctx context.Context, userCr
9696
return nil, nil
9797
}
9898

99+
func (model *SStatusInfrasResourceBase) SetStatusWithOtherUpdates(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string, otherUpdates func()) error {
100+
return statusBaseSetStatus(ctx, model.GetIStatusInfrasModel(), userCred, status, reason, otherUpdates)
101+
}
102+
99103
func (model *SStatusInfrasResourceBase) SetStatus(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string) error {
100-
return statusBaseSetStatus(ctx, model.GetIStatusInfrasModel(), userCred, status, reason)
104+
return statusBaseSetStatus(ctx, model.GetIStatusInfrasModel(), userCred, status, reason, nil)
101105
}
102106

103107
func (manager *SStatusInfrasResourceBaseManager) ValidateCreateData(

pkg/cloudcommon/db/statusinfrasuserresource.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,12 @@ func NewStatusDomainLevelUserResourceBaseManager(dt interface{}, tableName strin
4747
}
4848
}
4949

50+
func (model *SStatusDomainLevelUserResourceBase) SetStatusWithOtherUpdates(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string, otherUpdates func()) error {
51+
return statusBaseSetStatus(ctx, model.GetIStatusDomainLevelModel(), userCred, status, reason, otherUpdates)
52+
}
53+
5054
func (model *SStatusDomainLevelUserResourceBase) SetStatus(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string) error {
51-
return statusBaseSetStatus(ctx, model, userCred, status, reason)
55+
return statusBaseSetStatus(ctx, model.GetIStatusDomainLevelModel(), userCred, status, reason, nil)
5256
}
5357

5458
func (manager *SStatusDomainLevelUserResourceBaseManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, input apis.StatusDomainLevelUserResourceCreateInput) (apis.StatusDomainLevelUserResourceCreateInput, error) {

pkg/cloudcommon/db/statusstandalone.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,12 @@ func (self *SStatusStandaloneResourceBase) PerformStatus(ctx context.Context, us
9595
return nil, nil
9696
}
9797

98+
func (model *SStatusStandaloneResourceBase) SetStatusWithOtherUpdates(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string, otherUpdates func()) error {
99+
return statusBaseSetStatus(ctx, model.GetIStatusStandaloneModel(), userCred, status, reason, otherUpdates)
100+
}
101+
98102
func (model *SStatusStandaloneResourceBase) SetStatus(ctx context.Context, userCred mcclient.TokenCredential, status string, reason string) error {
99-
return statusBaseSetStatus(ctx, model.GetIStatusStandaloneModel(), userCred, status, reason)
103+
return statusBaseSetStatus(ctx, model.GetIStatusStandaloneModel(), userCred, status, reason, nil)
100104
}
101105

102106
func (model *SStatusStandaloneResourceBase) SetProgress(progress float32) error {

pkg/cloudcommon/db/tablespec.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func newTableSpec(model interface{}, tableName string, indexField string, dateFi
7474
log.Errorf("NewSplitTableSpec %s %s", tableName, err)
7575
return nil
7676
} else {
77-
log.Infof("new split table %s maxDuration %d hour maxSegements %d", tableName, maxDuration/time.Hour, maxSegments)
77+
log.Debugf("table %s maxDuration %d hour maxSegements %d", tableName, maxDuration/time.Hour, maxSegments)
7878
}
7979
} else if len(dbName) > 0 {
8080
itbl = sqlchemy.NewTableSpecFromStructWithDBName(model, tableName, dbName)

0 commit comments

Comments
 (0)