aristanetworks / ansible-cvp

Ansible modules for Arista CloudVision
http://cvp.avd.sh
Apache License 2.0
66 stars 61 forks source link

Fix(cv_device_v3): device decommissioning fails if a device is not streaming and not provisioned #700

Closed noredistribution closed 2 months ago

noredistribution commented 3 months ago

Change Summary

Sometimes devices can go offline and be deleted from Network Provisioning,currently we only check provisioned devices when getting their facts instead of checking devices are in the inventory (that contains both provisioned and unprovisioned devices)

With this change instead of getting each device data with single gets (that's only fetching provisioned devices), I get the full inventory (both provisioned and unprovisioned devices) and then figure out the serialNumber from there and decommission that

Related Issue(s)

Fixes #657

Component(s) name

arista.cvp.cv_device_v3

Proposed changes

How to test

Pick a device that is not streaming (shutdown TerminAttr to test if you don't have one), go to Network Provisioning, right click on the device and select remove, click save and then run the below playbook

- name: Decommission device
  hosts: cv_server
  connection: local
  gather_facts: no
  vars:
    CVP_DEVICES:
      - fqdn: "leaf1"
        parentContainerName: ""

  tasks:
  - name: decommission device
    arista.cvp.cv_device_v3:
        devices: '{{CVP_DEVICES}}'
        state: absent

Checklist

User Checklist

Repository Checklist

alexeygorbunov commented 2 months ago

Tested against ATD and custom on-prem CVP (2024.1.2). Worked OK in both environments