1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-12 10:55:20 +02:00
sap-jenkins-library/resources/metadata/ansSendEvent.yaml
Oliver Feldmann 810d197665
[ANS] Step implementation (#3764)
* Add ans implementation

* Remove todo comment

* Rename test function

Co-authored-by: Linda Siebert <39100394+LindaSieb@users.noreply.github.com>

* Better wording

Co-authored-by: Linda Siebert <39100394+LindaSieb@users.noreply.github.com>

* Add reading of response body function

* Use http pkg ReadResponseBody

* Check read error

* Better test case description

* Fix formatting

* Create own package for read response body

* Omit empty nested resource struct

* Separate Resource struct from Event struct

* Merge and unmarshall instead of only unmarshalling

* Improve status code error message

* Remove unchangeable event fields

* Separate event parts

* Change log level setter function

* Restructure ans send test

* Revert exporting readResponseBody function

Instead the code is duplicated in the xsuaa and ans package

* Add check correct ans setup request

* Add set options function for mocking

* Review fixes

* Correct function name

* Use strict unmarshalling

* Validate event

* Move functions

* Add documentation comments

* improve test

* Validate event

* Add logrus hook for ans

* Set defaults on new hook creation

* Fix log level on error

* Don't alter entry log level

* Set severity fatal on 'fatal error' log message

* Ensure that log entries don't affect each other

* Remove unnecessary correlationID

* Use file path instead of event template string

* Improve warning messages

* Add empty log message check

* Allow configuration from file and string

* Add sourceEventId to tags

* Change resourceType to Pipeline

* Use structured config approach

* Use new log level set function

* Check correct setup and return error

* Mock http requests

* Only send log level warning or higher

* Use new function name

* One-liner ifs

* Improve test name

* Fix tests

* Prevent double firing

* Reduce Fire test size

* Add error message to test

* Reduce newANSHook test size

* Further check error

* Rename to defaultEvent in hook struct

* Reduce ifs further

* Fix set error category test

The ansHook Fire test cannot run in parallel, as it would affect the
other tests that use the error category.

* Change function name to SetServiceKey

* Validate event

* Rename to eventTemplate in hook struct

* Move copy to event.go

* Fix function mix

* Remove unnecessary cleanup

* Remove parallel test

The translation fails now and again when parallel is on.

* Remove prefix test

* Remove unused copyEvent function

* Fix ifs

* Add docu comment

* Register ans hook from pkg

* register hook and setup event template seperately

* Exclusively read eventTemplate from environment

* setupEventTemplate tests

* adjust hook levels test

* sync tests- wlill still fail

* migrate TestANSHook_registerANSHook test

* fixes

* Add ans send event step

* Fix tests

* Add groovy wrapper

* Add groovy wrapper test

* Fix function names

* Reduce ifs

* Fix docu

* We always set the timestamp

* Validate event

* Test unknown field in json

* Make test list test

* Set all event fields as separate parameters

* Generate and fix code

* Review fixes

* Format test file

* Format go code

* Fix common steps tests

* Print event to console if verbose

Co-authored-by: Linda Siebert <39100394+LindaSieb@users.noreply.github.com>
Co-authored-by: Roland Stengel <r.stengel@sap.com>
2022-06-21 15:45:07 +02:00

119 lines
3.1 KiB
YAML

metadata:
name: ansSendEvent
description: Send Event to the SAP Alert Notification Service
longDescription: |
With this step one can send an Event to the SAP Alert Notification Service.
spec:
inputs:
secrets:
- name: ansServiceKeyCredentialsId
description: Jenkins secret text credential ID containing the service key to access the SAP Alert Notification Service
type: jenkins
params:
- name: ansServiceKey
type: string
description: Service key JSON string to access the SAP Alert Notification Service
scope:
- PARAMETERS
mandatory: true
secret: true
resourceRef:
- name: ansServiceKeyCredentialsId
type: secret
param: ansServiceKey
- name: eventType
type: string
description: Type of the event
default: "Piper"
scope:
- PARAMETERS
- STAGES
- STEPS
- name: severity
type: string
description: Event severity
default: "INFO"
scope:
- PARAMETERS
- STAGES
- STEPS
possibleValues:
- INFO
- NOTICE
- WARNING
- ERROR
- FATAL
- name: category
type: string
description: Event category
default: "NOTIFICATION"
scope:
- PARAMETERS
- STAGES
- STEPS
possibleValues:
- NOTIFICATION
- ALERT
- EXCEPTION
- name: subject
type: string
description: Short description of the event
default: "ansSendEvent"
scope:
- PARAMETERS
- STAGES
- STEPS
- name: body
type: string
description: Detailed description of the event
default: "Call from Piper step ansSendEvent"
scope:
- PARAMETERS
- STAGES
- STEPS
- name: priority
type: int
description: Event priority in the range of 1 to 1000
scope:
- PARAMETERS
- STAGES
- STEPS
- name: tags
type: "map[string]interface{}"
description: Optional key-value pairs describing the event in details
scope:
- PARAMETERS
- STAGES
- STEPS
- name: resourceName
type: string
description: Unique resource name
default: "Pipeline"
scope:
- PARAMETERS
- STAGES
- STEPS
- name: resourceType
type: string
description: Resource type identifier
default: "Pipeline"
scope:
- PARAMETERS
- STAGES
- STEPS
- name: resourceInstance
type: string
description: Optional resource instance identifier
scope:
- PARAMETERS
- STAGES
- STEPS
- name: resourceTags
type: "map[string]interface{}"
description: Optional key-value pairs describing the resource in details
scope:
- PARAMETERS
- STAGES
- STEPS