You've already forked sap-jenkins-library
							
							
				mirror of
				https://github.com/SAP/jenkins-library.git
				synced 2025-10-30 23:57:50 +02:00 
			
		
		
		
	Add identifier data to create uuid in events (#5165)
This commit is contained in:
		| @@ -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") | ||||
| 	} | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user