Skip to content
This repository was archived by the owner on May 24, 2024. It is now read-only.

Commit f1c58d8

Browse files
Use s3 caching instaed of elasticsearch (#45)
* use s3 caching instaed of elasticsearch Signed-off-by: Ayman <[email protected]> * clean up Signed-off-by: Ayman <[email protected]> Co-authored-by: Ayman <[email protected]>
1 parent ff071f9 commit f1c58d8

File tree

3 files changed

+36
-9
lines changed

3 files changed

+36
-9
lines changed

cmd/git/git.go

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818

1919
"github.com/LF-Engineering/insights-datasource-git/build"
2020
shared "github.com/LF-Engineering/insights-datasource-shared"
21+
"github.com/LF-Engineering/insights-datasource-shared/cache"
2122
elastic "github.com/LF-Engineering/insights-datasource-shared/elastic"
2223
logger "github.com/LF-Engineering/insights-datasource-shared/ingestjob"
2324
"github.com/LF-Engineering/lfx-event-schema/service"
@@ -579,6 +580,8 @@ type DSGit struct {
579580
// RepositorySource for example git, github or gerrit
580581
RepositorySource string
581582
log *logrus.Entry
583+
cacheProvider cache.Manager
584+
endpoint string
582585
}
583586

584587
// PublisherPushEvents - this is a fake function to test publisher locally
@@ -1769,7 +1772,10 @@ func (j *DSGit) GitEnrichItems(ctx *shared.Ctx, thrN int, items []interface{}, d
17691772
*docs = []interface{}{}
17701773
gMaxUpstreamDtMtx.Lock()
17711774
defer gMaxUpstreamDtMtx.Unlock()
1772-
shared.SetLastUpdate(ctx, j.URL, gMaxUpstreamDt)
1775+
err = j.cacheProvider.SetLastSync(j.endpoint, gMaxUpstreamDt)
1776+
if err != nil {
1777+
return
1778+
}
17731779
}
17741780
}
17751781
if final {
@@ -2328,7 +2334,12 @@ func (j *DSGit) Sync(ctx *shared.Ctx) (err error) {
23282334
j.log.WithFields(logrus.Fields{"operation": "Sync"}).Infof("%s fetching from %v (%d threads)", j.URL, ctx.DateFrom, thrN)
23292335
}
23302336
if ctx.DateFrom == nil {
2331-
ctx.DateFrom = shared.GetLastUpdate(ctx, j.URL)
2337+
cachedLastSync, er := j.cacheProvider.GetLastSync(j.endpoint)
2338+
if er != nil {
2339+
err = er
2340+
return
2341+
}
2342+
ctx.DateFrom = &cachedLastSync
23322343
if ctx.DateFrom != nil {
23332344
j.log.WithFields(logrus.Fields{"operation": "Sync"}).Infof("%s resuming from %v (%d threads)", j.URL, ctx.DateFrom, thrN)
23342345
}
@@ -2591,7 +2602,7 @@ func (j *DSGit) Sync(ctx *shared.Ctx) (err error) {
25912602
// NOTE: Non-generic ends here
25922603
gMaxUpstreamDtMtx.Lock()
25932604
defer gMaxUpstreamDtMtx.Unlock()
2594-
shared.SetLastUpdate(ctx, j.URL, gMaxUpstreamDt)
2605+
err = j.cacheProvider.SetLastSync(j.endpoint, gMaxUpstreamDt)
25952606
return
25962607
}
25972608

@@ -2600,7 +2611,7 @@ func main() {
26002611
ctx shared.Ctx
26012612
git DSGit
26022613
)
2603-
git.initStructuredLogger()
2614+
git.initStructuredLogger(&ctx)
26042615
err := git.Init(&ctx)
26052616
if err != nil {
26062617
git.log.WithFields(logrus.Fields{"operation": "main"}).Errorf("Error: %+v", err)
@@ -2610,6 +2621,7 @@ func main() {
26102621
shared.SetSyncMode(true, false)
26112622
shared.SetLogLoggerError(false)
26122623
shared.AddLogger(&git.Logger, GitDataSource, logger.Internal, []map[string]string{{"REPO_URL": git.URL, "ProjectSlug": ctx.Project}})
2624+
git.AddCacheProvider()
26132625
git.WriteLog(&ctx, timestamp, logger.InProgress, "")
26142626
err = git.Sync(&ctx)
26152627
if err != nil {
@@ -2621,15 +2633,29 @@ func main() {
26212633
}
26222634

26232635
// createStructuredLogger...
2624-
func (j *DSGit) initStructuredLogger() {
2636+
func (j *DSGit) initStructuredLogger(ctx *shared.Ctx) {
2637+
endpointURL := ""
2638+
if shared.FlagPassed(ctx, "url") && *j.FlagURL != "" {
2639+
endpointURL = *j.FlagURL
2640+
}
2641+
if ctx.EnvSet("URL") {
2642+
endpointURL = ctx.Env("URL")
2643+
}
26252644
logrus.SetFormatter(&logrus.JSONFormatter{})
26262645
log := logrus.WithFields(
26272646
logrus.Fields{
26282647
"environment": os.Getenv("STAGE"),
26292648
"commit": build.GitCommit,
26302649
"version": build.Version,
26312650
"service": build.AppName,
2632-
"endpoint": j.URL,
2651+
"endpoint": endpointURL,
26332652
})
26342653
j.log = log
26352654
}
2655+
2656+
// AddCacheProvider - adds cache provider
2657+
func (j *DSGit) AddCacheProvider() {
2658+
cacheProvider := cache.NewManager(GitDataSource, os.Getenv("STAGE"))
2659+
j.cacheProvider = *cacheProvider
2660+
j.endpoint = strings.ReplaceAll(strings.TrimPrefix(strings.TrimPrefix(j.URL, "https://"), "http://"), "/", "-")
2661+
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/LF-Engineering/insights-datasource-git
33
go 1.15
44

55
require (
6-
github.com/LF-Engineering/insights-datasource-shared v1.4.5-0.20220511063206-6754a12066b9
6+
github.com/LF-Engineering/insights-datasource-shared v1.5.5
77
github.com/LF-Engineering/lfx-event-schema v0.1.20-0.20220511083836-c30a2d7cf561
88
github.com/aws/aws-lambda-go v1.27.1
99
github.com/aws/aws-sdk-go v1.42.25

go.sum

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
2-
github.com/LF-Engineering/insights-datasource-shared v1.4.5-0.20220511063206-6754a12066b9 h1:CcKhPF0SgXbOFasPhoD/1of1ohvgLc4aASJj2KTdsrI=
3-
github.com/LF-Engineering/insights-datasource-shared v1.4.5-0.20220511063206-6754a12066b9/go.mod h1:ZQCRAJNyizhBemQDSjqm14G2MPkOJbRzCPfjwFhYKy4=
2+
github.com/LF-Engineering/insights-datasource-shared v1.5.5 h1:jlSldY2MTR4gy82uQTed1M738gWrZuJj+EhAcYBrm3M=
3+
github.com/LF-Engineering/insights-datasource-shared v1.5.5/go.mod h1:ZQCRAJNyizhBemQDSjqm14G2MPkOJbRzCPfjwFhYKy4=
44
github.com/LF-Engineering/lfx-event-schema v0.1.14/go.mod h1:CfFIZ4mwzo88umf5+KxDQEzqlVkPG7Vx8eLK2oDfWIs=
55
github.com/LF-Engineering/lfx-event-schema v0.1.20-0.20220511083836-c30a2d7cf561 h1:6UCZsa14yxMNPcUN2S8Pgnb7WwOfs+N3UugFuW1tJAg=
66
github.com/LF-Engineering/lfx-event-schema v0.1.20-0.20220511083836-c30a2d7cf561/go.mod h1:CfFIZ4mwzo88umf5+KxDQEzqlVkPG7Vx8eLK2oDfWIs=
@@ -80,6 +80,7 @@ github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2
8080
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
8181
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
8282
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
83+
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M=
8384
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
8485
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
8586
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=

0 commit comments

Comments
 (0)