Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supprime le dossier d'un contenu au dernier moment lors d'une mise à jour #6509

Merged

Conversation

philippemilink
Copy link
Member

Si le scénario suivant se produit :

  • on renomme un contenu déjà publié
  • on publie le contenu renommé
  • le dossier contenant tous les exports (notamment HTML) est supprimé
  • le slug de la version publique existante change, donc on met en place une redirection et on dit à ElasticSearch d'oublier cette version
  • cependant, ElasticSearch lève une exception qui n'est pas rattrapée On se retrouve alors avec une version publique du contenu correspondant à l'ancienne version (donc rien n'a changé pour la version publique), mais le dossier contenant les exports de cette version a tout de même été supprimé ! Cela cause des erreurs pour voir le contenu et toutes les pages qui listent la version publique du contenu (e.g. la page des contenus, la page de profil de l'auteur, la page d'accueil si le contenu était mis en avant).

Il faut donc supprimer le dossier des exports au dernier moment, ce que fait ce commit.

J'en profite aussi pour simplifier ce que retourne la fonction update_existing_publication().

Contrôle qualité

  1. Commencer par simuler que ElasticSearch lève une exception au mauvais moment en ajoutant
    raise Exception()
    juste avant delete_published_content_in_elasticsearch()
  2. Se connecter en tant que user1
  3. Créer un billet, le publier. Tout fonctionne bien : la publication, la consultation du billet, les pages qui listent la version publique du billet
  4. Changer le titre du billet, de façon à ce que changement modifie le slug du billet
  5. Publier
  6. Une erreur se produit, c'est l'exception qu'on vient de rajouter
  7. Revenir sur la page d'accueil de ZdS, la mise à jour du billet n'a pas été publiée, mais tout fonctionne toujours bien (cf étape 3)
  8. Enlever l'exception
  9. Publier à nouveau le billet : tout fonctionne toujours bien (cf étape 3) et le titre de la version publique du billet a bien été mise à jour.

…jour

Si le scénario suivant se produit :
- on renomme un contenu déjà publié
- on publie le contenu renommé
- le dossier contenant tous les exports (notamment HTML) est supprimé
- le slug de la version publique existante change, donc on met en place
  une redirection et on dit à ElasticSearch d'oublier cette version
- cependant, ElasticSearch lève une exception qui n'est pas rattrapée
On se retrouve alors avec une version publique du contenu correspondant
à l'ancienne version (donc rien n'a changé pour la version publique), mais
le dossier contenant les exports de cette version a tout de même été
supprimé ! Cela cause des erreurs pour voir le contenu et toutes les pages
qui listent la version publique du contenu (e.g. la page des contenus, la
page de profil de l'auteur, la page d'accueil si le contenu était mis en
avant).

Il faut donc supprimer le dossier des exports au dernier moment, ce que
fait ce commit.
@coveralls
Copy link

Coverage Status

coverage: 88.388% (+0.001%) from 88.387% when pulling 0653750 on philippemilink:remove-folder-after-remove-in-es into 939746c on zestedesavoir:dev.

Copy link
Contributor

@Arnaud-D Arnaud-D left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QA OK ✔️

@Arnaud-D Arnaud-D merged commit 3460554 into zestedesavoir:dev Jun 18, 2023
@philippemilink philippemilink deleted the remove-folder-after-remove-in-es branch June 18, 2023 09:51
Migwel pushed a commit to Migwel/zds-site that referenced this pull request Sep 12, 2023
…jour (zestedesavoir#6509)

Si le scénario suivant se produit :
- on renomme un contenu déjà publié
- on publie le contenu renommé
- le dossier contenant tous les exports (notamment HTML) est supprimé
- le slug de la version publique existante change, donc on met en place
  une redirection et on dit à ElasticSearch d'oublier cette version
- cependant, ElasticSearch lève une exception qui n'est pas rattrapée
On se retrouve alors avec une version publique du contenu correspondant
à l'ancienne version (donc rien n'a changé pour la version publique), mais
le dossier contenant les exports de cette version a tout de même été
supprimé ! Cela cause des erreurs pour voir le contenu et toutes les pages
qui listent la version publique du contenu (e.g. la page des contenus, la
page de profil de l'auteur, la page d'accueil si le contenu était mis en
avant).

Il faut donc supprimer le dossier des exports au dernier moment, ce que
fait ce commit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants