ansible-collections / netapp.ontap

Ansible collection to support NetApp ONTAP configuration.
https://galaxy.ansible.com/netapp/ontap
GNU General Public License v3.0
56 stars 36 forks source link

na_ontap_volume_efficiency: Unable to set the efficiency 'on' on a volume #100

Closed orb71 closed 2 years ago

orb71 commented 2 years ago

Summary

Hello,

I am unable to set on or off efficiency on a volume. It fails in na_ontap_volume_efficiency.py/get_volume_efficiency. Other settings work fine if set manually before (compression, ...)

Oli

Component Name

na_ontap_volume_efficiency

Ansible Version

ansible [core 2.12.1]
  config file = /mnt/c/Users/xxx/OneDrive/Ansible/SWDE/netapp/ansible.cfg
  configured module search path = ['/home/xxx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/xxx/.local/lib/python3.8/site-packages/ansible
  ansible collection location = /home/xxx/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.8.10 (default, Jun 22 2022, 20:18:18) [GCC 9.4.0]
  jinja version = 2.10.1
  libyaml = True

ONTAP Collection Version

# /home/xxx/.ansible/collections/ansible_collections
Collection                Version
------------------------- -------
brocade.fos               1.3.0
community.vmware          2.7.0
netapp.ontap              21.22.0
netapp_eseries.santricity 1.3.1

# /usr/lib/python3/dist-packages/ansible_collections
Collection                    Version
----------------------------- -------
amazon.aws                    2.3.0
ansible.netcommon             2.6.1
ansible.posix                 1.4.0
ansible.utils                 2.6.1
ansible.windows               1.10.0
arista.eos                    3.1.0
awx.awx                       19.4.0
azure.azcollection            1.13.0
check_point.mgmt              2.3.0
chocolatey.chocolatey         1.2.0
cisco.aci                     2.2.0
cisco.asa                     2.1.0
cisco.dnac                    6.5.0
cisco.intersight              1.0.19
cisco.ios                     2.8.1
cisco.iosxr                   2.9.0
cisco.ise                     1.2.1
cisco.meraki                  2.8.0
cisco.mso                     1.4.0
cisco.nso                     1.0.3
cisco.nxos                    2.9.1
cisco.ucs                     1.8.0
cloud.common                  2.1.2
cloudscale_ch.cloud           2.2.2
community.aws                 2.6.1
community.azure               1.1.0
community.ciscosmb            1.0.5
community.crypto              2.3.4
community.digitalocean        1.20.0
community.dns                 2.2.0
community.docker              2.6.0
community.fortios             1.0.0
community.general             4.8.3
community.google              1.0.0
community.grafana             1.5.0
community.hashi_vault         2.5.0
community.hrxxxt              1.4.0
community.kubernetes          2.0.1
community.kubevirt            1.0.0
community.libvirt             1.1.0
community.mongodb             1.4.1
community.mysql               2.3.8
community.network             3.3.0
community.okd                 2.2.0
community.postgresql          1.7.4
community.proxysql            1.4.0
community.rabbitmq            1.2.1
community.routeros            2.1.0
community.sap                 1.0.0
community.sap_libs            1.1.0
community.skydive             1.0.0
community.sops                1.2.2
community.vmware              1.18.2
community.windows             1.10.0
community.zabbix              1.7.0
containers.podman             1.9.3
cyberark.conjur               1.1.0
cyberark.pas                  1.0.14
dellemc.enterprise_sonic      1.1.1
dellemc.openmanage            4.4.0
dellemc.os10                  1.1.1
dellemc.os6                   1.0.7
dellemc.os9                   1.0.4
f5networks.f5_modules         1.17.0
fortinet.fortimanager         2.1.5
fortinet.fortios              2.1.6
frr.frr                       1.0.4
gluster.gluster               1.0.2
google.cloud                  1.0.2
hetzner.hcloud                1.6.0
hpe.nimble                    1.1.4
ibm.qradar                    1.0.3
infinidat.infinibox           1.3.3
infoblox.nios_modules         1.2.2
inspur.sm                     1.3.0
junipernetworks.junos         2.10.0
kubernetes.core               2.3.2
mellanox.onyx                 1.0.0
netapp.aws                    21.7.0
netapp.azure                  21.10.0
netapp.cloudmanager           21.18.0
netapp.elementsw              21.7.0
netapp.ontap                  21.20.0
netapp.storagegrid            21.10.0
netapp.um_info                21.8.0
netapp_eseries.santricity     1.3.0
netbox.netbox                 3.7.1
ngine_io.cloudstack           2.2.4
ngine_io.exoscale             1.0.0
ngine_io.vultr                1.1.2
openstack.cloud               1.8.0
openvswitch.openvswitch       2.1.0
ovirt.ovirt                   1.6.6
purestorage.flasharray        1.13.0
purestorage.flashblade        1.9.0
sensu.sensu_go                1.13.1
servicenow.servicenow         1.0.6
splunk.es                     1.0.2
t_systems_mms.icinga_director 1.30.0
theforeman.foreman            2.2.0
vmware.vmware_rest            2.2.0
vyos.vyos                     2.8.0
wti.remote                    1.0.4

ONTAP Version

Data ONTAP Release 9.10.1

Playbook

---
- hosts: myhost
  connection: local
  gather_facts: false
  collections:
  - netapp.ontap
  module_defaults:
    group/netapp.ontap.netapp_ontap:
      hostname: "{{ clusterip }}"
      username: "{{ user }}"
      password: "{{ pass }}"
      https: "{{ https_option }}"
      validate_certs: "{{ validate_certs_option }}"
  tasks:
  - name: Enable Volume efficiency
    tags: sis
    na_ontap_volume_efficiency:
      vserver: "{{ xxx_vmw }}"
      state: present
      path: "/vol/{{site}}_{{volname}}"

Steps to Reproduce

Expected Results

vol efficiency on -volume myVol

Actual Results

ASK [Enable Volume efficiency] **********************************************************************************************************************task path: /mnt/c/Users/xxx/OneDrive/Ansible/SWDE/netapp/20_vmw_gem_tg_cg.yml:81
<netapp> ESTABLISH LOCAL CONNECTION FOR USER: xxx
<netapp> EXEC /bin/sh -c 'echo ~xxx && sleep 0'
<netapp> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/xxx/.ansible/tmp `"&& mkdir "` echo /home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010 `" && echo ansible-tmp-1662384438.6964784-2564-29331786991010="` echo /home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010 `" ) && sleep 0'
<netapp> Attempting python interpreter discovery
<netapp> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'python3.10'"'"'; command -v '"'"'python3.9'"'"'; command -v '"'"'python3.8'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'python3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python'"'"'; echo ENDFOUND && sleep 0'
<netapp> EXEC /bin/sh -c '/usr/bin/python3.8 && sleep 0'
Using module file /home/xxx/.ansible/collections/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py
<netapp> PUT /home/xxx/.ansible/tmp/ansible-local-2558zqpk1akc/tmpi97ier4y TO /home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py
<netapp> EXEC /bin/sh -c 'chmod u+x /home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/ /home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py && sleep 0'
<netapp> EXEC /bin/sh -c '/usr/bin/python3 /home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py && sleep 0'
<netapp> EXEC /bin/sh -c 'rm -f -r /home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py", line 107, in <module>
    _ansiballz_main()
  File "/home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py", line 99, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py", line 47, in invoke_module
    runpy.run_module(mod_name='ansible_collections.netapp.ontap.plugins.modules.na_ontap_volume_efficiency', init_globals=dict(_module_fqn='ansible_collections.netapp.ontap.plugins.modules.na_ontap_volume_efficiency', _modlib_path=modlib_path),
  File "/usr/lib/python3.8/runpy.py", line 207, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.8/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py", line 656, in <module>
  File "/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py", line 652, in main
  File "/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py", line 607, in apply
  File "/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py", line 313, in get_volume_efficiency
KeyError: 'schedule'
fatal: [netapp]: FAILED! => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/xxx/.ansible/tmp/ansible-tmp-1662384438.6964784-2564-29331786991010/AnsiballZ_na_ontap_volume_efficiency.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.netapp.ontap.plugins.modules.na_ontap_volume_efficiency', init_globals=dict(_module_fqn='ansible_collections.netapp.ontap.plugins.modules.na_ontap_volume_efficiency', _modlib_path=modlib_path),\n  File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py\", line 656, in <module>\n  File \"/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py\", line 652, in main\n  File \"/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py\", line 607, in apply\n  File \"/tmp/ansible_na_ontap_volume_efficiency_payload_i651e_c4/ansible_na_ontap_volume_efficiency_payload.zip/ansible_collections/netapp/ontap/plugins/modules/na_ontap_volume_efficiency.py\", line 313, in get_volume_efficiency\nKeyError: 'schedule'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
carchi8py commented 2 years ago

This look like a bug in the module.

I've created Story 5430 for this.

carchi8py commented 2 years ago

We'll have a fix for this in 21.24.0

orb71 commented 2 years ago

Thank you! I adapt my playbook as soon it becomes available!

carchi8py commented 2 years ago

This was fixed in 21.24.0.