Skip to content

Commit 894350a

Browse files
author
Jalander Ramagiri
committed
addressing review comments to add Makefile and zap logger
Signed-off-by: Jalander Ramagiri <[email protected]>
1 parent 0eb8e03 commit 894350a

File tree

7 files changed

+83
-34
lines changed

7 files changed

+83
-34
lines changed

Makefile

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Go parameters
2+
GOCMD=go
3+
GOBUILD=$(GOCMD) build
4+
GOFMT=$(GOCMD) fmt
5+
GOVET=$(GOCMD) vet
6+
GOTEST=$(GOCMD) test
7+
BINARY_NAME=gerrit-translator-cdevents
8+
PKG_DIR=./pkg/
9+
10+
all: fmt vet test build
11+
12+
build:
13+
$(GOBUILD) -o $(BINARY_NAME) $(PKG_DIR)
14+
15+
test:
16+
$(GOTEST) -v ./...
17+
18+
fmt:
19+
$(GOFMT) ./...
20+
21+
vet:
22+
$(GOVET) ./...
23+
24+
clean:
25+
rm -f $(BINARY_NAME)

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ The binary of this plugin is published with a release URL and is used by externa
77
The published plugin's binary can be downloaded and loaded by creating a new plugin client using HashiCorp's go-plugin, which manages the lifecycle of this plugin and establishes the RPC connection.
88

99
### How to run locally
10-
Run the below command from the project root directory, which creates a plugin's binary with the name `gerrit-translator-cdevents`
11-
````go
12-
go build -o gerrit-translator-cdevents ./pkg/
10+
Run the `make` command from the project root directory, which creates a plugin's binary with the name `gerrit-translator-cdevents`
11+
````make
12+
make all
1313
````
1414

1515
### Gerrit-CDEvents type mapping for translation

pkg/gerrit/create_cdevents.go

+12-11
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@ package gerrit
1919

2020
import (
2121
sdk "github.com/cdevents/sdk-go/pkg/api"
22-
"log"
2322
)
2423

2524
func (projectCreated *ProjectCreated) RepositoryCreatedCDEvent() (string, error) {
26-
log.Println("Creating CDEvent RepositoryCreatedEvent")
25+
Log().Info("Creating CDEvent RepositoryCreatedEvent")
2726
cdEvent, err := sdk.NewRepositoryCreatedEvent()
2827
if err != nil {
29-
log.Printf("Error creating CDEvent RepositoryCreatedEvent %s\n", err)
28+
Log().Error("Error creating CDEvent RepositoryCreatedEvent %s\n", err)
3029
return "", err
3130
}
3231
cdEvent.SetSource(projectCreated.RepoURL)
@@ -35,18 +34,18 @@ func (projectCreated *ProjectCreated) RepositoryCreatedCDEvent() (string, error)
3534
cdEvent.SetSubjectUrl(projectCreated.RepoURL)
3635
cdEventStr, err := sdk.AsJsonString(cdEvent)
3736
if err != nil {
38-
log.Printf("Error creating RepositoryCreated CDEvent as Json string %s\n", err)
37+
Log().Error("Error creating RepositoryCreated CDEvent as Json string %s\n", err)
3938
return "", err
4039
}
4140

4241
return cdEventStr, nil
4342
}
4443

