mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 21:17:58 +08:00
fix(metadb): fixes for dynamo and bolt (#2884)
* chore(dynamodb): refactor multiple apikey metadb calls into a single one Signed-off-by: Andrei Aaron <aaaron@luxoft.com> * fix(metadb): wrong error message in PatchDB() implementation Signed-off-by: Andrei Aaron <aaaron@luxoft.com> --------- Signed-off-by: Andrei Aaron <aaaron@luxoft.com>
This commit is contained in:
@@ -1569,7 +1569,7 @@ func (bdw *BoltDB) PatchDB() error {
|
||||
}
|
||||
|
||||
if version.GetVersionIndex(DBVersion) == -1 {
|
||||
return fmt.Errorf("DB has broken format, no version found %w", err)
|
||||
return fmt.Errorf("%w: %s could not identify patches", zerr.ErrInvalidMetaDBVersion, DBVersion)
|
||||
}
|
||||
|
||||
for patchIndex, patch := range bdw.Patches {
|
||||
|
||||
@@ -1730,23 +1730,29 @@ func (dwr DynamoDB) GetUserAPIKeys(ctx context.Context) ([]mTypes.APIKeyDetails,
|
||||
return nil, fmt.Errorf("failed to get userData for identity %s %w", userid, err)
|
||||
}
|
||||
|
||||
changed := false
|
||||
|
||||
for hashedKey, apiKeyDetails := range userData.APIKeys {
|
||||
// if expiresAt is not nil value
|
||||
if !apiKeyDetails.ExpirationDate.Equal(time.Time{}) && time.Now().After(apiKeyDetails.ExpirationDate) {
|
||||
apiKeyDetails.IsExpired = true
|
||||
|
||||
changed = true
|
||||
}
|
||||
|
||||
userData.APIKeys[hashedKey] = apiKeyDetails
|
||||
|
||||
err = dwr.SetUserData(ctx, userData)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
apiKeys = append(apiKeys, apiKeyDetails)
|
||||
}
|
||||
|
||||
return apiKeys, nil
|
||||
if !changed {
|
||||
// return early, no need to make a call to update key expiry in the DB
|
||||
return apiKeys, nil
|
||||
}
|
||||
|
||||
err = dwr.SetUserData(ctx, userData)
|
||||
|
||||
return apiKeys, err
|
||||
}
|
||||
|
||||
func (dwr DynamoDB) AddUserAPIKey(ctx context.Context, hashedKey string, apiKeyDetails *mTypes.APIKeyDetails) error {
|
||||
@@ -2049,7 +2055,7 @@ func (dwr *DynamoDB) PatchDB() error {
|
||||
}
|
||||
|
||||
if version.GetVersionIndex(DBVersion) == -1 {
|
||||
return fmt.Errorf("DB has broken format, no version found %w", err)
|
||||
return fmt.Errorf("%w: %s could not identify patches", zerr.ErrInvalidMetaDBVersion, DBVersion)
|
||||
}
|
||||
|
||||
for patchIndex, patch := range dwr.Patches {
|
||||
|
||||
Reference in New Issue
Block a user