Project

General

Profile

Actions

Fonctionnalité #17809

closed

Contrôle d'exhaustivité

Added by Cyril VAZQUEZ over 3 years ago. Updated about 2 years ago.

Status:
Clôturé
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.


Files

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
Actions #1

Updated by Emmanuel DILLARD over 3 years ago

  • Status changed from A traiter to R&D - A étudier
  • Target version set to 281
Actions #2

Updated by Cyril VAZQUEZ about 3 years ago

  • Target version changed from 281 to Inscription Backlog
Actions #3

Updated by Cyril VAZQUEZ almost 3 years ago

  • Target version changed from Inscription Backlog to 2.8
Actions #4

Updated by Cyril VAZQUEZ almost 3 years ago

  • Target version changed from 2.8 to 2.8.2
Actions #5

Updated by Cyril VAZQUEZ almost 3 years ago

  • Target version changed from 2.8.2 to 3.0
Actions #6

Updated by Cyril VAZQUEZ almost 3 years ago

  • Status changed from R&D - A étudier to R&D - A planifier
Actions #8

Updated by Cyril VAZQUEZ almost 3 years ago

  • Status changed from R&D - A planifier to 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 !!!

Updated by Charlotte Bataille almost 3 years ago

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.

Actions #10

Updated by Charlotte Bataille almost 3 years ago

  • File deleted (journal-succes.png)
Actions #11

Updated by Charlotte Bataille almost 3 years ago

Actions #12

Updated by Charlotte Bataille almost 3 years ago

  • Status changed from R&D - En cours to R&D - En test
Actions #13

Updated by Charlotte Bataille almost 3 years ago

Actions #14

Updated by Cyril VAZQUEZ over 2 years ago

  • Target version changed from 3.0 to 2.9
Actions #15

Updated by Cyril VAZQUEZ over 2 years ago

  • Status changed from R&D - En test to A revoir (S)
  • Assignee changed from Cyril VAZQUEZ to Charlotte Bataille

Revoir timeout de traitement

Actions #16

Updated by Charlotte Bataille over 2 years ago

  • Status changed from A revoir (S) to R&D - En test
Actions #17

Updated by Cyril VAZQUEZ about 2 years ago

  • Status changed from R&D - En test to Clôturé
Actions

Also available in: Atom PDF