Skip to content

vmware_guest_controller is not idempotent #2331

Open
@markatdxb

Description

@markatdxb
SUMMARY

simple playbook to add additional Para controller to the existing VM
i specify controller number in my playbook
yet in subsequent run this number gets ignored and another controller with higher number gets created

ISSUE TYPE
  • Bug Report
COMPONENT NAME

community.vmware.vmware_guest_controller

ANSIBLE VERSION
2.16.13
COLLECTION VERSION
4.7.1
CONFIGURATION

OS / ENVIRONMENT

VMware VCS 8

STEPS TO REPRODUCE

simple playbook to add controller

- name: Add additional VM controller
  community.vmware.vmware_guest_controller:
    moid: "{{ vm_moid }}"
    controllers:
      - state: present
        type: paravirtual
        controller_number: 1
  delegate_to: localhost
  vars:
    ansible_connection: local
EXPECTED RESULTS

first time add controller number 1, on second and another run confirm the settings

ACTUAL RESULTS

one subsequent run creates another controller - doesnt obey the module variables

first run results:
{
    "changed": true,
    "disk_controller_data": {
        "scsi": {
            "0": {
                "controller_summary": "VMware paravirtual SCSI",
                "controller_label": "SCSI controller 0",
                "controller_busnumber": 0,
                "controller_controllerkey": 100,
                "controller_devicekey": 1000,
                "controller_unitnumber": 3,
                "controller_disks_devicekey": [
                    2000,
                    2001
                ],
                "controller_bus_sharing": "noSharing"
            },
            "1": {
                "controller_summary": "VMware paravirtual SCSI",
                "controller_label": "SCSI controller 1",
                "controller_busnumber": 1,
                "controller_controllerkey": 100,
                "controller_devicekey": 1001,
                "controller_unitnumber": 4,
                "controller_disks_devicekey": [],
                "controller_bus_sharing": "noSharing"
            }
        },
        "sata": {
            "0": {
                "controller_summary": "AHCI",
                "controller_label": "SATA controller 0",
                "controller_busnumber": 0,
                "controller_controllerkey": 100,
                "controller_devicekey": 15000,
                "controller_unitnumber": 24,
                "controller_disks_devicekey": [
                    16000
                ]
            }
        },
        "nvme": {},
        "usb2": {},
        "usb3": {
            "0": {
                "controller_summary": "USB xHCI controller",
                "controller_label": "USB xHCI controller ",
                "controller_busnumber": 0,
                "controller_controllerkey": 100,
                "controller_devicekey": 14000,
                "controller_unitnumber": 23,
                "controller_disks_devicekey": []
            }
        }
    },
    "invocation": {
        "module_args": {
            "moid": "vm-6205862",
            "controllers": [
                {
                    "state": "present",
                    "type": "paravirtual",
                    "controller_number": 1,
                    "bus_sharing": "noSharing"
                }
            ],
            "hostname": "",
            "username": "",
            "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "validate_certs": false,
            "port": 443,
            "datacenter": "ha-datacenter",
            "use_instance_uuid": false,
            "gather_disk_controller_facts": false,
            "sleep_time": 10,
            "proxy_host": null,
            "proxy_port": null,
            "name": null,
            "uuid": null,
            "folder": null
        }
    },
    "_ansible_no_log": false,
    "_ansible_delegated_vars": {
        "ansible_host": "localhost",
        "ansible_port": null,
        "ansible_user": "{{ }}",
        "ansible_connection": "local"
    }
}

-------------------------------------------------------------------------
second run:
{
    "changed": true,
    "disk_controller_data": {
        "scsi": {
            "0": {
                "controller_summary": "VMware paravirtual SCSI",
                "controller_label": "SCSI controller 0",
                "controller_busnumber": 0,
                "controller_controllerkey": 100,
                "controller_devicekey": 1000,
                "controller_unitnumber": 3,
                "controller_disks_devicekey": [
                    2000,
                    2001
                ],
                "controller_bus_sharing": "noSharing"
            },
            "1": {
                "controller_summary": "VMware paravirtual SCSI",
                "controller_label": "SCSI controller 1",
                "controller_busnumber": 1,
                "controller_controllerkey": 100,
                "controller_devicekey": 1001,
                "controller_unitnumber": 4,
                "controller_disks_devicekey": [],
                "controller_bus_sharing": "noSharing"
            },
            "2": {
                "controller_summary": "VMware paravirtual SCSI",
                "controller_label": "SCSI controller 2",
                "controller_busnumber": 2,
                "controller_controllerkey": 100,
                "controller_devicekey": 1002,
                "controller_unitnumber": 5,
                "controller_disks_devicekey": [],
                "controller_bus_sharing": "noSharing"
            }
        },
        "sata": {
            "0": {
                "controller_summary": "AHCI",
                "controller_label": "SATA controller 0",
                "controller_busnumber": 0,
                "controller_controllerkey": 100,
                "controller_devicekey": 15000,
                "controller_unitnumber": 24,
                "controller_disks_devicekey": [
                    16000
                ]
            }
        },
        "nvme": {},
        "usb2": {},
        "usb3": {
            "0": {
                "controller_summary": "USB xHCI controller",
                "controller_label": "USB xHCI controller ",
                "controller_busnumber": 0,
                "controller_controllerkey": 100,
                "controller_devicekey": 14000,
                "controller_unitnumber": 23,
                "controller_disks_devicekey": []
            }
        }
    },
    "invocation": {
        "module_args": {
            "moid": "vm-6205862",
            "controllers": [
                {
                    "state": "present",
                    "type": "paravirtual",
                    "controller_number": 2,
                    "bus_sharing": "noSharing"
                }
            ],
            "hostname": "",
            "username": "",
            "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "validate_certs": false,
            "port": 443,
            "datacenter": "ha-datacenter",
            "use_instance_uuid": false,
            "gather_disk_controller_facts": false,
            "sleep_time": 10,
            "proxy_host": null,
            "proxy_port": null,
            "name": null,
            "uuid": null,
            "folder": null
        }
    },
    "_ansible_no_log": false,
    "_ansible_delegated_vars": {
        "ansible_host": "localhost",
        "ansible_port": null,
        "ansible_user": "{{ }}",
        "ansible_connection": "local"
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions