Skip to content

Commit

Permalink
Merge pull request #613 from Checkmk/feature/integration-tests-versio…
Browse files Browse the repository at this point in the history
…n-handling

Integration tests version handling
  • Loading branch information
robin-checkmk authored Jun 4, 2024
2 parents d37ab09 + 34c2db6 commit a5e5a74
Show file tree
Hide file tree
Showing 6 changed files with 378 additions and 200 deletions.
2 changes: 1 addition & 1 deletion plugins/modules/rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
- Lars Getwan (@lgetwan)
- diademiemi (@diademiemi)
- Geoffroy Stévenne (@geof77)
- Michael Sekana (@msekania)
- Michael Sekania (@msekania)
"""

EXAMPLES = r"""
Expand Down
54 changes: 7 additions & 47 deletions tests/integration/targets/rule/tasks/test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
---
- name: "Include Checkmk version specific Variables."
ansible.builtin.include_vars: "{{ outer_item.version | regex_search('^[0-9]+[.][0-9]+[.][0-9]+') }}.yml"

- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create rules."
rule:
server_url: "{{ checkmk_var_server_url }}"
Expand Down Expand Up @@ -66,7 +69,7 @@
properties:
comment: "{{ item.content.extensions.properties.comment | default('') }}"
description: "New description"
value_raw: "{{ item.content.extensions.value_raw }}"
value_raw: "{{ item.content.extensions.value_raw | string }}"
state: "present"
delegate_to: localhost
run_once: true # noqa run-once[task]
Expand All @@ -87,7 +90,7 @@
properties:
comment: "{{ item.content.extensions.properties.comment | default('') }}"
description: "New description"
value_raw: "{{ item.content.extensions.value_raw }}"
value_raw: "{{ item.content.extensions.value_raw | string }}"
state: "present"
delegate_to: localhost
run_once: true # noqa run-once[task]
Expand Down Expand Up @@ -116,7 +119,7 @@
properties:
comment: "{{ item.extensions.properties.comment }}"
description: "Even newer description"
value_raw: "{{ item.extensions.value_raw }}"
value_raw: "{{ item.extensions.value_raw | string }}"
state: "present"
delegate_to: localhost
run_once: true # noqa run-once[task]
Expand Down Expand Up @@ -161,7 +164,7 @@
delegate_to: localhost
run_once: true # noqa run-once[task]

- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Delete rules."
- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Delete rules. Again."
rule:
server_url: "{{ checkmk_var_server_url }}"
site: "{{ outer_item.site }}"
Expand All @@ -183,46 +186,3 @@
when: "rule_result.changed"
delegate_to: localhost
run_once: true # noqa run-once[task]

- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create rules. Oldschool."
rule:
server_url: "{{ checkmk_var_server_url }}"
site: "{{ outer_item.site }}"
automation_user: "{{ checkmk_var_automation_user }}"
automation_secret: "{{ checkmk_var_automation_secret }}"
ruleset: "{{ item.ruleset }}"
rule: "{{ item.rule }}"
state: "present"
delegate_to: localhost
run_once: true # noqa run-once[task]
loop: "{{ checkmk_var_rules }}"
register: created_rules

- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - Create rules again. Oldschool."
rule:
server_url: "{{ checkmk_var_server_url }}"
site: "{{ outer_item.site }}"
automation_user: "{{ checkmk_var_automation_user }}"
automation_secret: "{{ checkmk_var_automation_secret }}"
ruleset: "{{ item.ruleset }}"
rule: "{{ item.rule }}"
state: "present"
delegate_to: localhost
run_once: true # noqa run-once[task]
loop: "{{ checkmk_var_rules }}"
register: created_rules

- name: "{{ outer_item.version }} - {{ outer_item.edition | upper }} - New label conditions."
rule:
server_url: "{{ checkmk_var_server_url }}"
site: "{{ outer_item.site }}"
automation_user: "{{ checkmk_var_automation_user }}"
automation_secret: "{{ checkmk_var_automation_secret }}"
ruleset: "{{ item.ruleset }}"
rule: "{{ item.rule }}"
state: "present"
delegate_to: localhost
run_once: true # noqa run-once[task]
loop: "{{ checkmk_var_rules_230 }}"
register: created_rules
when: "'2.3' in outer_item.version"
109 changes: 109 additions & 0 deletions tests/integration/targets/rule/vars/2.1.0.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
---
checkmk_var_rules:
- name: "Filesystems (used space and growth) - Magic Factor."
ruleset: "checkgroup_parameters:filesystem"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"description": "",
"disabled": false
}
value_raw: "{'magic': 0.8}"

