Automatic module import on start-up KO / 5.2.7

Continuing the discussion from [CI/CD] Automatic module imports at platform startup:

Lors du démarrage du container docker en local, j’ai des messages de ce genre pour tous les modules préalablement importés dans une version antérieure

2022-06-17 17:07:00,002|SIMPLICITE|ERROR|Error during module IT4itGuest_RFQ import
2022-06-17 17:07:00,007|SIMPLICITE|ERROR|Ref master cannot be resolved
com.simplicite.util.exceptions.GitException: Ref master cannot be resolved
at com.simplicite.util.tools.GitTool.checkout(GitTool.java:823)
at com.simplicite.util.Integration.importModuleFromSpec(Integration.java:799)
at com.simplicite.util.Integration.importModulesFromSpecs(Integration.java:1262)
at com.simplicite.util.engine.Platform.importBusinessModules(Platform.java:1154)

En 5.1 l’import automatique fonctionne bien (à blanc ou sur une base déjà chargée) avec le même fichier git-importspec.yaml

C’est peut-être lié à une autre différence de comportement que j’observe entre 5.2 et 5.1 : lors du redéploiement de nos containers, les images démarrées n’ont aucun repo GIT en local

  • en 5.1 il suffit d’aller constater que le git est absent puis de revenir sur le formulaire du module pour enregistrer → ça reconstruit l’accès au repo git et les fonctions de pull/import module fonctionnent bien
  • en 5.2, il faut modifier la conf de paramétrage du module (ajouter un enlever un espace suffit) puis enregistrer le formulaire du module pour pouvoir à nouveau utiliser les fonctions pull/import.

Peux tu nous indiquer ce qu’il y a dans l’import spec ?

Bonjour David,
voici le contenu du fichier:
j’ai essayé d’ajouter des tags “#master” à la fin des URL git mais c’est sans effet (même erreur)
→ à ce sujet si l’importspec pouvait permettre de spécifier une branche du repo git en particulier ce serait super :wink: (pour pouvoir démarrer des instances configurées sur différentes branches/versions des modules)

title: "KISS-RCM (INT)"
modules:
  - name: "RenaultAuth_DEV"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/IRN-70649/it4itguests/RenaultAuth_DEV.git"
  - name: "RenaultAPI"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/RenaultAPI.git"
  - name: "IT4itGuest_AS0"
    version: "0.1"
    git: "https://xxx:yyy-NJ@gitlabee.dt.renault.com/IRN-72953/as0.git#master"
  - name: "IT4itGuest_RFI"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/IRN-70649/it4itguests/IT4itGuest_RFI.git"
  - name: "IT4itGuest_RFQ"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/IRN-70649/it4itguests/IT4itGuest_RFQ.git"
  - name: "BCSIModule_Commons"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_Commons.git"
  - name: "BCSIModule_StubAssets"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_StubAssets.git"
  - name: "BCSIModule_OrgItems"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_OrgItems.git"
  - name: "BCSIModule_ActorPortfolio"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_ActorPortfolio.git"
  - name: "BCSIModule_Application"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_Application.git"
  - name: "BCSIModule_EnterpriseArchitecture"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_EnterpriseArchitecture.git"
  - name: "BCSIModule_Infrastructure"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_Infrastructure.git"
  - name: "IT4itGuest_API"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/IRN-70649/it4itguests/IT4itGuest_API.git"
  - name: "BCSIModule_RCM"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIModule_RCM.git"
  - name: "BCSIPublic_RCM"
    version: "0.1"
    git: "https://xxx:yyy@gitlabee.dt.renault.com/irn-68521/BCSI_Module/BCSIPublic_RCM.git"

Pour ce qui est de spécifier la branche Git c’est prévu: Simplicité® documentation/02-integration/git-repositories (exemple de config module) ou Simplicité® documentation/90-operation/docker-tutorial (exemple d’importspec YAML)

Par contre il n’est pas - encore - possible de dire d’importer la révision Git X via son hash (ou un tag), le besoin n’ayant pas été exprimé à date

Pour le reste il doit y avoir une subtilité dans le check de modificaton sur les settings du module. Je vais creuser.

Bon déjà via la UI l’ajout d’un espace dans les settings du module force bien toujours la mise à jour de la config du repo Git. Tu es sûr d’avoir constaté un pb à ce niveau ? Peut être parles-tu d’un autre type de manip ?

Ca ne présume pas de ce qu’il se passe dans le cas d’un importspec que je vais regarder de plus près

