Checkmk / ansible-collection-checkmk.general

The official Checkmk Ansible collection - brought to you by the Checkmk company.
https://galaxy.ansible.com/checkmk/general
GNU General Public License v3.0
121 stars 57 forks source link

[BUG] notification rules is not recognized by checkmk.general.rule #550

Closed alien999999999 closed 9 months ago

alien999999999 commented 9 months ago

Verify first that your issue is not already reported here. Where possible also test if the latest release and main branch are affected too. Complete all sections as described!

Describe the bug

when using rule to add a slack notification rule, it complains not to recognize notification_rules ruleset.

Component Name

Component Name: rule

Ansible Version

$ ansible --version
ansible [core 2.15.3]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.11/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.11.5 (main, Oct 25 2023, 16:19:59) [GCC 8.5.0 20210514 (Red Hat 8.5.0-20)] (/usr/bin/python3.11)
  jinja version = 3.1.2
  libyaml = True

Checkmk Version and Edition

Checkmk Raw Edition 2.2.0p21

Collection Version

$ ansible-galaxy collection list

# /root/.ansible/collections/ansible_collections
Collection                    Version
----------------------------- -------
checkmk.general               4.2.0  

# /usr/lib/python3.11/site-packages/ansible_collections
Collection                    Version
----------------------------- -------
amazon.aws                    6.3.0  
ansible.netcommon             5.1.2  
ansible.posix                 1.5.4  
ansible.utils                 2.10.3 
ansible.windows               1.14.0 
arista.eos                    6.0.1  
awx.awx                       22.6.0 
azure.azcollection            1.16.0 
check_point.mgmt              5.1.1  
chocolatey.chocolatey         1.5.1  
cisco.aci                     2.7.0  
cisco.asa                     4.0.1  
cisco.dnac                    6.7.3  
cisco.intersight              1.0.27 
cisco.ios                     4.6.1  
cisco.iosxr                   5.0.3  
cisco.ise                     2.5.14 
cisco.meraki                  2.15.3 
cisco.mso                     2.5.0  
cisco.nso                     1.0.3  
cisco.nxos                    4.4.0  
cisco.ucs                     1.10.0 
cloud.common                  2.1.4  
cloudscale_ch.cloud           2.3.1  
community.aws                 6.2.0  
community.azure               2.0.0  
community.ciscosmb            1.0.6  
community.crypto              2.15.0 
community.digitalocean        1.24.0 
community.dns                 2.6.0  
community.docker              3.4.8  
community.fortios             1.0.0  
community.general             7.3.0  
community.google              1.0.0  
community.grafana             1.5.4  
community.hashi_vault         5.0.0  
community.hrobot              1.8.1  
community.libvirt             1.2.0  
community.mongodb             1.6.1  
community.mysql               3.7.2  
community.network             5.0.0  
community.okd                 2.3.0  
community.postgresql          2.4.3  
community.proxysql            1.5.1  
community.rabbitmq            1.2.3  
community.routeros            2.9.0  
community.sap                 1.0.0  
community.sap_libs            1.4.1  
community.skydive             1.0.0  
community.sops                1.6.4  
community.vmware              3.9.0  
community.windows             1.13.0 
community.zabbix              2.1.0  
containers.podman             1.10.2 
cyberark.conjur               1.2.0  
cyberark.pas                  1.0.19 
dellemc.enterprise_sonic      2.2.0  
dellemc.openmanage            7.6.1  
dellemc.powerflex             1.7.0  
dellemc.unity                 1.7.1  
f5networks.f5_modules         1.25.1 
fortinet.fortimanager         2.2.1  
fortinet.fortios              2.3.1  
frr.frr                       2.0.2  
gluster.gluster               1.0.2  
google.cloud                  1.2.0  
grafana.grafana               2.1.5  
hetzner.hcloud                1.16.0 
hpe.nimble                    1.1.4  
ibm.qradar                    2.1.0  
ibm.spectrum_virtualize       1.12.0 
infinidat.infinibox           1.3.12 
infoblox.nios_modules         1.5.0  
inspur.ispim                  1.3.0  
inspur.sm                     2.3.0  
junipernetworks.junos         5.2.0  
kubernetes.core               2.4.0  
lowlydba.sqlserver            2.1.0  
microsoft.ad                  1.3.0  
netapp.aws                    21.7.0 
netapp.azure                  21.10.0
netapp.cloudmanager           21.22.0
netapp.elementsw              21.7.0 
netapp.ontap                  22.7.0 
netapp.storagegrid            21.11.1
netapp.um_info                21.8.0 
netapp_eseries.santricity     1.4.0  
netbox.netbox                 3.13.0 
ngine_io.cloudstack           2.3.0  
ngine_io.exoscale             1.0.0  
ngine_io.vultr                1.1.3  
openstack.cloud               2.1.0  
openvswitch.openvswitch       2.1.1  
ovirt.ovirt                   3.1.2  
purestorage.flasharray        1.20.0 
purestorage.flashblade        1.12.1 
purestorage.fusion            1.6.0  
sensu.sensu_go                1.14.0 
servicenow.servicenow         1.0.6  
splunk.es                     2.1.0  
t_systems_mms.icinga_director 1.33.1 
telekom_mms.icinga_director   1.34.1 
theforeman.foreman            3.12.0 
vmware.vmware_rest            2.3.1  
vultr.cloud                   1.8.0  
vyos.vyos                     4.1.0  
wti.remote                    1.0.5  

To Reproduce Steps to reproduce the behavior:

  1. use yaml as a task below
  2. Run your playbook
  3. See error

Expected behavior

ok [checkmk]

Actual behavior

TASK [Add Slack notification] ** fatal: [checkmk]: FAILED! => {"changed": false, "id": "", "msg": "Error calling API. HTTP code 400. Details: b'{\"title\": \"Unknown ruleset.\", \"status\": 400, \"detail\": \"The ruleset of name \'notification_rules\' is not known.\"}', "}

Minimum reproduction example

          - name: Add Slack notification
            checkmk.general.rule:
                    ruleset: notification_rules
                    rule:
                            location:
                                    folder: "/"
                            properties:
                                    description: "Slack notification"
                                    disabled: false
                            value_raw: "{
                                    'notify_plugin': ('slack', {'webhook_url': ('webhook_url', '{{ checkmk.notifications.slack }}')}),
                                    'contact_users': ['notification_slack'],
                            }"
                    server_url: "https://{{ checkmk.api_host }}/"
                    site: "{{ checkmk.site }}"
                    automation_user: "{{ checkmk.user }}"
                    automation_secret: "{{ checkmk_automation_secret }}"
                    validate_certs: false
            when: checkmk.notifications.slack is defined

Additional context

msekania commented 9 months ago

@alien999999999 ,

please check #543

alien999999999 commented 9 months ago

oh, it's a not a bug, it's a (missing) feature :-)

I see it's been worked on fairly recently, which is great; but i see some merge conflicts...

Any idea when they would be ready? is there any way for me to try and use this manually?

robin-checkmk commented 9 months ago

I am going to close this issue, as msekania already pointed to a corresponding pull request. Let's continue the discussion there.