mirror of
https://github.com/project-zot/zot.git
synced 2026-06-17 04:48:26 +08:00
refactor(repodb): moving common utilities under pkg/meta (#1292)
* refactor(repodb): moving common utilities under pkg/meta Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com> * refactor(repodb): moved update, version components under pkg/meta - updated wrapper initialization to recieve a log object in constructor Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com> * refactor(repodb): moved repodb initialization from controller to pkg/meta/repodb Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com> --------- Signed-off-by: Laurentiu Niculae <niculae.laurentiu1@gmail.com>
This commit is contained in:
+1
-81
@@ -25,8 +25,6 @@ import (
|
||||
"zotregistry.io/zot/pkg/extensions/monitoring"
|
||||
"zotregistry.io/zot/pkg/log"
|
||||
"zotregistry.io/zot/pkg/meta/repodb"
|
||||
bolt "zotregistry.io/zot/pkg/meta/repodb/boltdb-wrapper"
|
||||
dynamoParams "zotregistry.io/zot/pkg/meta/repodb/dynamodb-wrapper/params"
|
||||
"zotregistry.io/zot/pkg/meta/repodb/repodbfactory"
|
||||
"zotregistry.io/zot/pkg/scheduler"
|
||||
"zotregistry.io/zot/pkg/storage"
|
||||
@@ -502,7 +500,7 @@ func CreateCacheDatabaseDriver(storageConfig config.StorageConfig, log log.Logge
|
||||
|
||||
func (c *Controller) InitRepoDB(reloadCtx context.Context) error {
|
||||
if c.Config.Extensions != nil && c.Config.Extensions.Search != nil && *c.Config.Extensions.Search.Enable {
|
||||
driver, err := CreateRepoDBDriver(c.Config.Storage.StorageConfig, c.Log) //nolint:contextcheck
|
||||
driver, err := repodbfactory.New(c.Config.Storage.StorageConfig, c.Log) //nolint:contextcheck
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -523,84 +521,6 @@ func (c *Controller) InitRepoDB(reloadCtx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func CreateRepoDBDriver(storageConfig config.StorageConfig, log log.Logger) (repodb.RepoDB, error) {
|
||||
if storageConfig.RemoteCache {
|
||||
dynamoParams := getDynamoParams(storageConfig.CacheDriver, log)
|
||||
|
||||
return repodbfactory.Create("dynamodb", dynamoParams) //nolint:contextcheck
|
||||
}
|
||||
|
||||
params := bolt.DBParameters{}
|
||||
params.RootDir = storageConfig.RootDirectory
|
||||
|
||||
return repodbfactory.Create("boltdb", params) //nolint:contextcheck
|
||||
}
|
||||
|
||||
func getDynamoParams(cacheDriverConfig map[string]interface{}, log log.Logger) dynamoParams.DBDriverParameters {
|
||||
allParametersOk := true
|
||||
|
||||
endpoint, ok := toStringIfOk(cacheDriverConfig, "endpoint", log)
|
||||
allParametersOk = allParametersOk && ok
|
||||
|
||||
region, ok := toStringIfOk(cacheDriverConfig, "region", log)
|
||||
allParametersOk = allParametersOk && ok
|
||||
|
||||
repoMetaTablename, ok := toStringIfOk(cacheDriverConfig, "repometatablename", log)
|
||||
allParametersOk = allParametersOk && ok
|
||||
|
||||
manifestDataTablename, ok := toStringIfOk(cacheDriverConfig, "manifestdatatablename", log)
|
||||
allParametersOk = allParametersOk && ok
|
||||
|
||||
indexDataTablename, ok := toStringIfOk(cacheDriverConfig, "indexdatatablename", log)
|
||||
allParametersOk = allParametersOk && ok
|
||||
|
||||
artifactDataTablename, ok := toStringIfOk(cacheDriverConfig, "artifactdatatablename", log)
|
||||
allParametersOk = allParametersOk && ok
|
||||
|
||||
versionTablename, ok := toStringIfOk(cacheDriverConfig, "versiontablename", log)
|
||||
allParametersOk = allParametersOk && ok
|
||||
|
||||
if !allParametersOk {
|
||||
panic("dynamo parameters are not specified correctly, can't proceede")
|
||||
}
|
||||
|
||||
return dynamoParams.DBDriverParameters{
|
||||
Endpoint: endpoint,
|
||||
Region: region,
|
||||
RepoMetaTablename: repoMetaTablename,
|
||||
ManifestDataTablename: manifestDataTablename,
|
||||
IndexDataTablename: indexDataTablename,
|
||||
ArtifactDataTablename: artifactDataTablename,
|
||||
VersionTablename: versionTablename,
|
||||
}
|
||||
}
|
||||
|
||||
func toStringIfOk(cacheDriverConfig map[string]interface{}, param string, log log.Logger) (string, bool) {
|
||||
val, ok := cacheDriverConfig[param]
|
||||
|
||||
if !ok {
|
||||
log.Error().Msgf("parsing CacheDriver config failed, field '%s' is not present", param)
|
||||
|
||||
return "", false
|
||||
}
|
||||
|
||||
str, ok := val.(string)
|
||||
|
||||
if !ok {
|
||||
log.Error().Msgf("parsing CacheDriver config failed, parameter '%s' isn't a string", param)
|
||||
|
||||
return "", false
|
||||
}
|
||||
|
||||
if str == "" {
|
||||
log.Error().Msgf("parsing CacheDriver config failed, field '%s' is is empty", param)
|
||||
|
||||
return "", false
|
||||
}
|
||||
|
||||
return str, ok
|
||||
}
|
||||
|
||||
func (c *Controller) LoadNewConfig(reloadCtx context.Context, config *config.Config) {
|
||||
// reload access control config
|
||||
c.Config.HTTP.AccessControl = config.HTTP.AccessControl
|
||||
|
||||
Reference in New Issue
Block a user