Rectification, en update, si les settings ne changent pas vs la configuration courante du repo Git, il ne se passe rien (mais ce n’est pas un pb)

Bonjour David,
merci beaucoup pour tes retours.

En fait, dans notre cas, suite au redéploiement de nos images, les clones des repos Git ne sont plus là (absents du file system). Il faut donc réamorcer la pompe… Nous avons trouvé un contournement pour la 5.1 (activer la fonction “Repo Git” puis revenir sur le formulaire du module pour réenregistrer) et la 5.2 (ajouter/supprimer un espace dans le paramétrage puis réenregistrer).

C’est donc en effet plus une gêne qu’un problème. L’idéal serait que le socle teste la présence du clone dès l’initUpdate du module pour restaurer la situation automatiquement.

L’autre problème d’import KO / importspecs est par contre plus problématique. Je ne sais pas dire si c’est un comportement récent car je n’ai déroulé qu’un seul cycle d’initialisation de modules sur une base 5.2 et lors de l’init avec une base à blanc tout se passe bien. C’est le deuxième démarrage avec des paramètres de modules déjà initialisés qui pose problème.

En effet, nous utilisons déjà la fonction de sélection de branche dans le paramétrage dans le cadre des fonctionnalité Git opérées dans un session UI. De ce côté ça fonctionne très bien (sauf le point précédent de réinitialisation suite au redéploiement).

J’évoquais la possibilité de sélectionner une branche spécifique dans le cadre des fonctionnalités d’importspecs lors du démarrage de l’application.

En relisant le code il y a effectivement des cas où la resynchro entre le settings du module et la config du repo peut ne pas se faire corectement.

Je vais creuser cet point et on verra si ça résoud le pb quand le repo n’existe plus.

PS: Pourquoi ne mettez vous pas un volume persistant sur le répertoire des repos Git ?

Du fait d’une position dogmatique de nos devops… je vais les relancer sur ce point pour voir si cela a évolué.

cela a évolué … du coup je vois avec eux comment monter un volume dédié aux clones git

OK mais ça n’empêche pas qu’on va pousser en 5.2.8 une modif qui va rendre plus robuste la synchro entre les settings du module et la config du repo Git. En outre, on forcera cette synchro à chaque save du module indépendamment ou non d’un change sur l’attribut.

1 Like

La 5.2.8 a été poussée, peux tu nous dire si cela règle les pbs constatés dans ton cas ?
Merci

5.2.8 déployée en intra sans module import spec : got git en 1 clic :grin: (super)
5.2.8 déployée en local avec module import spec : cycle de démarrage en cours et tout semble bien se passer (modules réimportés correctement) … je reviens éditer le post pour confirmer dès que c’est OK (ça prend plus de 40 minutes sur mon poste pour dérouler tous les ré-imports)

2022-06-23 10:30:30,671|SIMPLICITE|INFO|Business module RenaultAuth_INT successfully imported
2022-06-23 10:30:30,672|SIMPLICITE|INFO|Module RenaultAuth_INT imported in 122759 ms
2022-06-23 10:31:00,261|SIMPLICITE|INFO|Business module RenaultAPI successfully imported
2022-06-23 10:31:00,262|SIMPLICITE|INFO|Module RenaultAPI imported in 29493 ms
2022-06-23 10:32:13,564|SIMPLICITE|INFO|Business module RenaultS3 successfully imported
2022-06-23 10:32:13,564|SIMPLICITE|INFO|Module RenaultS3 imported in 73206 ms
2022-06-23 10:45:24,529|SIMPLICITE|INFO|Business module BCSIModule_Commons successfully imported
2022-06-23 10:45:24,529|SIMPLICITE|INFO|Module BCSIModule_Commons imported in 790870 ms
2022-06-23 10:53:31,241|SIMPLICITE|INFO|Business module BCSIModule_OrgItems successfully imported
2022-06-23 10:53:31,241|SIMPLICITE|INFO|Module BCSIModule_OrgItems imported in 486618 ms
2022-06-23 10:53:42,494|SIMPLICITE|INFO|Business module BCSIModule_ActorPortfolio successfully imported
2022-06-23 10:53:42,494|SIMPLICITE|INFO|Module BCSIModule_ActorPortfolio imported in 11156 ms
...

Pour l’instant tout va bien (ça me semble très lent mais il y a eu bcp de commits sur la plupart des modules depuis mon dernier ré-import local)

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.

OK n’hésite pas à rouvrir un post si tu tombes dans un cas particulier oùça ne fait pas ce que tu voudrais.

La combinatoire - et la tolérance - des cas d’import spec commence à être vaste…