diff --git a/homeassistant/components/proxmoxve/button.py b/homeassistant/components/proxmoxve/button.py index 7f596a5e5c57..b5422c97a4bc 100644 --- a/homeassistant/components/proxmoxve/button.py +++ b/homeassistant/components/proxmoxve/button.py @@ -378,7 +378,7 @@ class ProxmoxVMButtonEntity(ProxmoxVMEntity, ProxmoxBaseButton): self.entity_description.press_action, self.coordinator, self._node_name, - self.vm_data["vmid"], + self.device_id, ) @@ -394,5 +394,5 @@ class ProxmoxContainerButtonEntity(ProxmoxContainerEntity, ProxmoxBaseButton): self.entity_description.press_action, self.coordinator, self._node_name, - self.container_data["vmid"], + self.device_id, ) diff --git a/homeassistant/components/proxmoxve/config_flow.py b/homeassistant/components/proxmoxve/config_flow.py index 14c4086f6a61..6a1a91b7fb20 100644 --- a/homeassistant/components/proxmoxve/config_flow.py +++ b/homeassistant/components/proxmoxve/config_flow.py @@ -161,8 +161,8 @@ def _get_nodes_data(data: dict[str, Any]) -> list[dict[str, Any]]: nodes_data.append( { CONF_NODE: node["node"], - CONF_VMS: [vm["vmid"] for vm in vms], - CONF_CONTAINERS: [container["vmid"] for container in containers], + CONF_VMS: [int(vm["vmid"]) for vm in vms], + CONF_CONTAINERS: [int(container["vmid"]) for container in containers], } ) diff --git a/homeassistant/components/proxmoxve/entity.py b/homeassistant/components/proxmoxve/entity.py index ec852040e305..2c9d80ec9255 100644 --- a/homeassistant/components/proxmoxve/entity.py +++ b/homeassistant/components/proxmoxve/entity.py @@ -129,7 +129,7 @@ class ProxmoxVMEntity(ProxmoxCoordinatorEntity): self.entity_description = entity_description self._vm_data = vm_data self._node_name = node_data.node["node"] - self.device_id = vm_data["vmid"] + self.device_id = int(vm_data["vmid"]) self.device_name = vm_data["name"] self._attr_device_info = DeviceInfo( @@ -187,7 +187,8 @@ class ProxmoxContainerEntity(ProxmoxCoordinatorEntity): self.entity_description = entity_description self._container_data = container_data self._node_name = node_data.node["node"] - self.device_id = container_data["vmid"] + # Proxmox hands out a container vmid as a string, a VM one as an int + self.device_id = int(container_data["vmid"]) self.device_name = container_data["name"] self._attr_device_info = DeviceInfo( diff --git a/tests/components/proxmoxve/conftest.py b/tests/components/proxmoxve/conftest.py index 598cc9c75b50..66e5209ccddc 100644 --- a/tests/components/proxmoxve/conftest.py +++ b/tests/components/proxmoxve/conftest.py @@ -133,8 +133,8 @@ def mock_proxmox_client(): else load_json_array_fixture("nodes/tasks.json", DOMAIN) ) - qemu_by_vmid = {vm["vmid"]: vm for vm in qemu_list} - lxc_by_vmid = {vm["vmid"]: vm for vm in lxc_list} + qemu_by_vmid = {int(vm["vmid"]): vm for vm in qemu_list} + lxc_by_vmid = {int(vm["vmid"]): vm for vm in lxc_list} # Cache resource mocks by vmid so callers (e.g. button tests) can # inspect specific call counts after pressing a button. diff --git a/tests/components/proxmoxve/fixtures/nodes/lxc.json b/tests/components/proxmoxve/fixtures/nodes/lxc.json index a5aec293a655..06f86d427288 100644 --- a/tests/components/proxmoxve/fixtures/nodes/lxc.json +++ b/tests/components/proxmoxve/fixtures/nodes/lxc.json @@ -1,6 +1,6 @@ [ { - "vmid": 200, + "vmid": "200", "name": "ct-nginx", "status": "running", "maxmem": 1073741824, @@ -14,7 +14,7 @@ "netout": 524288 }, { - "vmid": 201, + "vmid": "201", "name": "ct-backup", "status": "stopped", "maxmem": 1073741824, diff --git a/tests/components/proxmoxve/snapshots/test_diagnostics.ambr b/tests/components/proxmoxve/snapshots/test_diagnostics.ambr index 188211cc2a33..b14f3294e236 100644 --- a/tests/components/proxmoxve/snapshots/test_diagnostics.ambr +++ b/tests/components/proxmoxve/snapshots/test_diagnostics.ambr @@ -71,7 +71,7 @@ 'netout': 524288, 'status': 'running', 'uptime': 43200, - 'vmid': 200, + 'vmid': '200', }), '201': dict({ 'cpu': 0.05, @@ -85,7 +85,7 @@ 'netout': 524288, 'status': 'stopped', 'uptime': 43200, - 'vmid': 201, + 'vmid': '201', }), }), 'node': dict({