4544
func (projectHeadUpdated *ProjectHeadUpdated) RepositoryModifiedCDEvent() (string, error) {
46-
log.Println("Creating CDEvent RepositoryModifiedEvent")
45+
Log().Info("Creating CDEvent RepositoryModifiedEvent")
4746
cdEvent, err := sdk.NewRepositoryModifiedEvent()
4847
if err != nil {
49-
log.Printf("Error creating CDEvent RepositoryModified %s\n", err)
48+
Log().Error("Error creating CDEvent RepositoryModified %s\n", err)
5049
return "", err
5150
}
5251
cdEvent.SetSource(projectHeadUpdated.RepoURL)
@@ -55,17 +54,18 @@ func (projectHeadUpdated *ProjectHeadUpdated) RepositoryModifiedCDEvent() (strin
5554
cdEvent.SetSubjectUrl(projectHeadUpdated.NewHead)
5655
cdEventStr, err := sdk.AsJsonString(cdEvent)
5756
if err != nil {
58-
log.Printf("Error creating RepositoryModified CDEvent as Json string %s\n", err)
57+
Log().Error("Error creating RepositoryModified CDEvent as Json string %s\n", err)
5958
return "", err
6059
}
6160

6261
return cdEventStr, nil
6362
}
6463

6564
func (refUpdated *RefUpdated) BranchCreatedCDEvent() (string, error) {
65+
Log().Info("Creating CDEvent BranchCreatedEvent")
6666
cdEvent, err := sdk.NewBranchCreatedEvent()
6767
if err != nil {
68-
log.Printf("Error creating CDEvent BranchCreatedEvent %s\n", err)
68+
Log().Error("Error creating CDEvent BranchCreatedEvent %s\n", err)
6969
return "", err
7070
}
7171
cdEvent.SetSource(refUpdated.RepoURL)
@@ -75,16 +75,17 @@ func (refUpdated *RefUpdated) BranchCreatedCDEvent() (string, error) {
7575

7676
cdEventStr, err := sdk.AsJsonString(cdEvent)
7777
if err != nil {
78-
log.Printf("Error creating BranchCreated CDEvent as Json string %s\n", err)
78+
Log().Error("Error creating BranchCreated CDEvent as Json string %s\n", err)
7979
return "", err
8080
}
8181
return cdEventStr, nil
8282
}
8383

8484
func (refUpdated *RefUpdated) BranchDeletedCDEvent() (string, error) {
85+
Log().Info("Creating CDEvent BranchDeletedEvent")
8586
cdEvent, err := sdk.NewBranchDeletedEvent()
8687
if err != nil {
87-
log.Printf("Error creating CDEvent BranchDeletedEvent %s\n", err)
88+
Log().Error("Error creating CDEvent BranchDeletedEvent %s\n", err)
8889
return "", err
8990
}
9091
cdEvent.SetSource(refUpdated.RepoURL)
@@ -94,7 +95,7 @@ func (refUpdated *RefUpdated) BranchDeletedCDEvent() (string, error) {
9495

9596
cdEventStr, err := sdk.AsJsonString(cdEvent)
9697
if err != nil {
97-
log.Printf("Error creating BranchDeleted CDEvent as Json string %s\n", err)
98+
Log().Error("Error creating BranchDeleted CDEvent as Json string %s\n", err)
9899
return "", err
99100
}
100101
return cdEventStr, nil

pkg/gerrit/event.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ package gerrit
2020
import (
2121
"encoding/json"
2222
"fmt"
23-
"log"
2423
"net/http"
2524
)
2625

@@ -35,18 +34,18 @@ func NewGerritEvent(event string, repoURL string) (pEvent *GerritEvent) {
3534
}
3635

3736
func HandleTranslateGerritEvent(event string, header http.Header) (string, error) {
38-
log.Printf("Handle translation into CDEvent from Gerrit event %s\n", event)
37+
Log().Info("Handle translation into CDEvent from Gerrit event %s\n", event)
3938
repoURL := ""
4039
if header.Get("X-Origin-Url") != "" {
4140
repoURL = header.Get("X-Origin-Url")
4241
}
4342
gerritEvent := NewGerritEvent(event, repoURL)
4443
cdEvent, err := gerritEvent.TranslateIntoCDEvent()
4544
if err != nil {
46-
log.Printf("Error translating Gerrit event into CDEvent %s\n", err)
45+
Log().Error("Error translating Gerrit event into CDEvent %s\n", err)
4746
return "", err
4847
}
49-
log.Printf("Gerrit Event translated into CDEvent %s\n", cdEvent)
48+
Log().Info("Gerrit Event translated into CDEvent %s\n", cdEvent)
5049
return cdEvent, nil
5150
}
5251

@@ -55,11 +54,11 @@ func (pEvent *GerritEvent) TranslateIntoCDEvent() (string, error) {
5554
cdEvent := ""
5655
err := json.Unmarshal([]byte(pEvent.Event), &eventMap)
5756
if err != nil {
58-
log.Println("Error occurred while Unmarshal gerritEvent data into gerritEvent map", err)
57+
Log().Error("Error occurred while Unmarshal gerritEvent data into gerritEvent map", err)
5958
return "", err
6059
}
6160
eventType := eventMap["type"]
62-
log.Printf("handling translating to CDEvent from Gerrit Event type: %s\n", eventType)
61+
Log().Info("handling translating to CDEvent from Gerrit Event type: %s\n", eventType)
6362

6463
switch eventType {
6564
case "project-created":
@@ -78,7 +77,7 @@ func (pEvent *GerritEvent) TranslateIntoCDEvent() (string, error) {
7877
return "", err
7978
}
8079
default:
81-
log.Printf("Not handling CDEvent translation for Gerrit event type: %s\n", eventMap["type"])
80+
Log().Info("Not handling CDEvent translation for Gerrit event type: %s\n", eventMap["type"])
8281
return "", fmt.Errorf("gerrit event type %s, not supported for translation", eventType)
8382
}
8483
return cdEvent, nil

pkg/gerrit/logger.go

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package gerrit
2+
3+
import (
4+
"go.uber.org/zap"
5+
)
6+
7+
var sugar *zap.SugaredLogger
8+
9+
// InitLogger Initialize a new production zap logger
10+
func InitLogger() {
11+
logger, err := zap.NewProduction()
12+
if err != nil {
13+
panic("failed to initialize logger: " + err.Error())
14+
}
15+
defer logger.Sync()
16+
sugar = logger.Sugar()
17+
}
18+
19+
// Log returns the zap logger If initialized
20+
func Log() *zap.SugaredLogger {
21+
if sugar == nil {
22+
panic("zap logger is not initialized")
23+
}
24+
return sugar
25+
}

pkg/gerrit/translate_events.go

+10-11
Original file line numberDiff line numberDiff line change
@@ -19,40 +19,39 @@ package gerrit
1919

2020
import (
2121
"encoding/json"
22-
"log"
2322
)
2423

2524
func (pEvent *GerritEvent) HandleProjectCreatedEvent() (string, error) {
2625
var projectCreated ProjectCreated
2726
err := json.Unmarshal([]byte(pEvent.Event), &projectCreated)
2827
if err != nil {
29-
log.Println("Error occurred while Unmarshal GerritEvent into ProjectCreated struct", err)
28+
Log().Error("Error occurred while Unmarshal GerritEvent into ProjectCreated struct", err)
3029
return "", err
3130
}
32-
log.Println("ProjectCreated GerritEvent received : ", projectCreated.ProjectName, projectCreated.HeadName, projectCreated.CommonFields.Type)
31+
Log().Info("ProjectCreated GerritEvent received : ", projectCreated.ProjectName, projectCreated.HeadName, projectCreated.CommonFields.Type)
3332
projectCreated.RepoURL = pEvent.RepoURL
3433
cdEvent, err := projectCreated.RepositoryCreatedCDEvent()
3534
if err != nil {
3635
return "", err
3736
}
38-
log.Println("Translated projectCreated gerrit event into RepositoryCreated CDEvent: ", cdEvent)
37+
Log().Info("Translated project-created gerrit event into dev.cdevents.repository.created CDEvent: ", cdEvent)
3938
return cdEvent, nil
4039
}
4140

4241
func (pEvent *GerritEvent) HandleProjectHeadUpdatedEvent() (string, error) {
4342
var projectHeadUpdated ProjectHeadUpdated
4443
err := json.Unmarshal([]byte(pEvent.Event), &projectHeadUpdated)
4544
if err != nil {
46-
log.Println("Error occurred while Unmarshal GerritEvent into ProjectHeadUpdated struct", err)
45+
Log().Error("Error occurred while Unmarshal GerritEvent into ProjectHeadUpdated struct", err)
4746
return "", err
4847
}
49-
log.Println("ProjectHeadUpdated GerritEvent received for project : ", projectHeadUpdated.ProjectName)
48+
Log().Info("ProjectHeadUpdated GerritEvent received for project : ", projectHeadUpdated.ProjectName)
5049
projectHeadUpdated.RepoURL = pEvent.RepoURL
5150
cdEvent, err := projectHeadUpdated.RepositoryModifiedCDEvent()
5251
if err != nil {
5352
return "", err
5453
}
55-
log.Println("Translated projectHeadUpdated gerrit event into RepositoryModified CDEvent: ", cdEvent)
54+
Log().Info("Translated project-head-updated gerrit event into dev.cdevents.repository.modified CDEvent: ", cdEvent)
5655
return cdEvent, nil
5756
}
5857

@@ -61,23 +60,23 @@ func (pEvent *GerritEvent) HandleRefUpdatedEvent() (string, error) {
6160
var refUpdated RefUpdated
6261
err := json.Unmarshal([]byte(pEvent.Event), &refUpdated)
6362
if err != nil {
64-
log.Println("Error occurred while Unmarshal GerritEvent into RefUpdated struct", err)
63+
Log().Error("Error occurred while Unmarshal GerritEvent into RefUpdated struct", err)
6564
return "", err
6665
}
67-
log.Println("RefUpdated GerritEvent received : ", refUpdated.RefUpdate.RefName, refUpdated.Submitter.Name, refUpdated.CommonFields.Type)
66+
Log().Info("RefUpdated GerritEvent received : ", refUpdated.RefUpdate.RefName, refUpdated.Submitter.Name, refUpdated.CommonFields.Type)
6867
refUpdated.RepoURL = pEvent.RepoURL
6968
if refUpdated.RefUpdate.OldRev == "0000000000000000000000000000000000000000" {
7069
cdEvent, err = refUpdated.BranchCreatedCDEvent()
7170
if err != nil {
7271
return "", err
7372
}
74-
log.Println("Translated refUpdated gerrit event into BranchCreated CDEvent: ", cdEvent)
73+
Log().Info("Translated ref-updated gerrit event into dev.cdevents.branch.created CDEvent: ", cdEvent)
7574
} else if refUpdated.RefUpdate.NewRev == "0000000000000000000000000000000000000000" {
7675
cdEvent, err = refUpdated.BranchDeletedCDEvent()
7776
if err != nil {
7877
return "", err
7978
}
80-
log.Println("Translated refUpdated gerrit event into BranchDeleted CDEvent: ", cdEvent)
79+
Log().Info("Translated ref-updated gerrit event into dev.cdevents.branch.deleted CDEvent: ", cdEvent)
8180
}
8281

8382
return cdEvent, nil

pkg/translator.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@ import (
2121
"github.com/cdevents/gerrit-translator/pkg/gerrit"
2222
"github.com/cdevents/webhook-adapter/pkg/cdevents"
2323
"github.com/hashicorp/go-plugin"
24-
"log"
2524
"net/http"
2625
)
2726

2827
type EventTranslator struct{}
2928

3029
// TranslateEvent Invoked from external application to translate Gerrit event into CDEvent
3130
func (EventTranslator) TranslateEvent(event string, headers http.Header) (string, error) {
32-
log.Println("Serving from gerrit-translator plugin")
31+
gerrit.Log().Info("Serving from gerrit-translator plugin")
3332
cdEvent, err := gerrit.HandleTranslateGerritEvent(event, headers)
3433
if err != nil {
3534
return "", err
@@ -38,6 +37,7 @@ func (EventTranslator) TranslateEvent(event string, headers http.Header) (string
3837
}
3938

4039
func main() {
40+
gerrit.InitLogger()
4141
plugin.Serve(&plugin.ServeConfig{
4242
HandshakeConfig: cdevents.Handshake,
4343
Plugins: map[string]plugin.Plugin{

0 commit comments

Comments
 (0)