- name: "CPU load (not utilization!) - 15 minute load."
ruleset: "checkgroup_parameters:cpu_load"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"description": "",
"disabled": false
}
value_raw: "{'levels': (1.0, 2.0)}"

- name: "CPU utilization on Linux/UNIX - Multiple thresholds."
ruleset: "checkgroup_parameters:cpu_iowait"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"description": "",
"disabled": false
}
value_raw: "{'core_util_time': (100.0, 300, 900), 'core_util_time_total': (100.0, 300, 900)}"

- name: "Logwatch Event Console Forwarding - Multiple values."
ruleset: "checkgroup_parameters:logwatch_ec"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "",
"description": "",
"disabled": false
}
value_raw: "{'facility': 17, 'method': '', 'monitor_logfilelist': False}"

- name: "Simulating SNMP by using a stored SNMP walk - Enable."
ruleset: "usewalk_hosts"
rule:
conditions: {
"host_labels": [],
"host_tags": [
{
"key": "snmp_ds",
"operator": "is_not",
"value": "no-snmp"
}
],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"disabled": false,
}
value_raw: 'True'

- name: "Memory percentage used - Levels."
ruleset: "checkgroup_parameters:memory_percentage_used"
rule:
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "Warning at 80%\nCritical at 90%\n",
"description": "Allow higher memory usage",
"disabled": false,
"documentation_url": "https://github.com/Checkmk/ansible-collection-checkmk.general/blob/main/plugins/modules/rules.py"
}
value_raw: "{'levels': (80.0, 90.0)}"
109 changes: 109 additions & 0 deletions tests/integration/targets/rule/vars/2.2.0.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
---
checkmk_var_rules:
- name: "Filesystems (used space and growth) - Magic Factor."
ruleset: "checkgroup_parameters:filesystem"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"description": "",
"disabled": false
}
value_raw: "{'magic': 0.8}"

- name: "CPU load (not utilization!) - 15 minute load."
ruleset: "checkgroup_parameters:cpu_load"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"description": "",
"disabled": false
}
value_raw: "{'levels': (1.0, 2.0)}"

- name: "CPU utilization on Linux/UNIX - Multiple thresholds."
ruleset: "checkgroup_parameters:cpu_iowait"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"description": "",
"disabled": false
}
value_raw: "{'core_util_time': (100.0, 300, 900), 'core_util_time_total': (100.0, 300, 900)}"

- name: "Logwatch Event Console Forwarding - Multiple values."
ruleset: "checkgroup_parameters:logwatch_ec"
rule:
location:
folder: "/"
position: "bottom"
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "",
"description": "",
"disabled": false
}
value_raw: "{'facility': 17, 'method': '', 'monitor_logfilelist': False}"

- name: "Simulating SNMP by using a stored SNMP walk - Enable."
ruleset: "usewalk_hosts"
rule:
conditions: {
"host_labels": [],
"host_tags": [
{
"key": "snmp_ds",
"operator": "is_not",
"value": "no-snmp"
}
],
"service_labels": []
}
properties: {
"comment": "{{ ansible_date_time.iso8601 }} - Ansible managed",
"disabled": false,
}
value_raw: 'True'

- name: "Memory percentage used - Levels."
ruleset: "checkgroup_parameters:memory_percentage_used"
rule:
conditions: {
"host_labels": [],
"host_tags": [],
"service_labels": []
}
properties: {
"comment": "Warning at 80%\nCritical at 90%\n",
"description": "Allow higher memory usage",
"disabled": false,
"documentation_url": "https://github.com/Checkmk/ansible-collection-checkmk.general/blob/main/plugins/modules/rules.py"
}
value_raw: "{'levels': (80.0, 90.0)}"
Loading

0 comments on commit a5e5a74

Please sign in to comment.