Il doit être possible d'importer des matériels depuis plusieurs serveurs OCS, dans la même instance de GLPI.

Voir ticket : #790

Fonctionnement

Pouvoir renseigner plusieurs serveurs OCS, afin de faire de GLPI un agrégateur de données OCS.
Lors de l'import depuis OCS, on devra désormais choisir sur quel serveur on veut travailler.

Modifications à apporter

  • Ajouter un champs ocs_server_id dans glpi_ocs_link.
  • ajouter is_tpl, tplname et date_mod pour la gestion des gabarits
  • enregistrer les nouveaux serveurs dans glpi_ocs_config

Mise en place d'une notion de gabarit (comme pour les ordis) afin de ne pas avoir à redéfinir tous les champs d'imports OCS à chaque ajout d'un serveur : en effet, on aura sûrement (mais pas forcément) la même conf pour tous les serveurs OCS (ou une grande partie).

Gestion des connexions à la base

Il y a 2 possibilités pour gérer les connexions aux serveurs OCS :
  • créer un pool de connexion, qui serait initialisé dans includes.php (en lieu et place de l'initialisation de $DBocs)
  • continuer à gérer une seule connexion OCS via $DBocs, et initialiser une connexion sur la base OCS seulement quand on en a besoin (dès qu'on veut resynchroniser, on regarde sur quelle base pointe DBocs, si ce n'est pas la bonne, on ferme la connexion et on réinitialise sur une autre)

Il semble plus simple à gérer une seule connexion à la fois.

--> en fait ça pose un soucis, car on peut avoir plusieurs actions simultanées sur plusieurs bases en même temps :
  • connnexion dans la partie administration de GLPI (modification par ex des infos de connexion à une base OCS)
  • script cron qui tourne sur un serveur
  • import ou synchro de machines depuis OCS
    Dans ce cas, il faut voir à, pourquoi pas, gérer un tableau d'object $DBocs. $DBocsr1 stocke la connexion à la première base, et ainsi de suite.

Modification de la cron

Il faudra modifier la cron pour qu'elle puisse se base sur n serveurs OCS :
  • tirer un serveur OCS aléatoirement afin de le mettre à jour. Si la connexion courante n'est pas celle du serveur tiré, la fermer et la réinitialiser

Modificiation des scripts

Les scripts devront être modifiés : l'id du serveur OCS devra être passé en plus comme paramètre afin de pouvoir indiquer depuis quel serveur on met à jour GLPI

Moteur de recherche

Ajouter au moteur de recherche un champs "Serveur OCS" pour pouvoir rechercher toutes les machines d'un serveur précis

questions aux développeurs

?) lier le choix d'une base ocs a la notion d'entité , cela évite d'avoir a remanier des données dans les bases OCS . (cas ou les gens qui gèrent OCS ne sont pas les mêmes que ceux qui gèrent GLPI).