Projet

Général

Profil

Fonctionnalité #17809

Contrôle d'exhaustivité

Ajouté par Cyril VAZQUEZ il y a plus de 2 ans. Mis à jour il y a plus d'un an.

Statut:
Clôturé
Priorité:
2-Sérieux
Assigné à:
Charlotte Bataille
Version cible:
Début:
Echéance:
Tags RM:

Description

En tant que SA, je veux vérifier le présence de l'intégralité des ressources numériques sur les supports afin de détecter quotidiennement les éventuelles altérations ou suppression.

Le contrôle d'intégrité utilise un stratégie de décomposition du fonds dans le temps et d'échantillonnage, il n'est donc pas réalisé sur l'ensemble du fonds quotidiennement ce qui serait impossible.

Le besoin est de contrôler quotidiennement que toutes les données prévues sont bien présentes sur les supports, par des moyens simples :
- la taille totale par rapport à la taille totale versée moins la taille totale détruite (stats, voir https://forge.maarch.org/issues/#10493)
- la présence de chaque fichier à la bonne taille à l'adresse indiquée

Un découpage pourra être réalisé par service producteur ou organisme, par profil, etc, mais l'objectif est que le processus valide l'exhaustivité du fonds quotidiennement donc il doit être rapide et performant, même sur des fonds de taille importante.

ecran1.png (64,6 ko) ecran1.png Écran contenus stockés invalides Charlotte Bataille, 21/02/2022 11:16
journal-echec-timeout.png (87,5 ko) journal-echec-timeout.png Détail événement généré en cas d'erreur de dépassement de délai Charlotte Bataille, 21/02/2022 11:16
journal-succes.png (79,8 ko) journal-succes.png Détail événement généré en cas de succès Charlotte Bataille, 21/02/2022 12:19
journal-application.png (51 ko) journal-application.png Événement généré dans le journal de l'application Charlotte Bataille, 21/02/2022 14:37
10920
10922
10924
10925

Historique

#1 Mis à jour par Emmanuel DILLARD il y a plus de 2 ans

  • Statut changé de A traiter à R&D - A étudier
  • Version cible mis à 281

#2 Mis à jour par Cyril VAZQUEZ il y a plus de 2 ans

  • Version cible changé de 281 à Inscription Backlog

#3 Mis à jour par Cyril VAZQUEZ il y a environ 2 ans

  • Version cible changé de Inscription Backlog à 2.8

#4 Mis à jour par Cyril VAZQUEZ il y a environ 2 ans

  • Version cible changé de 2.8 à 2.8.2

#5 Mis à jour par Cyril VAZQUEZ il y a environ 2 ans

  • Version cible changé de 2.8.2 à 3.0

#6 Mis à jour par Cyril VAZQUEZ il y a environ 2 ans

  • Statut changé de R&D - A étudier à R&D - A planifier

#8 Mis à jour par Cyril VAZQUEZ il y a environ 2 ans

  • Statut changé de R&D - A planifier à R&D - En cours

A faire:

Evénément global recordsManagement/completenessCheck
- rattacher sur archive "system"
- inscrire date de création et dernier resId
- inscrire nombre testé et nombre d'erreurs

Processus en cas de ressource non trouvée
(- inscrire événement recordsManagement/integrityCheck avec résultat faux sur archiveId de la ressource ?)
- marquer l'adresse avec integrityCheckResult = false

Livrer une nouvelle tâche planifiée
- config pour mise à disponibilité
- data sql pour planification par défaut
- attention aux retours de la fonction pour obtenir un rapport simplifié pour la tâche (voir événement global cf contrôle d'intégrité)

Vérifier traduction pour l'écran de recherche des événements du cycle de vie

Brancher la fonction de listage des adresses de ressource en erreur (flawedAddresses) et le contrôle d'intégrité depuis l'écran
- modifier les données de base pour rôle "Archiviste"
- menu ? Stockage -> Contenus stockés invalides (intégrité ou présence)
- tester avec restauration du fichier et contrôle lancé depuis l'écran : ligne disparaît, nouvel événement pour l'archive

Documenter !!!

#9 Mis à jour par Charlotte Bataille il y a environ 2 ans

10920
10922

Branche à tester : feat/17809_completeness_test

Profil : archiviste

Pré-requis

  • Attribuez le privilège Administration technique > Gérer le stockage
  • Exécutez le script data/maarchRM/sql/pgsql/migrationV2.8_V3.sql

Route à tester

GET /digitalResource/digitalResource/completeness?[Parameters]

[Parameters]
- samplingFrequency (integer) : fréquence de contrôle en jours
- timeout (integer) : délai maximal de contrôle en secondes

Exemple

http://maarchrm/digitalResource/digitalResource/completeness?samplingFrequency=70&timeout=60

Retour (code HTTP 200)

La requête ne retourne pas d'informations et un événement de type Contrôle d'exhaustivité des ressources est généré dans le journal du cycle de vie de l'archive. (cf. fichier joint journal-succes.png pour le détail de l'événement généré)

Cas d'erreur
En cas d'erreur de dépassement de délai de contrôle, le détail de l'événement généré comprend le délai ainsi qu'un message d'erreur. (cf. fichier joint journal-echec.png pour le détail de l'événement généré)
Si une ressource est invalide, l'attribut integrityCheckResult de son adresse est à false et elle est visible dans l'écran Contenus stockés invalides.

Planificateur
Le contrôle d'exhaustivité peut aussi être exécuté depuis le planificateur de tâches. Dans ce cas, un événement est généré dans le journal de l'application. (cf. fichier joint journal-application.png pour le détail de l'événement généré)

Ecran à tester

http://maarchrm/flawedAddresses

accessible depuis le menu Gestion du stockage > Contenus stockés invalides

Retour attendu
(cf. fichier joint ecran1.png)

L'écran liste les différentes ressources numériques pour lesquelles le contrôle d'intégrité ou d'exhaustivité a échoué.
Pour chaque ressource, il est possible d'effectuer de nouveau un contrôle d'intégrité afin de rétablir sa validité.
Pour ce faire, cliquez sur le bouton Vérifier l'intégrité à droite d'une adresse.
Un message d'erreur s'affiche si la ressource n'est pas rétablie.
Sinon, la ressource disparaît de l'écran et un événement de type Validation d'intégrité est généré dans le journal du cycle de vie de l'archive.

#10 Mis à jour par Charlotte Bataille il y a environ 2 ans

  • Fichier journal-succes.png supprimé

#11 Mis à jour par Charlotte Bataille il y a environ 2 ans

10924

#12 Mis à jour par Charlotte Bataille il y a environ 2 ans

  • Statut changé de R&D - En cours à R&D - En test

#13 Mis à jour par Charlotte Bataille il y a environ 2 ans

10925

#14 Mis à jour par Cyril VAZQUEZ il y a presque 2 ans

  • Version cible changé de 3.0 à 2.9

#15 Mis à jour par Cyril VAZQUEZ il y a presque 2 ans

  • Statut changé de R&D - En test à A revoir (S)
  • Assigné à changé de Cyril VAZQUEZ à Charlotte Bataille

Revoir timeout de traitement

#16 Mis à jour par Charlotte Bataille il y a presque 2 ans

  • Statut changé de A revoir (S) à R&D - En test

#17 Mis à jour par Cyril VAZQUEZ il y a plus d'un an

  • Statut changé de R&D - En test à Clôturé

Formats disponibles : Atom PDF