From cc5e06ec15ad091fda8f41e0be0a3a5505358f75 Mon Sep 17 00:00:00 2001 From: Steve Baroti Date: Sat, 27 Aug 2022 11:48:42 -0400 Subject: [PATCH] kvm_*: improve field names for Proxmox, Centos fixed graphing failures for VM deployed on legacy Centos 6.9 virtualization platforms (script uses the Proxmox entries), in the case of VM domain names beggining with digits (first field name character must be [a-ZA-Z_]) used "Validate field names" Python stanza from documentation ("How to write plugins", "Notes on field names") to improve the clean_vm_name function, thus munin kvm graph creation succeeded for VM with names starting with digits, like "150-121-Apache", deployed on Centos 6.9 virtualization platforms. --- plugins/libvirt/kvm_cpu | 2 +- plugins/libvirt/kvm_io | 2 +- plugins/libvirt/kvm_mem | 2 +- plugins/libvirt/kvm_net | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/libvirt/kvm_cpu b/plugins/libvirt/kvm_cpu index 3f0faab7..9df0cf7f 100755 --- a/plugins/libvirt/kvm_cpu +++ b/plugins/libvirt/kvm_cpu @@ -80,7 +80,7 @@ def clean_vm_name(vm_name): parts = vm_name.split('\x00') if parts[0].endswith('kvm'): try: - return parts[parts.index('-name') + 1] + return re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", parts[parts.index('-name') + 1]) except ValueError: pass return re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", vm_name) diff --git a/plugins/libvirt/kvm_io b/plugins/libvirt/kvm_io index 62bc6a10..09460035 100755 --- a/plugins/libvirt/kvm_io +++ b/plugins/libvirt/kvm_io @@ -79,7 +79,7 @@ def clean_vm_name(vm_name): parts = vm_name.split('\x00') if (parts[0].endswith('kvm')): try: - vm_name = parts[parts.index('-name') + 1] + vm_name = re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", parts[parts.index('-name') + 1]) except ValueError: pass return re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", vm_name) diff --git a/plugins/libvirt/kvm_mem b/plugins/libvirt/kvm_mem index 1d405fca..c6bfd97d 100755 --- a/plugins/libvirt/kvm_mem +++ b/plugins/libvirt/kvm_mem @@ -48,7 +48,7 @@ def clean_vm_name(vm_name): parts = vm_name.split('\x00') if (parts[0].endswith('kvm')): try: - return parts[parts.index('-name')+1] + return re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", parts[parts.index('-name')+1]) except ValueError: pass return re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", vm_name) diff --git a/plugins/libvirt/kvm_net b/plugins/libvirt/kvm_net index 8e9c5205..04a6e1d0 100755 --- a/plugins/libvirt/kvm_net +++ b/plugins/libvirt/kvm_net @@ -103,7 +103,7 @@ def clean_vm_name(vm_name): parts = vm_name.split('\x00') if (parts[0].endswith('kvm')): try: - return parts[parts.index('-name')+1] + return re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", parts[parts.index('-name')+1]) except ValueError: pass return re.sub(r"(^[^A-Za-z_]|[^A-Za-z0-9_])", "_", vm_name)