Software Development Kit (SDK) and API Discussions

na_ontap_volume: fails to delete volume when state is set to absent

raffs
3,740 Views

na_ontap_volume faisl to delete a volume on a filer when using state: absent

 

 

i created a new 1GB test volume using the ontap CLI , to test the deletion process. ... like so ....

 

emdccn0006::> vol create -vserver emdccn0005v55dr -volume testvol_12345 -aggregate emdccn0006c02_aggr2 -size 1g -state online

 


emdccn0006::>
emdccn0006::> vol show testvol_12345
Vserver Volume Aggregate State Type Size Available Used%
--------- ------------ ------------ ---------- ---- ---------- ---------- -----
emdccn0005v55dr testvol_12345 emdccn0006c02_aggr2 online RW 1GB 972.6MB 5%

emdccn0006::>
emdccn0006::>

emdccn0006::> version
NetApp Release 9.1P16: Wed Nov 14 19:51:52 UTC 2018

emdccn0006::>

 

so filer = version 9.1P16 

 

the ansible doco for na_ontap_volume shows the following example ...

- name: Volume Delete
  na_ontap_volume:
    state: absent
    name: ansibleVolume12
    aggregate_name: ansible_aggr
    vserver: ansibleVServer
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"


 

so following on from this .....

i then created a yml file to delete the volume using ansible like so ...

$ cat delete-dr-volume.yml
---

- hosts: localhost
gather_facts: false

name: "Ansible Storage Delete ..."
tasks:

- name: "Delete Volume : testvol_12345 , if it exists ..."
na_ontap_volume:
state: absent
name: testvol_12345
aggregate_name: emdccn0006c02_aggr2
vserver: emdccn0005v55dr
hostname: emdccn0006.dc.corp.abc.com
username: admin
password: XXXXX
$

 

(cut and paste didnt quite align , noted above )


d629924@vm010$ pip show netapp-lib
Name: netapp-lib
Version: 2019.12.20
Summary: netapp-lib is required for Ansible deployments to interact with NetApp storage systems.
Home-page: UNKNOWN
Author: NetApp, Inc.
Author-email: ng-ansibleteam@netapp.com
License: Proprietary::NetApp
Location: /usr/local/lib/python3.6/site-packages
Requires: lxml, xmltodict
Required-by:
$

 

note : i'm using netapp-lib = Version: 2019.12.20

 

i get this error when running the playbook ...

 


$ ansible-playbook ./pb-delete/delete-dr-volume.yml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'


PLAY [Ansible Storage Delete ...] *******************************************************************************************************************

TASK [Delete Volume : testvol_12345 , if it exists ...] ********************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'No element by given name volume-comp-aggr-attributes.'
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/home/d629924/.ansible/tmp/ansible-tmp-1610682403.28-220492199842676/AnsiballZ_na_ontap_volume.py\", line 102, in <module>\n _ansiballz_main()\n File \"/home/d629924/.ansible/tmp/ansible-tmp-1610682403.28-220492199842676/AnsiballZ_na_ontap_volume.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/d629924/.ansible/tmp/ansible-tmp-1610682403.28-220492199842676/AnsiballZ_na_ontap_volume.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible.modules.storage.netapp.na_ontap_volume', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib64/python2.7/runpy.py\", line 176, in run_module\n fname, loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 72, in _run_code\n exec code in run_globals\n File \"/tmp/ansible_na_ontap_volume_payload_MN3wQK/ansible_na_ontap_volume_payload.zip/ansible/modules/storage/netapp/na_ontap_volume.py\", line 1283, in <module>\n File \"/tmp/ansible_na_ontap_volume_payload_MN3wQK/ansible_na_ontap_volume_payload.zip/ansible/modules/storage/netapp/na_ontap_volume.py\", line 1279, in main\n File \"/tmp/ansible_na_ontap_volume_payload_MN3wQK/ansible_na_ontap_volume_payload.zip/ansible/modules/storage/netapp/na_ontap_volume.py\", line 1221, in apply\n File \"/tmp/ansible_na_ontap_volume_payload_MN3wQK/ansible_na_ontap_volume_payload.zip/ansible/modules/storage/netapp/na_ontap_volume.py\", line 565, in get_volume\n File \"/usr/lib/python2.7/site-packages/netapp_lib/api/zapi/zapi.py\", line 489, in __getitem__\n raise KeyError('No element by given name %s.' % key)\nKeyError: 'No element by given name volume-comp-aggr-attributes.'\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

PLAY RECAP ******************************************************************************************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

$

 

the specific error is : 

 

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'No element by given name volume-comp-aggr-attributes.'

 

Can anyone assist me with my issue ? Not sure what i'm doing wrong, unless the fix is a netapp-lib upgrade ?

 

Regards Adrian

 

 

 

 

1 ACCEPTED SOLUTION

olson
3,435 Views

Hi Adrian,

 

The slack channels on https://netapp.io  is the quickest place to get help on this.  

A few points about what's going on. 

1.  You might want to consider a ONTAP upgrade to 9.5+ 

2.  I don't think you need to specify the aggregate_name in the remove command

3. You might need to unmount the volume prior to deleting it.

4. ONTAP collections have replaced the syntax your currently using which would also address points 2 and 3 above there is a blog post on netapp.io that addresses this topic. 

 

I hope this helps!

John

 

 

View solution in original post

4 REPLIES 4

olson
3,436 Views

Hi Adrian,

 

The slack channels on https://netapp.io  is the quickest place to get help on this.  

A few points about what's going on. 

1.  You might want to consider a ONTAP upgrade to 9.5+ 

2.  I don't think you need to specify the aggregate_name in the remove command

3. You might need to unmount the volume prior to deleting it.

4. ONTAP collections have replaced the syntax your currently using which would also address points 2 and 3 above there is a blog post on netapp.io that addresses this topic. 

 

I hope this helps!

John

 

 

maartendeboer
3,198 Views

I'm facing the same issue with error "No element by given name volume-comp-aggr-attributes." when running a playbook with na_ontap_volume: onto ONTAP Release 9.1P9

This happens when run the playbook for the 2nd or more time.

Is this due to the lower ONTAP-release?

ttran
2,892 Views

Hello @maartendeboer ,

 

Yes, it is due to running ONTAP 9.1P9 as composite aggregate also referred to as FabricPool wasn't introduced until ONTAP 9.2.

 

Regards,

 

Team NetApp

Team NetApp

maartendeboer
2,923 Views

Fixed by putting 

collections:
    - netapp.ontap

in playbook. 

As mentioned in https://netapp.io/2019/09/17/coming-together-nicely/

---
- hosts: localhost
  collections:    - netapp.ontap
Don't forget to do the action above this section.

 

Public