diff --git a/plugins/modules/grafana_datasource.py b/plugins/modules/grafana_datasource.py index 154dc451..aff4a9d1 100644 --- a/plugins/modules/grafana_datasource.py +++ b/plugins/modules/grafana_datasource.py @@ -46,6 +46,7 @@ - camptocamp-prometheus-alertmanager-datasource - loki - redis-datasource + - quickwit-quickwit-datasource type: str ds_url: description: @@ -738,7 +739,8 @@ def setup_module_object(): 'camptocamp-prometheus-alertmanager-datasource', 'sni-thruk-datasource', 'redis-datasource', - 'loki']), + 'loki', + 'quickwit-quickwit-datasource']), ds_url=dict(type='str'), access=dict(default='proxy', choices=['proxy', 'direct']), database=dict(type='str', default=""), diff --git a/tests/integration/targets/grafana_datasource/tasks/quickwit.yml b/tests/integration/targets/grafana_datasource/tasks/quickwit.yml new file mode 100644 index 00000000..4cff7906 --- /dev/null +++ b/tests/integration/targets/grafana_datasource/tasks/quickwit.yml @@ -0,0 +1,138 @@ +--- + +- name: Create Quickwit datasource + register: result + grafana_datasource: + name: "Quickwit" + grafana_url: "{{ grafana_url }}" + grafana_user: "{{ grafana_username }}" + grafana_password: "{{ grafana_password }}" + org_id: '1' + ds_type: quickwit-quickwit-datasource + ds_url: http://localhost:7280/api/v1 + additional_json_data: + index: 'hdfs-logs' + timeField: timestamp + timeOutputFormat: unix_timestamp_secs + logMessageField: body + logLevelField: severity_text + +- debug: + var: result + +- assert: + that: + - result.changed + - result.datasource.access == 'proxy' + - not result.datasource.isDefault + - result.datasource.database == '' + - result.datasource.name == 'Quickwit' + - result.datasource.orgId == 1 + - result.datasource.type == 'quickwit-quickwit-datasource' + - result.datasource.url == 'http://localhost:7280/api/v1' + - "result.msg == 'Datasource Quickwit created'" + - result.datasource.jsonData.index == 'hdfs-logs' + - result.datasource.jsonData.timeField == 'timestamp' + - result.datasource.jsonData.timeOutputFormat == 'unix_timestamp_secs' + - result.datasource.jsonData.logMessageField == 'body' + - result.datasource.jsonData.logLevelField == 'severity_text' + +- name: Check Quickwit datasource creation (idempotency) + register: result + grafana_datasource: + name: "Quickwit" + grafana_url: "{{ grafana_url }}" + grafana_user: "{{ grafana_username }}" + grafana_password: "{{ grafana_password }}" + org_id: '1' + ds_type: quickwit-quickwit-datasource + ds_url: http://localhost:7280/api/v1 + additional_json_data: + index: 'hdfs-logs' + timeField: timestamp + timeOutputFormat: unix_timestamp_secs + logMessageField: body + logLevelField: severity_text + +- debug: + var: result + +- assert: + that: + - not result.changed + - result.datasource.access == 'proxy' + - not result.datasource.isDefault + - result.datasource.database == '' + - result.datasource.name == 'Quickwit' + - result.datasource.orgId == 1 + - result.datasource.type == 'quickwit-quickwit-datasource' + - result.datasource.url == 'http://localhost:7280/api/v1' + - "result.msg == 'Datasource Quickwit created'" + - result.datasource.jsonData.index == 'hdfs-logs' + - result.datasource.jsonData.timeField == 'timestamp' + - result.datasource.jsonData.timeOutputFormat == 'unix_timestamp_secs' + - result.datasource.jsonData.logMessageField == 'body' + - result.datasource.jsonData.logLevelField == 'severity_text' + +- name: Update Quickwit datasource + register: result + grafana_datasource: + name: "Quickwit" + grafana_url: "{{ grafana_url }}" + grafana_user: "{{ grafana_username }}" + grafana_password: "{{ grafana_password }}" + org_id: '1' + ds_type: quickwit-quickwit-datasource + ds_url: http://quickwit-url:7280/api/v1 + additional_json_data: + index: 'hdfs-logs' + timeField: timestamp + timeOutputFormat: unix_timestamp_millis + logMessageField: body + logLevelField: severity_text + +- debug: + var: result + +- assert: + that: + - result.changed + - result.datasource.access == 'proxy' + - not result.datasource.isDefault + - result.datasource.database == '' + - result.datasource.name == 'Quickwit' + - result.datasource.orgId == 1 + - result.datasource.type == 'quickwit-quickwit-datasource' + - result.datasource.url == 'http://quickwit-url:7280/api/v1' + - "result.msg == 'Datasource Quickwit created'" + - result.datasource.jsonData.index == 'hdfs-logs' + - result.datasource.jsonData.timeField == 'timestamp' + - result.datasource.jsonData.timeOutputFormat == 'unix_timestamp_millis' + - result.datasource.jsonData.logMessageField == 'body' + - result.datasource.jsonData.logLevelField == 'severity_text' + +- name: Delete Quickwit datasource + register: result + grafana_datasource: + name: "Quickwit" + grafana_url: "{{ grafana_url }}" + grafana_user: "{{ grafana_username }}" + grafana_password: "{{ grafana_password }}" + state: absent + +- assert: + that: + - result.changed + +- name: Delete Quickwit datasource (idempotency) + register: result + grafana_datasource: + name: "Quickwit" + grafana_url: "{{ grafana_url }}" + grafana_user: "{{ grafana_username }}" + grafana_password: "{{ grafana_password }}" + state: absent + +- assert: + that: + - not result.changed