Merge pull request #8429 from ywk253100/190726_retention_chartserver

Only listing chart repositories when chart server is enabled
This commit is contained in:
Ziming 2019-07-28 22:52:34 +08:00 committed by GitHub
commit 5a390d2fa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 25 deletions

View File

@ -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
}

View File

@ -172,7 +172,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)
@ -185,10 +185,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