Skip to content
Snippets Groups Projects
Commit 6ed03958 authored by Dmitry Gruzd's avatar Dmitry Gruzd :red_circle:
Browse files

fixup! Add new API methods

parent 2a2da4b2
No related branches found
No related tags found
No related merge requests found
This commit is part of merge request !12. Comments created here will be created in the context of that merge request.
...@@ -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)
......
...@@ -14,18 +14,26 @@ import ( ...@@ -14,18 +14,26 @@ import (
"gitlab.com/gitlab-org/search-team/gitlab-zoekt-indexer/internal/projectpath" "gitlab.com/gitlab-org/search-team/gitlab-zoekt-indexer/internal/projectpath"
) )
type indexBuilderMock struct{} type indexBuilderMock struct {
indexDir string
}
func (b indexBuilderMock) indexRepository(ctx context.Context, req indexRequest, indexDir string) error { func (b indexBuilderMock) indexRepository(ctx context.Context, req indexRequest, indexDir string) error {
return nil return nil
} }
func (b indexBuilderMock) getIndexDir() string {
return b.indexDir
}
func TestCreateIndexDir(t *testing.T) { func TestCreateIndexDir(t *testing.T) {
dir := filepath.Join(projectpath.Root, "tmp/test_create_index_dir") dir := filepath.Join(projectpath.Root, "tmp/test_create_index_dir")
defer os.RemoveAll(dir) defer os.RemoveAll(dir)
s := indexServer{ s := indexServer{
indexDir: dir, indexBuilder: indexBuilderMock{
indexDir: dir,
},
} }
s.createIndexDir() s.createIndexDir()
...@@ -73,7 +81,9 @@ func TestHandleStatus(t *testing.T) { ...@@ -73,7 +81,9 @@ func TestHandleStatus(t *testing.T) {
dir := filepath.Join(projectpath.Root, "_support/test/shards") dir := filepath.Join(projectpath.Root, "_support/test/shards")
server := indexServer{ server := indexServer{
indexDir: dir, indexBuilder: indexBuilderMock{
indexDir: dir,
},
} }
server.initMetrics() server.initMetrics()
...@@ -113,7 +123,9 @@ func TestHandleStatusWhenErr(t *testing.T) { ...@@ -113,7 +123,9 @@ func TestHandleStatusWhenErr(t *testing.T) {
dir := filepath.Join(projectpath.Root, "_support/test/shards") dir := filepath.Join(projectpath.Root, "_support/test/shards")
server := indexServer{ server := indexServer{
indexDir: dir, indexBuilder: indexBuilderMock{
indexDir: dir,
},
} }
server.initMetrics() server.initMetrics()
...@@ -130,7 +142,9 @@ func TestHandleTruncate(t *testing.T) { ...@@ -130,7 +142,9 @@ func TestHandleTruncate(t *testing.T) {
dir := filepath.Join(projectpath.Root, "tmp/truncate_test") dir := filepath.Join(projectpath.Root, "tmp/truncate_test")
server := indexServer{ server := indexServer{
indexDir: dir, indexBuilder: indexBuilderMock{
indexDir: dir,
},
} }
server.createIndexDir() server.createIndexDir()
...@@ -161,8 +175,9 @@ func TestHandleIndexWhenErr(t *testing.T) { ...@@ -161,8 +175,9 @@ func TestHandleIndexWhenErr(t *testing.T) {
dir := filepath.Join(projectpath.Root, "tmp/index_test") dir := filepath.Join(projectpath.Root, "tmp/index_test")
server := indexServer{ server := indexServer{
indexDir: dir, indexBuilder: indexBuilderMock{
indexBuilder: indexBuilderMock{}, indexDir: dir,
},
} }
server.createIndexDir() server.createIndexDir()
defer os.RemoveAll(dir) defer os.RemoveAll(dir)
...@@ -182,8 +197,9 @@ func TestHandleIndexWhenTimeoutErr(t *testing.T) { ...@@ -182,8 +197,9 @@ func TestHandleIndexWhenTimeoutErr(t *testing.T) {
dir := filepath.Join(projectpath.Root, "tmp/index_test") dir := filepath.Join(projectpath.Root, "tmp/index_test")
server := indexServer{ server := indexServer{
indexDir: dir, indexBuilder: defaultIndexBuilder{
indexBuilder: defaultIndexBuilder{}, indexDir: dir,
},
} }
server.createIndexDir() server.createIndexDir()
defer os.RemoveAll(dir) defer os.RemoveAll(dir)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment