# App Manager

L'App Manager est un utilitaire permettant de gérer la maintenance des différents applicatifs myfab installés ou à installer sur le serveur.

# Présentation de l'App Manager

#### 1. Préambule

L'App Manager permet de gérer l'installation et la mise à jour des applications myfab et Open-Prod. Initialement, toute cette gestion se faisait au travers de commandes spécifiques décrites par **myhelp**. De son côté, **[l'utilitaire myhelp](https://docs.myfab.fr/books/2-outils-myhelp-et-app-manager-pour-la-maintenance/chapter/scripts-myhelp "Scripts myhelp")** rassemble et met en forme des lignes de commandes utiles pour la maintenance de l'environnement Open-Prod sur le serveur.

<p class="callout info"> **Désormais, les commandes liées à l'installation ou la mise à jour d'Open-Prod, des modules myfab ou de Jasper sont packagées dans l'App Manager afin d'optimiser leur enchainement et ainsi réduire le temps nécessaire pour leur exécution.** </p>

Par exemple, pour une mise à jour d'Open-Prod et des modules myfab, c'est l'App Manager qui se charge de réaliser la mise à jour de la base de données (`<strong>sql-update</strong>`) une fois toutes les mises à jour terminées. Cela permet d'optimiser le temps nécessaire tout en fiabilisant le processus. En effet, au lieu de réaliser un remise à niveau de la structure de la base de données (via la commande **`sql-update`**) à la fin de la mise à jour d'Open-Prod et une seconde à la fin de celle des modules myfab, une seule structuration est réalisée à la fin de toutes les mises à jour.

#### 2. Accès à l'App Manager

L'App Manager est accessible depuis un terminal depuis le serveur hébergeant Open-Prod. Si vous ne savez pas vous connecter à votre serveur, vous pouvez suivre les [**instructions décrites ici**](https://docs.myfab.fr/books/1-mise-a-jour-open-prod-et-des-modules-myfab/page/connexion-a-lenvironnement-technique-linux "Connexion à l'environnement technique Linux").

<p class="callout danger">**Dans le cas où vous souhaitez effectuer une mise à jour sur un autre environnement serveur que celui d'Open-Prod, il faut exécuter l'App Manager depuis cet environnement. Par exemple, dans le cas où vous avez un environnement dédié au fonctionnement de Jasper et que vous souhaitez mettre à jour les rapports myfab, il faut réaliser cette mise à jour directement sur ce serveur.**</p>

Une fois connecté, ouvrir un terminal, et exécuter la commande **`app-manager`** pour lancer l'App Manager.

[![image-1663080601484.png](https://docs.myfab.fr/uploads/images/gallery/2022-09/scaled-1680-/image-1663080601484.png)](https://docs.myfab.fr/uploads/images/gallery/2022-09/image-1663080601484.png)

# Utilisation

#### 1. Principe de fonctionnement

L'utilisation est guidée au travers des commentaires affichés tout au long de l'exécution du script. Différents menus permettent de sélectionner les modules à installer / mettre à jour. Une fois la sélection faite, le mot de passe <span style="color: rgb(35, 111, 161);">**Open-Prod**</span> sera demandé. Le script se charge ensuite de lancer toutes les commandes nécessaires et affiche le déroulé du processus au fur et à mesure dans les terminaux. Vous pouvez suivre l'exécution de ceux-ci à l'écran. En effet, pour chaque application à installer / mettre à jour, l'App Manager ouvrira un terminal pour en gérer indépendamment l'exécution.

- <span style="background-color: rgb(191, 237, 210);">**En cas de succès**</span> de l'exécution, le terminal concerné sera fermé automatiquement et un message de confirmation sera affiché dans le terminal initial.
- <span style="background-color: rgb(248, 202, 198);">**En cas d'erreur**</span>, le terminal concerné restera ouvert pour que l'utilisateur en connaisse la raison.

[![image-1663251759922.png](https://docs.myfab.fr/uploads/images/gallery/2022-09/scaled-1680-/image-1663251759922.png)](https://docs.myfab.fr/uploads/images/gallery/2022-09/image-1663251759922.png)

En résumé, il faut lancer l'utilitaire en exécutant la commande `<strong>app-manager</strong>` depuis un terminal, et suivre les questions posées dans le terminal.

#### 2. Choix proposés

Au lancement de l'App Manager, plusieurs choix sont proposés à l'utilisateur. Pour chaque applicatif, il est indiqué entre parenthèses s'il est installé ou non. Voici une description de ce ceux-ci :

- <span style="text-decoration: underline; color: rgb(132, 63, 161);">**Scripts myhelp**</span> : remplace la commande command-update. Attention, cette option n'est disponible qu'après avoir réalisé la mise à jour permettant d'accéder aux fonctionnalités de l'App Manager.
- <span style="color: rgb(132, 63, 161);">**<span style="text-decoration: underline;">Open-Prod</span>**</span> : récupère les dernières sources d'<span style="color: rgb(35, 111, 161);">**Open-Prod**</span> sur le Git de l'éditeur Objectif Pi, puis, met à jour l'application Open-Prod.
- <span style="color: rgb(132, 63, 161);">**<span style="text-decoration: underline;">Modules myfab</span>**</span> : récupère les dernières sources de myfab sur le Git de l'éditeur myfab, puis, met à jour les modules myfab standards.
- <span style="text-decoration: underline; color: rgb(132, 63, 161);">**Modules spécifiques myfab**</span> : récupère les dernières sources de myfab specific sur le Git de l'éditeur myfab, puis, met à jour les modules myfab spécifiques.
- <span style="text-decoration: underline; color: rgb(132, 63, 161);">**Jasper** </span>: lance le processus d'installation complet de Jasper.
- <span style="text-decoration: underline;"><span style="color: rgb(132, 63, 161); text-decoration: underline;">**Rapports Jasper d'Objectif Pi**</span></span> : déploie le catalogue des rapports Jasper standards d'<span style="color: rgb(35, 111, 161);">**Open-Prod**</span>.
- <span style="text-decoration: underline; color: rgb(132, 63, 161);">**Rapports Jasper myfab**</span> : déploie le catalogue des rapports Jasper standards de myfab.

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2022-11/scaled-1680-/8bMimage.png)](https://docs.myfab.fr/uploads/images/gallery/2022-11/8bMimage.png)

#### 3. Synchronisation d'une base de données

Après l'installation ou la mise à jour d'<span style="color: rgb(35, 111, 161);">**Open-Prod**</span> ou des modules myfab, une restructuration de la base de données est nécessaire. L'App Manager se charge automatiquement de réaliser cette mise à niveau de la base de données en fin de processus. Il est <span style="text-decoration: underline;">primordial</span> pendant cette étape de ne pas interrompre le script tant que celui-ci n'a pas rendu la main à l'utilisateur.

<p class="callout warning"><span style="color: rgb(106, 40, 2); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; background-color: rgb(254, 227, 211);">Attention, suite à la restauration d'une base de données ou lors de la création d'une nouvelle base de données sur cet environnement, il est uniquement nécessaire de synchroniser la nouvelle base de données avec son environnement, sans toutefois avoir besoin de mettre à jour les sources d'Open-Prod ou des modules myfab.</span></p>

<span style="color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Pour lancer manuellement et uniquement cette restructuration des bases de données, il faut exécuter la commande `<strong>sql-update</strong>` depuis un terminal.</span>

<p class="callout danger"><span style="color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Une restructuration de base de données n'est pas sans risque pour l'intégrité des bases. C'est pourquoi il est nécessaire d'effectuer des sauvegardes avant traitement. De plus, il faut veiller à ce que le traitement se soit bien déroulé avant de considérer celui-ci terminé et réussi.</span></p>

<span style="color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Comme un sql-update peut prendre plusieurs minutes et être lancé sur plusieurs bases de données en même temps, il est fastidieux pour un utilisateur de scruter les messages durant l'intégralité de son traitement, ou même de parcourir les logs après traitement. La commande a donc été améliorée afin de palier à ce souci.</span>

<p class="callout success"><span style="color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Fonctionnalités disponibles depuis la mise à jour de Juillet 2023 des scripts myfab.</span></p>

<span style="color: rgb(0, 0, 0);">Dorénavant, une fois le traitement terminé, un récapitulatif des différentes erreurs rencontrées s’affichera base par base (dans le cas où plusieurs bases ont été sélectionnées).</span>

[![image.png](https://docs.myfab.fr/uploads/images/gallery/2023-07/scaled-1680-/95rimage.png)](https://docs.myfab.fr/uploads/images/gallery/2023-07/95rimage.png)

<span style="color: rgb(0, 0, 0);">Un fichier de log sera produit et conservé dans le répertoire « /var/log/openprod ». Le nommage du fichier suit la forme suivante : « UP-&lt;nom de base&gt;-&lt;horodatage&gt;.log ».</span>

<span style="color: rgb(0, 0, 0);">Le fichier vous permettra une post analyse plus aisée. De plus, le récapitulatif listera les principales erreurs et vous permettra de prendre la décision adéquate en fonction du résultat.</span>

<span style="color: rgb(0, 0, 0);">Pour rappel, les messages "**<span style="color: rgb(224, 62, 45);">CRITICAL</span>"** sont ceux à surveiller particulièrement : **ces derniers ont la capacité d’interrompre un sql-update et sont généralement révélateurs d’un problème réel.**</span>  
<span style="color: rgb(0, 0, 0);">La deuxième priorité concerne les messages "<span style="color: rgb(224, 62, 45);">**ERRORS**</span>" : bien qu'ils n'interrompent pas un sql-update, ils peuvent néanmoins dissimuler d'autres problèmes potentiels.</span>

<span style="color: rgb(0, 0, 0);">Lorsque vous n'obtenez pas de message "<span style="color: rgb(224, 62, 45);">**CRITICAL**</span>", vous pouvez considérer que la mise à niveau est effectuée avec succès : les autres messages que vous pouvez rencontrer ne bloquent pas la poursuite des activités du client. Cependant, il reste fortement recommandé d'examiner attentivement les messages de type "<span style="color: rgb(224, 62, 45);">**ERRORS**</span>". </span>