Skip to content
Snippets Groups Projects

Full MVC of gitlab-zoekt-indexer

Merged Dylan Griffith requested to merge add-new-api-paths into main
All threads resolved!
2 files
+ 42
19
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -28,7 +28,6 @@ type options struct {
@@ -28,7 +28,6 @@ type options struct {
}
}
type indexServer struct {
type indexServer struct {
indexDir string
indexBuilder indexBuilder
indexBuilder indexBuilder
promRegistry *prometheus.Registry
promRegistry *prometheus.Registry
metricsRequestsTotal *prometheus.CounterVec
metricsRequestsTotal *prometheus.CounterVec
@@ -49,10 +48,17 @@ type indexRequest struct {
@@ -49,10 +48,17 @@ type indexRequest struct {
}
}
type indexBuilder interface {
type indexBuilder interface {
 
getIndexDir() string
indexRepository(ctx context.Context, req indexRequest, indexDir string) error
indexRepository(ctx context.Context, req indexRequest, indexDir string) error
}
}
type defaultIndexBuilder struct{}
type defaultIndexBuilder struct {
 
indexDir string
 
}
 
 
func (b defaultIndexBuilder) getIndexDir() string {
 
return b.indexDir
 
}
func (b defaultIndexBuilder) indexRepository(ctx context.Context, req indexRequest, indexDir string) error {
func (b defaultIndexBuilder) indexRepository(ctx context.Context, req indexRequest, indexDir string) error {
if req.GitalyConnectionInfo == nil {
if req.GitalyConnectionInfo == nil {
@@ -89,8 +95,8 @@ func (b defaultIndexBuilder) indexRepository(ctx context.Context, req indexReque
@@ -89,8 +95,8 @@ func (b defaultIndexBuilder) indexRepository(ctx context.Context, req indexReque
}
}
func (s *indexServer) createIndexDir() {
func (s *indexServer) createIndexDir() {
if err := os.MkdirAll(s.indexDir, 0o755); err != nil {
if err := os.MkdirAll(s.indexBuilder.getIndexDir(), 0o755); err != nil {
log.Fatalf("createIndexDir %s: %v", s.indexDir, err)
log.Fatalf("createIndexDir %s: %v", s.indexBuilder.getIndexDir(), err)
}
}
}
}
@@ -112,7 +118,7 @@ func (s *indexServer) handleStatus() http.HandlerFunc {
@@ -112,7 +118,7 @@ func (s *indexServer) handleStatus() http.HandlerFunc {
}
}
idx := &indexer.Indexer{
idx := &indexer.Indexer{
IndexDir: s.indexDir,
IndexDir: s.indexBuilder.getIndexDir(),
ProjectID: uint32(repoID),
ProjectID: uint32(repoID),
}
}
@@ -174,7 +180,7 @@ func (s *indexServer) handleIndex() http.HandlerFunc {
@@ -174,7 +180,7 @@ func (s *indexServer) handleIndex() http.HandlerFunc {
return
return
}
}
err = s.indexBuilder.indexRepository(r.Context(), req, s.indexDir)
err = s.indexBuilder.indexRepository(r.Context(), req, s.indexBuilder.getIndexDir())
if err != nil {
if err != nil {
s.respondWithError(w, r, route, err)
s.respondWithError(w, r, route, err)
return
return
@@ -214,10 +220,10 @@ func (s *indexServer) handleTruncate() http.HandlerFunc {
@@ -214,10 +220,10 @@ func (s *indexServer) handleTruncate() http.HandlerFunc {
}
}
return func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
err := emptyDirectory(s.indexDir)
err := emptyDirectory(s.indexBuilder.getIndexDir())
if err != nil {
if err != nil {
err = fmt.Errorf("failed to empty indexDir: %v with error: %v", s.indexDir, err)
err = fmt.Errorf("failed to empty indexDir: %v with error: %v", s.indexBuilder.getIndexDir(), err)
s.respondWithError(w, r, route, err)
s.respondWithError(w, r, route, err)
return
return
@@ -304,8 +310,9 @@ func main() {
@@ -304,8 +310,9 @@ func main() {
opts := parseOptions()
opts := parseOptions()
server := indexServer{
server := indexServer{
indexDir: opts.indexDir,
indexBuilder: defaultIndexBuilder{
indexBuilder: defaultIndexBuilder{},
indexDir: opts.indexDir,
 
},
}
}
server.startIndexingApi(opts.listen)
server.startIndexingApi(opts.listen)
Loading