ansible-collections / netapp.ontap

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

cannot resize root aggregate #118

Closed ansibleguy76 closed 8 months ago

ansibleguy76 commented 1 year ago

Summary

When tyring to add disks to an aggregate it complaints the name already exists

Component Name

na_ontap_aggregate

Ansible Version

$ ansible --version
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current version: 3.6.8
(default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]. This feature will be removed from ansible-core in version 2.12.
Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
/usr/local/lib/python3.6/site-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.
  from cryptography.exceptions import InvalidSignature
ansible [core 2.11.12]
  config file = None
  configured module search path = ['/var/lib/awx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
  ansible collection location = /var/lib/awx/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
  jinja version = 3.0.3
  libyaml = True

ONTAP Collection Version

$ ansible-galaxy collection list
[DEPRECATION WARNING]: Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. Current version: 3.6.8
(default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]. This feature will be removed from ansible-core in version 2.12.
Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
/usr/local/lib/python3.6/site-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.
  from cryptography.exceptions import InvalidSignature

# /usr/local/lib/python3.6/site-packages/ansible_collections
Collection                    Version
----------------------------- -------
amazon.aws                    1.5.1
ansible.netcommon             2.5.0
ansible.posix                 1.3.0
ansible.utils                 2.4.3
ansible.windows               1.8.0
arista.eos                    2.2.0
awx.awx                       19.4.0
azure.azcollection            1.10.0
check_point.mgmt              2.2.0
chocolatey.chocolatey         1.1.0
cisco.aci                     2.1.0
cisco.asa                     2.1.0
cisco.intersight              1.0.18
cisco.ios                     2.6.0
cisco.iosxr                   2.6.0
cisco.meraki                  2.5.0
cisco.mso                     1.2.0
cisco.nso                     1.0.3
cisco.nxos                    2.8.2
cisco.ucs                     1.6.0
cloudscale_ch.cloud           2.2.0
community.aws                 1.5.0
community.azure               1.1.0
community.crypto              1.9.8
community.digitalocean        1.13.0
community.docker              1.10.2
community.fortios             1.0.0
community.general             3.8.3
community.google              1.0.0
community.grafana             1.3.0
community.hashi_vault         1.5.0
community.hrobot              1.2.1
community.kubernetes          1.2.1
community.kubevirt            1.0.0
community.libvirt             1.0.2
community.mongodb             1.3.2
community.mysql               2.3.2
community.network             3.0.0
community.okd                 1.1.2
community.postgresql          1.6.0
community.proxysql            1.3.0
community.rabbitmq            1.1.0
community.routeros            1.2.0
community.skydive             1.0.0
community.sops                1.2.0
community.vmware              1.17.0
community.windows             1.8.0
community.zabbix              1.5.1
containers.podman             1.9.0
cyberark.conjur               1.1.0
cyberark.pas                  1.0.13
dellemc.enterprise_sonic      1.1.0
dellemc.openmanage            3.6.0
dellemc.os10                  1.1.1
dellemc.os6                   1.0.7
dellemc.os9                   1.0.4
f5networks.f5_modules         1.13.0
fortinet.fortimanager         2.1.4
fortinet.fortios              2.1.3
frr.frr                       1.0.3
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.0
inspur.sm                     1.3.0
junipernetworks.junos         2.8.0
kubernetes.core               1.2.1
mellanox.onyx                 1.0.0
netapp.aws                    21.7.0
netapp.azure                  21.10.0
netapp.cloudmanager           21.12.1
netapp.elementsw              21.7.0
netapp.ontap                  21.14.1
netapp.um_info                21.8.0
netapp_eseries.santricity     1.2.13
netbox.netbox                 3.4.0
ngine_io.cloudstack           2.2.2
ngine_io.exoscale             1.0.0
ngine_io.vultr                1.1.0
openstack.cloud               1.5.3
openvswitch.openvswitch       2.1.0
ovirt.ovirt                   1.6.6
purestorage.flasharray        1.11.0
purestorage.flashblade        1.8.1
sensu.sensu_go                1.12.0
servicenow.servicenow         1.0.6
splunk.es                     1.0.2
t_systems_mms.icinga_director 1.26.0
theforeman.foreman            2.2.0
vyos.vyos                     2.6.0
wti.remote                    1.0.3

# /usr/share/ansible/collections/ansible_collections
Collection        Version
----------------- -------
awx.awx           21.8.0
community.general 5.8.0
community.vmware  3.1.0
netapp.ontap      21.24.1
netapp.um_info    21.8.0

ONTAP Version

sridharc-vsim34::> version
NetApp Release 9.11.1: Tue Jul 12 04:38:28 UTC 2022

Playbook

- name: Resize root aggregate
  na_ontap_aggregate:
    state: present
    nodes:
      - "{{ nodes[0].name }}"
    name: "aggr0_{{ nodes[0].name | replace('-','_') }}"
    disk_count: 6
    raid_size: 6
    raid_type: raid_dp
    <<: *auth

Steps to Reproduce

- name: Resize root aggregate
  na_ontap_aggregate:
    state: present
    nodes:
      - "{{ nodes[0].name }}"
    name: "aggr0_{{ nodes[0].name | replace('-','_') }}"
    disk_count: 6
    raid_size: 6
    raid_type: raid_dp
    <<: *auth

Expected Results

I expect the aggregate to get expanded with disks

Actual Results

{
  "msg": "Error: failed to create aggregate: calling: storage/aggregates: got {'message': 'An aggregate already uses aggr0_bb8_01 as name', 'code': '786439'}.",
  "invocation": {
    "module_args": {
      "hostname": "172.16.56.2",
      "username": "admin",
      "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
      "https": true,
      "validate_certs": false,
      "state": "present",
      "nodes": [
        "bb8-01"
      ],
      "name": "aggr0_bb8_01",
      "disk_count": 6,
      "raid_size": 6,
      "raid_type": "raid_dp",
      "use_rest": "auto",
      "feature_flags": {},
      "wait_for_online": false,
      "time_out": 100,
      "http_port": null,
      "ontapi": null,
      "cert_filepath": null,
      "key_filepath": null,
      "force_ontap_version": null,
      "disks": null,
      "disk_size": null,
      "disk_size_with_unit": null,
      "disk_class": null,
      "disk_type": null,
      "from_name": null,
      "mirror_disks": null,
      "is_mirrored": null,
      "service_state": null,
      "spare_pool": null,
      "unmount_volumes": null,
      "object_store_name": null,
      "snaplock_type": null,
      "ignore_pool_checks": null,
      "encryption": null
    }
  },
  "_ansible_no_log": false,
  "changed": false
}

bb8::system license> aggr show -fields diskcount
aggregate    diskcount
------------ ---------
aggr0_bb8_01 3
lonico commented 1 year ago

same root cause as #120 but worse. Since REST API does not know about the aggregate, we try to create it. And then, it suddenly knows about it.

We need to provide a better error reporting as a minimum.