Skip to content

Commit e40ef69

Browse files
committed
feat: add sync asset handlers
1 parent 455b3e6 commit e40ef69

17 files changed

+2185
-1550
lines changed

Diff for: Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ help: ##@help show this help
2626
NAME="github.com/goto/compass"
2727
VERSION=$(shell git describe --always --tags 2>/dev/null)
2828
COVERFILE="/tmp/compass.coverprofile"
29-
PROTON_COMMIT := "a6b2821e8ddd1127a63d3b376f860990d58931da"
29+
PROTON_COMMIT := "eaca9798d1c1d7b3101ec1259c7e5fb949afba28"
3030

3131
TOOLS_MOD_DIR = ./tools
3232
TOOLS_DIR = $(abspath ./.tools)

Diff for: core/asset/mocks/worker_mock.go

+43
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: core/asset/service.go

+17
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type Service struct {
2424
type Worker interface {
2525
EnqueueIndexAssetJob(ctx context.Context, ast Asset) error
2626
EnqueueDeleteAssetJob(ctx context.Context, urn string) error
27+
EnqueueSyncAssetJob(ctx context.Context, services []string) error
2728
Close() error
2829
}
2930

@@ -229,6 +230,22 @@ func (s *Service) SuggestAssets(ctx context.Context, cfg SearchConfig) (suggesti
229230
return s.discoveryRepository.Suggest(ctx, cfg)
230231
}
231232

233+
func (s *Service) SyncAssets(ctx context.Context, services []string) error {
234+
// select from job queue
235+
236+
// bad request, job already there
237+
238+
// if not, insert
239+
240+
// recreate index logic
241+
242+
// validate
243+
244+
s.worker.EnqueueSyncAssetJob(ctx, services)
245+
246+
return nil
247+
}
248+
232249
func (s *Service) instrumentAssetOp(ctx context.Context, op, id string, err error) {
233250
identifier := "URN"
234251
if isValidUUID(id) {

Diff for: internal/server/v1beta1/asset.go

+9
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ type AssetService interface {
3939
SuggestAssets(ctx context.Context, cfg asset.SearchConfig) (suggestions []string, err error)
4040

4141
AddProbe(ctx context.Context, assetURN string, probe *asset.Probe) error
42+
43+
SyncAssets(ctx context.Context, services []string) error
4244
}
4345

4446
func (server *APIServer) GetAllAssets(ctx context.Context, req *compassv1beta1.GetAllAssetsRequest) (*compassv1beta1.GetAllAssetsResponse, error) {
@@ -344,6 +346,13 @@ func (server *APIServer) CreateAssetProbe(ctx context.Context, req *compassv1bet
344346
}, nil
345347
}
346348

349+
func (server *APIServer) SyncAssets(ctx context.Context, req *compassv1beta1.SyncAssetsRequest) (*compassv1beta1.SyncAssetsResponse, error) {
350+
351+
server.assetService.SyncAssets(ctx, req.GetServices())
352+
353+
return nil, nil
354+
}
355+
347356
func (server *APIServer) upsertAsset(
348357
ctx context.Context,
349358
ast asset.Asset,

Diff for: internal/server/v1beta1/mocks/asset_service.go

+49-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: internal/server/v1beta1/mocks/discussion_service.go

+6-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: internal/server/v1beta1/mocks/star_service.go

+6-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: internal/server/v1beta1/mocks/tag_service.go

+6-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: internal/server/v1beta1/mocks/tag_template_service.go

+6-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: internal/server/v1beta1/mocks/user_service.go

+6-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: internal/workermanager/discovery_worker.go

+4
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,7 @@ func (m *Manager) DeleteAsset(ctx context.Context, job worker.JobSpec) error {
9191
}
9292
return nil
9393
}
94+
95+
func (m *Manager) EnqueueSyncAssetJob(ctx context.Context, services []string) error {
96+
return nil
97+
}

Diff for: internal/workermanager/in_situ_worker.go

+4
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,8 @@ func (m *InSituWorker) EnqueueDeleteAssetJob(ctx context.Context, urn string) er
3232
return nil
3333
}
3434

35+
func (m *InSituWorker) EnqueueSyncAssetJob(ctx context.Context, services []string) error {
36+
return nil
37+
}
38+
3539
func (*InSituWorker) Close() error { return nil }

Diff for: proto/compass.swagger.yaml

+48
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,44 @@ paths:
420420
type: string
421421
tags:
422422
- Asset
423+
/v1beta1/assets/sync:
424+
post:
425+
summary: Syncs assets in elasticsearch
426+
description: Synchronize all assets in DB to elasticsearch
427+
operationId: CompassService_SyncAssets
428+
responses:
429+
"200":
430+
description: A successful response.
431+
schema:
432+
$ref: '#/definitions/SyncAssetsResponse'
433+
"400":
434+
description: Returned when the data that user input is wrong.
435+
schema:
436+
$ref: '#/definitions/Status'
437+
"404":
438+
description: Returned when the resource does not exist.
439+
schema:
440+
$ref: '#/definitions/Status'
441+
"409":
442+
description: Returned when the resource already exist.
443+
schema:
444+
$ref: '#/definitions/Status'
445+
"500":
446+
description: Returned when theres is something wrong on the server side.
447+
schema:
448+
$ref: '#/definitions/Status'
449+
default:
450+
description: An unexpected error response.
451+
schema:
452+
$ref: '#/definitions/Status'
453+
parameters:
454+
- name: body
455+
in: body
456+
required: true
457+
schema:
458+
$ref: '#/definitions/SyncAssetsRequest'
459+
tags:
460+
- Asset
423461
/v1beta1/discussions:
424462
get:
425463
summary: Get all discussions
@@ -2291,6 +2329,16 @@ definitions:
22912329
type: array
22922330
items:
22932331
type: string
2332+
SyncAssetsRequest:
2333+
type: object
2334+
properties:
2335+
services:
2336+
type: array
2337+
items:
2338+
type: string
2339+
description: filter by multiple services
2340+
SyncAssetsResponse:
2341+
type: object
22942342
TagTemplate:
22952343
type: object
22962344
properties:

0 commit comments

Comments
 (0)