Added fix when minio serve_direct is true

This commit is contained in:
diana.strebkova@t-systems.com 2025-03-07 11:32:16 +01:00 committed by Diana
parent bb619ebf1a
commit 1788baf2cd
4 changed files with 14 additions and 6 deletions

View File

@ -279,7 +279,7 @@ func extractBuildNumberFromFileName(filename string) (int, error) {
buildNumber, err := strconv.Atoi(buildNumberStr)
if err != nil {
return 0, fmt.Errorf("failed to convert build number to integer: '%s'", buildNumberStr)
return 0, fmt.Errorf("failed to convert maven package build number to integer: '%s'", buildNumberStr)
}
return buildNumber, nil

View File

@ -103,6 +103,7 @@ func loadPackagesFrom(rootCfg ConfigProvider) (err error) {
Packages.LimitSizeRubyGems = mustBytes(sec, "LIMIT_SIZE_RUBYGEMS")
Packages.LimitSizeSwift = mustBytes(sec, "LIMIT_SIZE_SWIFT")
Packages.LimitSizeVagrant = mustBytes(sec, "LIMIT_SIZE_VAGRANT")
Packages.DefaultRPMSignEnabled = sec.Key("DEFAULT_RPM_SIGN_ENABLED").MustBool(false)
Packages.RetainMavenSnapshotBuilds = sec.Key("RETAIN_MAVEN_SNAPSHOT_BUILDS").MustInt(Packages.RetainMavenSnapshotBuilds)
return nil
}

View File

@ -51,7 +51,7 @@ func CleanupSnapshotVersions(ctx context.Context) error {
}
func isSnapshotVersion(version string) bool {
return strings.Contains(version, "-SNAPSHOT")
return strings.HasSuffix(version, "-SNAPSHOT")
}
func cleanSnapshotFiles(ctx context.Context, versionID int64, retainBuilds int) error {
@ -92,7 +92,12 @@ func cleanSnapshotFiles(ctx context.Context, versionID int64, retainBuilds int)
}
func extractMaxBuildNumberFromMetadata(ctx context.Context, metadataFile *packages.PackageFile) (int, error) {
content, _, _, err := packages_service.GetPackageFileStream(ctx, metadataFile)
pb, err := packages.GetBlobByID(ctx, metadataFile.BlobID)
if err != nil {
return 0, fmt.Errorf("failed to get package blob: %w", err)
}
content, _, _, err := packages_service.GetPackageBlobStream(ctx, metadataFile, pb, nil, true)
if err != nil {
return 0, fmt.Errorf("failed to get package file stream: %w", err)
}

View File

@ -600,8 +600,8 @@ func GetPackageFileStream(ctx context.Context, pf *packages_model.PackageFile) (
}
// GetPackageBlobStream returns the content of the specific package blob
// If the storage supports direct serving and it's enabled, only the direct serving url is returned.
func GetPackageBlobStream(ctx context.Context, pf *packages_model.PackageFile, pb *packages_model.PackageBlob, serveDirectReqParams url.Values) (io.ReadSeekCloser, *url.URL, *packages_model.PackageFile, error) {
// If the storage supports direct serving and it's enabled, only the direct serving url is returned; otherwise, forceInternalServe should be set to true.
func GetPackageBlobStream(ctx context.Context, pf *packages_model.PackageFile, pb *packages_model.PackageBlob, serveDirectReqParams url.Values, forceInternalServe ...bool) (io.ReadSeekCloser, *url.URL, *packages_model.PackageFile, error) {
key := packages_module.BlobHash256Key(pb.HashSHA256)
cs := packages_module.NewContentStore()
@ -610,7 +610,9 @@ func GetPackageBlobStream(ctx context.Context, pf *packages_model.PackageFile, p
var u *url.URL
var err error
if cs.ShouldServeDirect() {
internalServe := len(forceInternalServe) > 0 && forceInternalServe[0]
if !internalServe && cs.ShouldServeDirect() {
u, err = cs.GetServeDirectURL(key, pf.Name, serveDirectReqParams)
if err != nil && !errors.Is(err, storage.ErrURLNotSupported) {
log.Error("Error getting serve direct url: %v", err)