D'abord, il y a un bug: on ne passe jamais dans le "elif"...
Ensuite, à supposer qu'on y passe, il reste un problème sémantique avec la gestion des niveaux d'erreur.
La version que j'ai proposée marche avec 2 états (OK, pas_OK), mais ne marche pas bien avec 3.
En effet, si plusieurs vdisk fonctionnent mal, le statut du dernier en dysfonctionnement écrase les précédents.
Par exemple: vdisk1 positionne STATE à CRITIQUE, puis vdisk2 positionne STATE à WARNING.
Ce n'est probablement pas ce que tu veux...