You are not logged in.
Bonjour,
j'ai mis en place un dictionnaire de règle pour les types d'ordinateurs. Pour m'assurer de pouvoir rejouer le dictionnaire sans problème, j'ai créé en tant que règle l'ensemble des types que l'on souhaite garder (même ceux qu'on renseigne à la main comme les terminaux légers) et en dernier j'ai "Autres types d'ordinateurs" (pour tout ce qui n'aurait pas été recensé par les précédentes règles).
On a donc :
- Terminal léger : création manuelle
- SAN : création manuelle
- Serveur physique : création manuelle ou remontée auto de OCS = type contient "Main System Chassis"
- Machine virtuelle : remontée auto de OCS = type contient "Virtual Machine"
- PC : remontée auto de OCS = type contient "Desktop" OU "Mini tower" OU "Tower"
- Portable : remontée auto de OCS = type contient "Laptop" OU "Notebook" OU "Docking station" OU "Portable"
- Autres types d'ordinateurs : remontée auto de OCS pour tous les autres types = regex vérifie "./"
Cette règle étant en dernier, elle récupère tout ce qui n'est passé dans les autres. Lors du test unitaire de cette règle elle fonctionne bien, le test du moteur de règles donne également les résultats attendus.
Par contre, quand je fais "Rejouer le dictionnaire" pour balayer tout ce qui est déjà remonté, tout ce qui est vérifié par cette dernière règle est mis à blanc (Type : ---). j'ai d'abord pensé qu'il fallait créer au préalable le type "Autres types d'ordinateurs" pour qu'il le trouve au moment de l'affectation à un ordinateur, mais ça n'a rien changé, et mon nouveau type a même été effacé une fois le dictionnaire rejoué !
Autre test réalisé (sur une base de tests) : j'ai laissé seulement la dernière règle, j'ai rejoué le dictionnaire, et tous mes ordinateurs ont perdu leur type, et tous les types existants auparavant ont été supprimés ..
NB : si j'enlève cette règle de ma liste, tout fonctionne correctement, sauf que le regroupement des mes autres types remontés en auto ne se fait pas. Il semble donc que seule la dernière règle pose problème.
Bug ou mauvaise utilisation ?
Merci d'avance
Mikaël
Last edited by Mikey (2009-09-22 09:39:35)
Ubuntu 9.04 (jaunty) - sous VMWare
GNOME 2.26.1
Apache 2.2.11 - MySQL 5.0.75 - PHP 5.2.6
GLPI 0.72.1 / OCS Inventory NG 1.02
Offline
Je crois avoir un semblant de réponse.
Le problème n'est pas sur le test de la règle, mais sur l'affectation de la valeur "Autres types d'ordinateurs" à "Type".
Si j'affecte la valeur "Autre" au lieu de "Autres types d'ordinateurs", ça fonctionne.
Bug lié à la longueur de la chaîne de caractères, ou au caractère ' (apostrophe) ? En tout cas, pas de problème si on crée manuellement ce type, il est bien pris en compte.
Mikaël
Ubuntu 9.04 (jaunty) - sous VMWare
GNOME 2.26.1
Apache 2.2.11 - MySQL 5.0.75 - PHP 5.2.6
GLPI 0.72.1 / OCS Inventory NG 1.02
Offline
Apparemment c'est bien l'apostrophe qui crée ce dysfonctionnement. J'ai essayé avec une chaîne longue et ça fonctionne très bien.
J'ai également essayé avec une chaîne contenant un accent et c'est OK.
Reste un problème : si un type n'est pas renseigné (à vide), il n'est pas mise à jour par le dictionnaire. Par contre si je teste la chaîne vide ma dernière règle est bien validée. J'ai ajouté le critère suivant à ma règle (avec opérateur logique OU) mais ça ne change rien (test de chaîne vide) :
Type regex vérifie "/^"
Comment faire ?
Last edited by Mikey (2009-09-22 10:14:20)
Ubuntu 9.04 (jaunty) - sous VMWare
GNOME 2.26.1
Apache 2.2.11 - MySQL 5.0.75 - PHP 5.2.6
GLPI 0.72.1 / OCS Inventory NG 1.02
Offline
> Apparemment c'est bien l'apostrophe
Il faudrait tester avec la dernière version, il y a eu une correction sur le problème d'apostrophe dans le moteur de règle
Sinon il faut se mettre en mode Debug et récupérer les traces (sql-errors.log) pour voir où ça pète exactement.
Pour le test de chaine vide, c'est /^$/ (/^/ sera vérifié par "toutes" les valeurs, vides ou non)
+
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
J'ai testé avec
type Regex vérifie "/^$/"
J'ai relancé mais ça n'a rien donné.
De toute façon, la règle
type Regex vérifie ".*"
doit me donner la chaîne vide également puisque * signifie 0 ou n fois
Donc je suis passé en mode debug. J'ai rejoué le dictionnaire, mais aucune ligne en rouge sur l'écran debug, et aucun fichier sql-errors.log sous glpi/files/_log...
Une autre idée ?
Merci
Mikaël
Il semble que ma règle ne fasse donc pas planter
Last edited by Mikey (2009-10-02 09:40:55)
Ubuntu 9.04 (jaunty) - sous VMWare
GNOME 2.26.1
Apache 2.2.11 - MySQL 5.0.75 - PHP 5.2.6
GLPI 0.72.1 / OCS Inventory NG 1.02
Offline