in server/service/kv/kv_svc.go [224:263]
func Update(ctx context.Context, kv *model.UpdateKVRequest) (*model.KVDoc, error) {
oldKV, err := datasource.GetBroker().GetKVDao().Get(ctx, &model.GetKVRequest{
Domain: kv.Domain,
Project: kv.Project,
ID: kv.ID,
})
if err != nil {
return nil, err
}
if kv.Status != "" {
oldKV.Status = kv.Status
}
if kv.Value != "" {
oldKV.Value = kv.Value
}
oldKV.UpdateTime = time.Now().Unix()
oldKV.UpdateRevision, err = datasource.GetBroker().GetRevisionDao().ApplyRevision(ctx, kv.Domain)
if err != nil {
return nil, err
}
err = datasource.GetBroker().GetKVDao().Update(ctx, oldKV, datasource.WithSync(sync.FromContext(ctx)))
if err != nil {
return nil, err
}
openlog.Info(
fmt.Sprintf("update %s with labels %s length [%d]",
oldKV.Key, oldKV.Labels, len(kv.Value)))
err = datasource.GetBroker().GetHistoryDao().AddHistory(ctx, oldKV)
if err != nil {
openlog.Error(
fmt.Sprintf("can not add revision for [%s] [%s] in [%s],err: %s",
oldKV.Key, oldKV.Labels, kv.Domain, err))
}
openlog.Debug(
fmt.Sprintf("add history %s with labels %s length [%d]",
oldKV.Key, oldKV.Labels, len(oldKV.Value)))
datasource.ClearPart(oldKV)
return oldKV, nil
}