From 9235dcff54a11ce8cbbd94ef834652f955882aa5 Mon Sep 17 00:00:00 2001 From: Wenkai Yin Date: Fri, 26 Jul 2019 17:44:01 +0800 Subject: [PATCH] Only listing chart repositories when chart server is enabled Only listing chart repositories when chart server is enabled Signed-off-by: Wenkai Yin --- src/pkg/retention/launcher.go | 49 ++++++++++++++++++------------ src/pkg/retention/launcher_test.go | 11 ++++--- 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/src/pkg/retention/launcher.go b/src/pkg/retention/launcher.go index 92006ce63..87eed8fdf 100644 --- a/src/pkg/retention/launcher.go +++ b/src/pkg/retention/launcher.go @@ -72,20 +72,22 @@ type Launcher interface { func NewLauncher(projectMgr project.Manager, repositoryMgr repository.Manager, retentionMgr Manager) Launcher { return &launcher{ - projectMgr: projectMgr, - repositoryMgr: repositoryMgr, - retentionMgr: retentionMgr, - jobserviceClient: cjob.GlobalClient, - internalCoreURL: config.InternalCoreURL(), + projectMgr: projectMgr, + repositoryMgr: repositoryMgr, + retentionMgr: retentionMgr, + jobserviceClient: cjob.GlobalClient, + internalCoreURL: config.InternalCoreURL(), + chartServerEnabled: config.WithChartMuseum(), } } type launcher struct { - retentionMgr Manager - projectMgr project.Manager - repositoryMgr repository.Manager - jobserviceClient cjob.Client - internalCoreURL string + retentionMgr Manager + projectMgr project.Manager + repositoryMgr repository.Manager + jobserviceClient cjob.Client + internalCoreURL string + chartServerEnabled bool } type jobData struct { @@ -143,7 +145,7 @@ func (l *launcher) Launch(ply *policy.Metadata, executionID int64, isDryRun bool var repositoryCandidates []*res.Candidate // get repositories of projects for _, projectCandidate := range projectCandidates { - repositories, err := getRepositories(l.projectMgr, l.repositoryMgr, projectCandidate.NamespaceID) + repositories, err := getRepositories(l.projectMgr, l.repositoryMgr, projectCandidate.NamespaceID, l.chartServerEnabled) if err != nil { return 0, launcherError(err) } @@ -278,7 +280,8 @@ func getProjects(projectMgr project.Manager) ([]*res.Candidate, error) { return candidates, nil } -func getRepositories(projectMgr project.Manager, repositoryMgr repository.Manager, projectID int64) ([]*res.Candidate, error) { +func getRepositories(projectMgr project.Manager, repositoryMgr repository.Manager, + projectID int64, chartServerEnabled bool) ([]*res.Candidate, error) { var candidates []*res.Candidate pro, err := projectMgr.Get(projectID) if err != nil { @@ -297,14 +300,20 @@ func getRepositories(projectMgr project.Manager, repositoryMgr repository.Manage Kind: "image", }) } - // get chart repositories - chartRepositories, err := repositoryMgr.ListChartRepositories(projectID) - for _, r := range chartRepositories { - candidates = append(candidates, &res.Candidate{ - Namespace: pro.Name, - Repository: r.Name, - Kind: "chart", - }) + if chartServerEnabled { + // get chart repositories when chart server is enabled + chartRepositories, err := repositoryMgr.ListChartRepositories(projectID) + if err != nil { + return nil, err + } + for _, r := range chartRepositories { + candidates = append(candidates, &res.Candidate{ + Namespace: pro.Name, + Repository: r.Name, + Kind: "chart", + }) + } } + return candidates, nil } diff --git a/src/pkg/retention/launcher_test.go b/src/pkg/retention/launcher_test.go index 8f80380a9..edd233d23 100644 --- a/src/pkg/retention/launcher_test.go +++ b/src/pkg/retention/launcher_test.go @@ -169,7 +169,7 @@ func (l *launchTestSuite) TestGetProjects() { } func (l *launchTestSuite) TestGetRepositories() { - repositories, err := getRepositories(l.projectMgr, l.repositoryMgr, 1) + repositories, err := getRepositories(l.projectMgr, l.repositoryMgr, 1, true) require.Nil(l.T(), err) assert.Equal(l.T(), 2, len(repositories)) assert.Equal(l.T(), "library", repositories[0].Namespace) @@ -182,10 +182,11 @@ func (l *launchTestSuite) TestGetRepositories() { func (l *launchTestSuite) TestLaunch() { launcher := &launcher{ - projectMgr: l.projectMgr, - repositoryMgr: l.repositoryMgr, - retentionMgr: l.retentionMgr, - jobserviceClient: l.jobserviceClient, + projectMgr: l.projectMgr, + repositoryMgr: l.repositoryMgr, + retentionMgr: l.retentionMgr, + jobserviceClient: l.jobserviceClient, + chartServerEnabled: true, } var ply *policy.Metadata