mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-01-16 05:16:08 +02:00
Add identifier data to create uuid in events (#5165)
This commit is contained in:
parent
d6aaf43fae
commit
183004a80d
@ -68,7 +68,7 @@ func runGcpPublishEvent(utils gcpPublishEventUtils) error {
|
||||
}
|
||||
|
||||
func createNewEvent(config *gcpPublishEventOptions) ([]byte, error) {
|
||||
event, err := events.NewEvent(config.EventType, config.EventSource).CreateWithJSONData(config.EventData)
|
||||
event, err := events.NewEvent(config.EventType, config.EventSource, "").CreateWithJSONData(config.EventData)
|
||||
if err != nil {
|
||||
return []byte{}, errors.Wrap(err, "failed to create new event")
|
||||
}
|
||||
|
@ -21,12 +21,14 @@ type Event struct {
|
||||
cloudEvent cloudevents.Event
|
||||
eventType string
|
||||
eventSource string
|
||||
uuidData string
|
||||
}
|
||||
|
||||
func NewEvent(eventType, eventSource string) Event {
|
||||
func NewEvent(eventType, eventSource string, uuidString string) Event {
|
||||
return Event{
|
||||
eventType: eventType,
|
||||
eventSource: eventSource,
|
||||
uuidData: uuidString,
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,8 +47,14 @@ func (e Event) CreateWithJSONData(data string, opts ...Option) (Event, error) {
|
||||
|
||||
func (e Event) Create(data any, opts ...Option) Event {
|
||||
e.cloudEvent = cloudevents.NewEvent("1.0")
|
||||
|
||||
if e.uuidData != "" {
|
||||
e.cloudEvent.SetID(GetUUID(e.uuidData))
|
||||
} else {
|
||||
e.cloudEvent.SetID(uuid.New().String())
|
||||
}
|
||||
|
||||
// set default values
|
||||
e.cloudEvent.SetID(uuid.New().String())
|
||||
e.cloudEvent.SetType(e.eventType)
|
||||
e.cloudEvent.SetTime(time.Now())
|
||||
e.cloudEvent.SetSource(e.eventSource)
|
||||
@ -58,6 +66,10 @@ func (e Event) Create(data any, opts ...Option) Event {
|
||||
return e
|
||||
}
|
||||
|
||||
func GetUUID(pipelineIdentifier string) string {
|
||||
return uuid.NewMD5(uuid.NameSpaceOID, []byte(pipelineIdentifier)).String()
|
||||
}
|
||||
|
||||
func (e Event) ToBytes() ([]byte, error) {
|
||||
data, err := json.Marshal(e.cloudEvent)
|
||||
if err != nil {
|
||||
|
@ -11,7 +11,7 @@ func TestEventCreation(t *testing.T) {
|
||||
t.Run("success", func(t *testing.T) {
|
||||
// init
|
||||
// test
|
||||
event := NewEvent(mock.Anything, mock.Anything).Create(nil)
|
||||
event := NewEvent(mock.Anything, mock.Anything, "").Create(nil)
|
||||
// asserts
|
||||
assert.Equal(t, mock.Anything, event.cloudEvent.Type())
|
||||
assert.Equal(t, mock.Anything, event.cloudEvent.Source())
|
||||
@ -21,7 +21,7 @@ func TestEventCreation(t *testing.T) {
|
||||
// init
|
||||
testData := `{"testKey":"testValue"}`
|
||||
// test
|
||||
event, err := NewEvent(mock.Anything, mock.Anything).CreateWithJSONData(testData)
|
||||
event, err := NewEvent(mock.Anything, mock.Anything, "").CreateWithJSONData(testData)
|
||||
// asserts
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, string(event.cloudEvent.Data()), testData)
|
||||
@ -32,10 +32,25 @@ func TestEventCreation(t *testing.T) {
|
||||
testData := `{"testKey": "testValue"}`
|
||||
additionalData := `{"additionalKey": "additionalValue"}`
|
||||
// test
|
||||
event, err := NewEvent(mock.Anything, mock.Anything).CreateWithJSONData(testData)
|
||||
event, err := NewEvent(mock.Anything, mock.Anything, "").CreateWithJSONData(testData)
|
||||
event.AddToCloudEventData(additionalData)
|
||||
// asserts
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, string(event.cloudEvent.Data()), `{"additionalKey":"additionalValue","testKey":"testValue"}`)
|
||||
})
|
||||
}
|
||||
|
||||
func TestGetUUID(t *testing.T) {
|
||||
pipelineIdentifier := "pipelineIdentifier"
|
||||
uuid := GetUUID(pipelineIdentifier)
|
||||
|
||||
if uuid == "" {
|
||||
t.Fatalf("expected a UUID but got none")
|
||||
}
|
||||
|
||||
uuid2 := GetUUID(pipelineIdentifier)
|
||||
if uuid != uuid2 {
|
||||
t.Fatalf("expected the same UUID but got different ones")
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user