From b7e495461693c76671244acb5012a20938efc960 Mon Sep 17 00:00:00 2001 From: nsano-rururu Date: Tue, 26 Dec 2023 02:15:43 +0900 Subject: [PATCH] Add IRIS Alerter --- src/components/config/alert/ConfigAlert.vue | 14 + .../config/alert/ConfigAlertIris.vue | 294 ++++++++++++++++++ src/registration.js | 2 + src/store/config/alert.js | 73 +++++ src/store/config/index.js | 114 +++++++ 5 files changed, 497 insertions(+) create mode 100644 src/components/config/alert/ConfigAlertIris.vue diff --git a/src/components/config/alert/ConfigAlert.vue b/src/components/config/alert/ConfigAlert.vue index ef12452..70659b0 100644 --- a/src/components/config/alert/ConfigAlert.vue +++ b/src/components/config/alert/ConfigAlert.vue @@ -192,6 +192,9 @@ Lark + + IRIS + @@ -207,6 +210,7 @@ alert.includes('gitter') || alert.includes('googlechat') || alert.includes('hivealerter') || + alert.includes('iris') || alert.includes('jira') || alert.includes('lark') || alert.includes('linenotify') || @@ -505,6 +509,14 @@ + + + + + + @@ -529,6 +541,7 @@ import ConfigAlertGitter from './ConfigAlertGitter'; import ConfigAlertGoogleChat from './ConfigAlertGoogleChat'; import ConfigAlertHttpPost from './ConfigAlertHttpPost'; import ConfigAlertHttpPost2 from './ConfigAlertHttpPost2'; +import ConfigAlertIris from './ConfigAlertIris'; import ConfigAlertJira from './ConfigAlertJira'; import ConfigAlertLark from './ConfigAlertLark'; import ConfigAlertLineNotify from './ConfigAlertLineNotify'; @@ -647,6 +660,7 @@ export default { ConfigAlertGoogleChat, ConfigAlertHttpPost, ConfigAlertHttpPost2, + ConfigAlertIris, ConfigAlertJira, ConfigAlertLark, ConfigAlertLineNotify, diff --git a/src/components/config/alert/ConfigAlertIris.vue b/src/components/config/alert/ConfigAlertIris.vue new file mode 100644 index 0000000..c7c6d06 --- /dev/null +++ b/src/components/config/alert/ConfigAlertIris.vue @@ -0,0 +1,294 @@ + + + + + diff --git a/src/registration.js b/src/registration.js index c324a50..b64bcab 100644 --- a/src/registration.js +++ b/src/registration.js @@ -30,6 +30,7 @@ import ConfigAlertGitter from '@/components/config/alert/ConfigAlertGitter.vue'; import ConfigAlertGoogleChat from '@/components/config/alert/ConfigAlertGoogleChat.vue'; import ConfigAlertHttpPost from '@/components/config/alert/ConfigAlertHttpPost.vue'; import ConfigAlertHttpPost2 from '@/components/config/alert/ConfigAlertHttpPost2.vue'; +import ConfigAlertIris from '@/components/config/alert/ConfigAlertIris.vue'; import ConfigAlertJira from '@/components/config/alert/ConfigAlertJira.vue'; import ConfigAlertLark from '@/components/config/alert/ConfigAlertLark.vue'; import ConfigAlertLineNotify from '@/components/config/alert/ConfigAlertLineNotify.vue'; @@ -78,6 +79,7 @@ Vue.component('ConfigAlertGitter', ConfigAlertGitter); Vue.component('ConfigAlertGoogleChat', ConfigAlertGoogleChat); Vue.component('ConfigAlertHttpPost', ConfigAlertHttpPost); Vue.component('ConfigAlertHttpPost2', ConfigAlertHttpPost2); +Vue.component('ConfigAlertIris', ConfigAlertIris); Vue.component('ConfigAlertJira', ConfigAlertJira); Vue.component('ConfigAlertLark', ConfigAlertLark); Vue.component('ConfigAlertLineNotify', ConfigAlertLineNotify); diff --git a/src/store/config/alert.js b/src/store/config/alert.js index be364f9..20e7e1e 100644 --- a/src/store/config/alert.js +++ b/src/store/config/alert.js @@ -195,6 +195,22 @@ function initialState() { httpPost2Timeout: '', httpPost2Proxy: '', + /* IRIS */ + irisHost: '', + irisApiToken: '', + irisCustomerId: 0, + irisIgnoreSslErrors: false, + irisCaCerts: false, + irisDescription: '', + irisOverwriteTimestamp: false, + irisType: 'alert', + irisCaseTemplateId: 0, + irisAlertNote: '', + irisAlertTags: '', + irisAlertStatusId: 0, + irisAlertSourceLink: '', + irisAlertSeverityId: 0, + /* Jira */ jiraProject: '', jiraIssueType: '', @@ -1229,6 +1245,63 @@ export default { state.httpPost2Proxy = httpPost2Proxy; }, + /* IRIS */ + UPDATE_IRIS_HOST(state, irisHost) { + state.irisHost = irisHost; + }, + + UPDATE_IRIS_API_TOKEN(state, irisApiToken) { + state.irisApiToken = irisApiToken; + }, + + UPDATE_IRIS_CUSTOMER_ID(state, irisCustomerId) { + state.irisCustomerId = irisCustomerId; + }, + + UPDATE_IRIS_IGNORE_SSL_ERRORS(state, irisIgnoreSslErrors) { + state.irisIgnoreSslErrors = irisIgnoreSslErrors; + }, + + UPDATE_IRIS_CA_CERTS(state, irisCaCerts) { + state.irisCaCerts = irisCaCerts; + }, + + UPDATE_IRIS_DESCRIPTION(state, irisDescription) { + state.irisDescription = irisDescription; + }, + + UPDATE_IRIS_OVERWRITE_TIMESTAMP(state, irisOverwriteTimestamp) { + state.irisOverwriteTimestamp = irisOverwriteTimestamp; + }, + + UPDATE_IRIS_TYPE(state, irisType) { + state.irisType = irisType; + }, + + UPDATE_IRIS_CASE_TEMPLATE_ID(state, irisCaseTemplateId) { + state.irisCaseTemplateId = irisCaseTemplateId; + }, + + UPDATE_IRIS_ALERT_NOTE(state, irisAlertNote) { + state.irisAlertNote = irisAlertNote; + }, + + UPDATE_IRIS_ALERT_TAGS(state, irisAlertTags) { + state.irisAlertTags = irisAlertTags; + }, + + UPDATE_IRIS_ALERT_STATUS_ID(state, irisAlertStatusId) { + state.irisAlertStatusId = irisAlertStatusId; + }, + + UPDATE_IRIS_ALERT_SOURCE_LINK(state, irisAlertSourceLink) { + state.irisAlertSourceLink = irisAlertSourceLink; + }, + + UPDATE_IRIS_ALERT_SEVERITY_ID(state, irisAlertSeverityId) { + state.irisAlertSeverityId = irisAlertSeverityId; + }, + /* Jira */ UPDATE_JIRA_PROJECT(state, jiraProject) { state.jiraProject = jiraProject; diff --git a/src/store/config/index.js b/src/store/config/index.js index ca60af9..53b9a91 100644 --- a/src/store/config/index.js +++ b/src/store/config/index.js @@ -276,6 +276,53 @@ export default { commit('alert/UPDATE_HTTP_POST2_PROXY', config.http_post2_proxy); + /* IRIS */ + commit('alert/UPDATE_IRIS_HOST', config.iris_host); + + commit('alert/UPDATE_IRIS_API_TOKEN', config.iris_api_token); + + commit('alert/UPDATE_IRIS_CUSTOMER_ID', config.iris_customer_id); + + if (config.iris_ignore_ssl_errors) { + commit('alert/UPDATE_IRIS_IGNORE_SSL_ERRORS', config.iris_ignore_ssl_errors); + } + + if (config.iris_ca_cert) { + commit('alert/UPDATE_IRIS_CA_CERTS', config.iris_ca_cert); + } + + commit('alert/UPDATE_IRIS_DESCRIPTION', config.iris_description); + + if (config.iris_overwrite_timestamp) { + commit('alert/UPDATE_IRIS_OVERWRITE_TIMESTAMP', config.iris_overwrite_timestamp); + } + + if (config.iris_type) { + commit('alert/UPDATE_IRIS_TYPE', config.iris_type); + } else { + commit('alert/UPDATE_IRIS_TYPE', 'alert'); + } + + commit('alert/UPDATE_IRIS_CASE_TEMPLATE_ID', config.iris_case_template_id); + + commit('alert/UPDATE_IRIS_ALERT_NOTE', config.iris_alert_note); + + commit('alert/UPDATE_IRIS_ALERT_TAGS', config.iris_alert_tags); + + if (config.iris_type) { + commit('alert/UPDATE_IRIS_ALERT_STATUS_ID', config.iris_alert_status_id); + } else { + commit('alert/UPDATE_IRIS_ALERT_STATUS_ID', 2); + } + + commit('alert/UPDATE_IRIS_ALERT_SOURCE_LINK', config.iris_alert_source_link); + + if (config.iris_alert_severity_id) { + commit('alert/UPDATE_IRIS_ALERT_SEVERITY_ID', config.iris_alert_severity_id); + } else { + commit('alert/UPDATE_IRIS_ALERT_SEVERITY_ID', 1); + } + /* EMail */ commit('alert/UPDATE_FROM_ADDR', config.from_addr); commit('alert/UPDATE_REPLY_TO', config.email_reply_to); @@ -1524,6 +1571,68 @@ export default { return config; }, + iris(state) { + let config = {}; + + if (state.alert.irisHost) { + config.iris_host = state.alert.irisHost; + } + + if (state.alert.irisApiToken) { + config.iris_api_token = state.alert.irisApiToken; + } + + if (state.alert.irisCustomerId) { + config.iris_customer_id = state.alert.irisCustomerId; + } + + if (state.alert.irisIgnoreSslErrors) { + config.iris_ignore_ssl_errors = state.alert.irisIgnoreSslErrors; + } + + if (state.alert.irisCaCerts) { + config.iris_ca_cert = state.alert.irisCaCerts; + } + + if (state.alert.irisDescription) { + config.iris_description = state.alert.irisDescription; + } + + if (state.alert.irisOverwriteTimestamp) { + config.iris_overwrite_timestamp = state.alert.irisOverwriteTimestamp; + } + + if (state.alert.irisType) { + config.iris_type = state.alert.irisType; + } + + if (state.alert.irisCaseTemplateId) { + config.iris_case_template_id = state.alert.irisCaseTemplateId; + } + + if (state.alert.irisAlertNote) { + config.iris_alert_note = state.alert.irisAlertNote; + } + + if (state.alert.irisAlertTags) { + config.iris_alert_tags = state.alert.irisAlertTags; + } + + if (state.alert.irisAlertStatusId) { + config.iris_alert_status_id = state.alert.irisAlertStatusId; + } + + if (state.alert.irisAlertSourceLink) { + config.iris_alert_source_link = state.alert.irisAlertSourceLink; + } + + if (state.alert.irisAlertSeverityId) { + config.iris_alert_severity_id = state.alert.irisAlertSeverityId; + } + + return config; + }, + aggregation(state) { let config = {}; @@ -3134,6 +3243,10 @@ export default { config = { ...config, ...getters.http2 }; } + if (state.alert.alert.includes('iris')) { + config = { ...config, ...getters.iris }; + } + if (state.alert.alert.includes('rocketchat')) { config = { ...config, ...getters.rocketchat }; } @@ -3189,6 +3302,7 @@ export default { || state.alert.alert.includes('gitter') || state.alert.alert.includes('googlechat') || state.alert.alert.includes('hivealerter') + || state.alert.alert.includes('iris') || state.alert.alert.includes('jira') || state.alert.alert.includes('lark') || state.alert.alert.includes('linenotify')