You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2023-01-09 17:25:56

krstzf
Member
Registered: 2023-01-09
Posts: 6

Accélérer la suppression des logiciels [résolu par contournement]

Bonjour,

Je viens de prendre le contrôle d'un GLPI un peu à l'abandon. Il a 12 ans et n'avait pas eu de MAJ depuis 2017. J'ai maintenant une instance de test mise à jour en 10.0.5 et  je cherche à faire du ménage. Il y a plus de 185 000 logiciels sur cette instance ; je voudrais tous les supprimer. (puis installer un dictionnaire de logiciels et ne remonter que ce qui m'intéresse vraiment, ceci sera peut-être pour une autre question.)

Voilà mon code (simplifié) actuellement, pour les détruire par paquet de 100

#! /usr/bin/env python3
import glpi_api

glpi=glpi_api.GLPI('https://monglpi/apirest.php', None, 'ma clé d'api utilisateur....')
all=glpi.get_all_items('Software', range='0-400000', is_deleted=False, get_hateoas=False)
step=100
n=0
max=len(all)
while n < max:
      ids=list(map(lambda x: {'id': x['id']}, all[n:n+step]))
      glpi.delete('Software', *ids , force_purge=True)
      n+=step

La variante suivante n'est pas plus rapide...

...
step=100
while True:
  all=glpi.get_all_items('Software', range='0-199', is_deleted=False, get_hateoas=False)
  max=len(all)
  if max < 1:
    break
  n=0
  while n < max:
      ids=list(map(lambda x: {'id': x['id']}, all[n:n+step]))
      glpi.delete('Software', *ids , force_purge=True)
      n+=step

Le problème est que cette procédure dure des heures, véritablement. Si tout se passe bien, la suppression se fera en plus de 7 heures. or c'est une instance de test et je devrai refaire la même chose lors du passage en prod de l'instance actuelle qui continue de vivre sa vie pour le moment.

Est-il possible d'accélérer le traitement ? Si oui, comment ?
Est-il possible de taper directement dans la base SQL et comment ? (oui c'est le mal absolu, mais parfois...)

Christophe

Last edited by krstzf (2023-01-13 10:55:50)

Offline

#2 2023-01-12 09:19:38

mchuche
Member
Registered: 2017-02-27
Posts: 39

Re: Accélérer la suppression des logiciels [résolu par contournement]

Bonjour,

Il me semble qu'il y a des lignes de commande pour faire le ménage :

https://glpi-user-documentation.readthe … ansoftware

Offline

#3 2023-01-13 10:52:18

krstzf
Member
Registered: 2023-01-09
Posts: 6

Re: Accélérer la suppression des logiciels [résolu par contournement]

Bonjour,

Merci pour la suggestion. Malheureusement, cette commande n'est destinée qu'à remettre un peu d'ordre lorsqu'il y a des incohérences, elle ne supprime pas tous les logiciels.

J'ai fait quelques tests, et finalement le plus simple pour moi a été le plus sale également. Taper directement dans la base de données.

begin;
truncate glpi_softwares;
truncate glpi_softwarecategories;
truncate glpi_softwarelicenses;
truncate glpi_softwareversions;
commit;

Offline

Board footer

Powered by FluxBB