Project

General

Profile

Fonctionnalité #17809

Contrôle d'exhaustivité

Added by Cyril VAZQUEZ over 1 year ago. Updated 2 months ago.

Status:
Clôturée
Priority:
2-Sérieux
Assignee:
Charlotte Bataille
Target version:
Start date:
Due date:
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 KB) ecran1.png Écran contenus stockés invalides Charlotte Bataille, 02/21/2022 11:16 AM
journal-echec-timeout.png (87.5 KB) journal-echec-timeout.png Détail événement généré en cas d'erreur de dépassement de délai Charlotte Bataille, 02/21/2022 11:16 AM
journal-succes.png (79.8 KB) journal-succes.png Détail événement généré en cas de succès Charlotte Bataille, 02/21/2022 12:19 PM
journal-application.png (51 KB) journal-application.png Événement généré dans le journal de l'application Charlotte Bataille, 02/21/2022 02:37 PM
10920
10922
10924
10925

History

#1 Updated by Emmanuel DILLARD over 1 year ago

  • Status changed from A traiter to A étudier
  • Target version set to 281

#2 Updated by Cyril VAZQUEZ about 1 year ago

  • Target version changed from 281 to Inscription Backlog

#3 Updated by Cyril VAZQUEZ 11 months ago

  • Target version changed from Inscription Backlog to 2.8

#4 Updated by Cyril VAZQUEZ 11 months ago

  • Target version changed from 2.8 to 2.8.2

#5 Updated by Cyril VAZQUEZ 11 months ago

  • Target version changed from 2.8.2 to 3.0

#6 Updated by Cyril VAZQUEZ 10 months ago

  • Status changed from A étudier to Prêt à embarquer

#8 Updated by Cyril VAZQUEZ 10 months ago

  • Status changed from Prêt à embarquer to En cours de dev (S)

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 Updated by Charlotte Bataille 9 months ago

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 Updated by Charlotte Bataille 9 months ago

  • File deleted (journal-succes.png)

#11 Updated by Charlotte Bataille 9 months ago

10924

#12 Updated by Charlotte Bataille 9 months ago

  • Status changed from En cours de dev (S) to A tester (S)

#13 Updated by Charlotte Bataille 9 months ago

10925

#14 Updated by Cyril VAZQUEZ 8 months ago

  • Target version changed from 3.0 to 2.9

#15 Updated by Cyril VAZQUEZ 7 months ago

  • Status changed from A tester (S) to A revoir (S)
  • Assignee changed from Cyril VAZQUEZ to Charlotte Bataille

Revoir timeout de traitement

#16 Updated by Charlotte Bataille 7 months ago

  • Status changed from A revoir (S) to A tester (S)

#17 Updated by Cyril VAZQUEZ 2 months ago

  • Status changed from A tester (S) to Clôturée

Also available in: Atom PDF