Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions models/repo_indexer.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func (repo *Repository) updateIndexerStatus(sha string) error {
}

type repoIndexerOperation struct {
repo *Repository
repoID int64
deleted bool
watchers []chan<- error
}
Expand Down Expand Up @@ -145,7 +145,7 @@ func populateRepoIndexer(maxRepoID int64) {
}
for _, repo := range repos {
repoIndexerOperationQueue <- repoIndexerOperation{
repo: repo,
repoID: repo.ID,
deleted: false,
}
maxRepoID = repo.ID - 1
Expand All @@ -154,7 +154,12 @@ func populateRepoIndexer(maxRepoID int64) {
log.Info("Done populating the repo indexer with existing repositories")
}

func updateRepoIndexer(repo *Repository) error {
func updateRepoIndexer(repoID int64) error {
repo, err := getRepositoryByID(x, repoID)
if err != nil {
return err
}

sha, err := getDefaultBranchSha(repo)
if err != nil {
return err
Expand Down Expand Up @@ -362,11 +367,11 @@ func processRepoIndexerOperationQueue() {
op := <-repoIndexerOperationQueue
var err error
if op.deleted {
if err = indexer.DeleteRepoFromIndexer(op.repo.ID); err != nil {
if err = indexer.DeleteRepoFromIndexer(op.repoID); err != nil {
log.Error("DeleteRepoFromIndexer: %v", err)
}
} else {
if err = updateRepoIndexer(op.repo); err != nil {
if err = updateRepoIndexer(op.repoID); err != nil {
log.Error("updateRepoIndexer: %v", err)
}
}
Expand All @@ -378,12 +383,12 @@ func processRepoIndexerOperationQueue() {

// DeleteRepoFromIndexer remove all of a repository's entries from the indexer
func DeleteRepoFromIndexer(repo *Repository, watchers ...chan<- error) {
addOperationToQueue(repoIndexerOperation{repo: repo, deleted: true, watchers: watchers})
addOperationToQueue(repoIndexerOperation{repoID: repo.ID, deleted: true, watchers: watchers})
}

// UpdateRepoIndexer update a repository's entries in the indexer
func UpdateRepoIndexer(repo *Repository, watchers ...chan<- error) {
addOperationToQueue(repoIndexerOperation{repo: repo, deleted: false, watchers: watchers})
addOperationToQueue(repoIndexerOperation{repoID: repo.ID, deleted: false, watchers: watchers})
}

func addOperationToQueue(op repoIndexerOperation) {
Expand Down