Application install from git repo

Mince il doit y avoir un problème car après reset des caches je ne vois rien de neuf.
On voit ça demain ensemble.

Mmmm il faudrait déjà commencer par récupérer les logs de supervision d’import pour voir si les imports de module se sont effectivement bien passés :

Ensuite, si c’est bien OK, il faudrait regarder si les domaines, objets métier, etc. en Tdf* et groupes de groist en TDF* sont bien là.

Enfin il faudrait vérifier si le user designer est bien habilité au groupe TDF_ADMIN:

A effectivement je n’ai rien dans la supervision des imports

image

Je suis allé dans module > new
La j’ai saisi un setting du style
{
“type”: “git”,
“origin”: { “uri”: “git@github.com:simplicitesoftware-projects/module-tdfinfra.git” }
}
et j’ai fait un pull

Le pull est ok car je vois bien les projets avec leur fichier dans le container dans /usr/local/tomcat/webapps/ROOT/WEB-INF/git

Ce n’est probablement pas le bonne méthode mais je ne vois pas comment utiliser l’import XML via une URL git

Un simple pull Git ne suffit pas, il faut cliquer sur l’action Imprter le module(qui aurait fait le pull tout seul):

Conceptuellement un pull c’est comme un simple upload d’un fichier XML ou ZIP, ça ne dispense pas de faire l’import.

A ok, oui c’est mieux en cliquant sur “import”… c’était trop visible sur l’écran…
J’ai pas mal d’erreur dans les traces (essentiellement des java.lang.ClassNotFoundException) mais l’interface me dit que c’est ok

Git repository pulled from URI git@github.com: simplicitesoftware-projects/module-tdfinfra.git
Full module import
Status: OK
Time: 29.402s

image

Bon en tout cas le SSH fonctionne bien, je vais basculer sur la machine TDF et tester les datasource

Merci

Oui j’ai vu qu’il y avait parfois des erreurs bizarres après la fin d’import de module (lors du tout 1er import d’un module si je ne m’abuse) et avant le clear cache qui remet les idées en place à tout le monde.

J’ai pas eu le temps de creuser pour qualifier exactement le pb mais c’est pas bloquant puisque le clear cache final fonctionne. En tout cas je l’ai signalé à l’équipe R&D.

Pareil tu as peut être vu passer des erreurs d’alter table ou sur create index en base pendant les imports de modules notamment sur les vues HELIOS et/ou tables REFACCES => c’est “normal” car le user n’a sans doute pas les droits pour faire ce genre de choses. J’ai remonté un feature request pour transformer ces erreurs en warning quand on parle d’un objet tapant sur un datasource externe, c’est dans la pile des évols pour une prochaine révision de la plateforme.

NB: l’équipe de dev vient de pousser de nouvelles version des modules, je suis en train de les installer sur l’instance de test ce qui m’amène à faire qques modifs mineures. Il faudra les réimporter sur ton instance quand je te donerai mon feu vert.

Bonjour David,

Serait il possible d’autoriser les personal access token sur la team/orga
simplicitesoftware-projects

https://docs.github.com/en/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization

Sur les machines TDF les sorties sont proxifiées via un proxy http (squid).
Du coup les accès git en ssh vers github ne fonctionnent pas sur ssh… (il ne résout pas github.com…)
Là j’essaye de le faire en https via un personal access token mais je ne peux pas l’associer aux repo simplicitesoftware-projects

Merci
Stéphane

J’ai fait la manip sur GitHub, dis moi si c’est OK

Non j’ai le même message que lorsque mon jeton n’est pas associé à un repo
De plus je ne vois que mes repo perso dans la zone de sélection, il ne me propose pas les repos associés à l’orga simplicité

image

Il faudrait peut etre créer un user technique dans votre orga

Tu es membre d’une des equipes de l’org:


Et voilà la config des tokens mise en place sur l’org:

Et la team est bien dans les collaborateurs des repos, ex:

Je ne vois pas trop ce qui manque…

Je peux essayer de te mettre en collaborateur nominatif sur le repo pour ne pas passer par une équipe, je ne sais pas si c’est faisable et si ça peut aider

Bon c’est probablement une limite du “fine grain” (beta) token
Ca fonctionne bien avec un token “classique”
Donc on va rester la dessus et je vais mettre le mien

Merci

Bon c’est la galère à toutes les étapes.
Maintenant je configure le repo en https
{
“type”: “git”,
“origin”: {
“uri”: “https://github.com/simplicitesoftware-projects/module-tdfinfra.git”,
“username”: “stephaneloison”,
“password”: “ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,
}
}

J’ai suivi la doc Simplicité® documentation/90-operation/docker
et ajouté dans mon docker-compose (environnement)
JAVA_OPTS: -Dhttp.proxyHost=slxvmproxy01p.intranet.tdf.fr -Dhttp.proxyPort=3128 -Dhttps.proxyHost=slxvmproxy01p.intranet.tdf.fr -Dhttps.proxyPort=3128

/!\ d’ailleurs dans doc il y a une coquille proxyPost > proxyPort

et après redémarrage j’ai au moment de l’import

Caused by: java.net.UnknownHostException: github.com
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:633)

J’ai aussi essayé dans le doute…
JAVA_OPTS: -Dhttp.proxyHost=http://slxvmproxy01p.intranet.tdf.fr -Dhttp.proxyPort=3128 -Dhttps.proxyHost=http://slxvmproxy01p.intranet.tdf.fr -Dhttps.proxyPort=3128

et

  JAVA_OPTS: -Dhttp.proxyHost=http://slxvmproxy01p.intranet.tdf.fr:3128 -Dhttps.proxyHost=http://slxvmproxy01p.intranet.tdf.fr:3128

sans succès

J’ai l’impression que ces histoires de proxy TDF sont vraiment très compliqués…

Le plan B quand la “tuyauterie” rend les choses trop complexes, c’est de livrer les modules via de simples fichiers ZIP, i.e. de ne pas aller les chercher sur GitHub ou autre repos Git distants (au même titre que tu ne vas pas chercher l’image Docker sur le registry, lui aussi gêné par la tuyauterie…)

Idéalement il est possible d’embarquer ces fichiers ZIP des modules dans une image Docker custom avec un importspec ad hoc. C’est typiquement ce que font nos clients qui déploient sur des infra on premises sans accès internet. Cf. Simplicité® documentation/90-operation/docker-tutorial => en particulier les exemples d’importspec avec file:

Le plan C c’est de faire les imports de ces fichiers ZIPs des modules manuellement via la UI => upload des fichiers + supprimer les settings GitHub + importer le module. C’est pas une approche très “industrielle” mais pour importer 4 ou 5 modules c’est largement gérable et fiable en attendant de résoudre les pbs complexes de tuyauterie de cette infra.

Ok my bad, j’ai remis le couvert à tête reposée et c’est bon ça passe le proxy.
J’ai du fait du docker restart par moment au lieu de docker-compose up -d et la variable d’env JAVA_OPTS ne devait pas être correct.

Ok je progresse j’ai maintenant un souci d’import du module Helios
Quand je fais l’import il s’arrête subitement

2022-12-16 08:33:09,390|SIMPLICITE|INFO||http://c955ec29a6ec:8080||INFO|designer|com.simplicite.util.ModuleDB|applyConfiguration||Event: Git remote origin updated (URI: git@github.com:simplicitesoftware-projects/module-tdfinfra-helios.git)
2022-12-16 08:33:09,391|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Module, status = OK
2022-12-16 08:33:09,583|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object ModuleLink, status = OK
2022-12-16 08:33:09,773|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object SystemParam, status = OK
2022-12-16 08:33:09,995|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Group, status = OK
2022-12-16 08:33:10,435|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Profile, status = OK
2022-12-16 08:33:10,599|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object FieldList, status = OK
2022-12-16 08:33:11,072|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object FieldListCode, status = OK
2022-12-16 08:33:11,395|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object FieldListValue, status = OK
2022-12-16 08:33:14,028|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Field, status = OK
2022-12-16 08:33:14,203|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Template, status = OK
2022-12-16 08:33:14,701|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object ObjectFieldArea, status = OK
2022-12-16 08:33:14,766|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Domain, status = OK

Et lorsque je relance le conteneur j’ai la stack suivante

                                                                          ^

/usr/local/tomcat/webapps/ROOT/WEB-INF/src/com/simplicite/objects/TdfInfraHELIOS/TdfSiteHELIOS.java:17: error: package com.simplicite.commons.TdfInfraHELIOS does not exist
public class TdfSiteHELIOS extends com.simplicite.commons.TdfInfraHELIOS.TdfCommunHELIOS {
^
/usr/local/tomcat/webapps/ROOT/WEB-INF/src/com/simplicite/objects/TdfInfraHELIOS/TdfInfraHELIOS.java:6: error: package com.simplicite.commons.TdfInfraHELIOS does not exist
public class TdfInfraHELIOS extends com.simplicite.commons.TdfInfraHELIOS.TdfCommunHELIOS {
^
3 errors
||Unable to compile all classes
java.lang.Exception: Class compilation error (status 1)
/usr/local/tomcat/webapps/ROOT/WEB-INF/src/com/simplicite/objects/TdfInfraHELIOS/TdfEquipementHELIOS.java:6: error: package com.simplicite.commons.TdfInfraHELIOS does not exist
public class TdfEquipementHELIOS extends com.simplicite.commons.TdfInfraHELIOS.TdfCommunHELIOS {
^
/usr/local/tomcat/webapps/ROOT/WEB-INF/src/com/simplicite/objects/TdfInfraHELIOS/TdfSiteHELIOS.java:17: error: package com.simplicite.commons.TdfInfraHELIOS does not exist
public class TdfSiteHELIOS extends com.simplicite.commons.TdfInfraHELIOS.TdfCommunHELIOS {
^
/usr/local/tomcat/webapps/ROOT/WEB-INF/src/com/simplicite/objects/TdfInfraHELIOS/TdfInfraHELIOS.java:6: error: package com.simplicite.commons.TdfInfraHELIOS does not exist
public class TdfInfraHELIOS extends com.simplicite.commons.TdfInfraHELIOS.TdfCommunHELIOS {
^
3 errors

    at com.simplicite.util.engine.DynamicClassLoader.compile(DynamicClassLoader.java:189)
    at com.simplicite.util.engine.CoreCache.compileAll(CoreCache.java:5705)

Récupère les logs d’import dans la supervision des imports pour que je regarde.

Comment as tu propcédé pour l’import ? Via Git ou via uploade de ZIP ?

Via git en http

Curieusement je n’ai aucun log pour Helios il le voit comme étant en cours.

Voila ce que je vois dans Source

image

Les logs tomcat au moment de l’import

2022-12-16 08:33:09,390|SIMPLICITE|INFO||http://c955ec29a6ec:8080||INFO|designer|com.simplicite.util.ModuleDB|applyConfiguration||Event: Git remote origin updated (URI: git@github.com:simplicitesoftware-projects/module-tdfinfra-helios.git)
2022-12-16 08:33:09,391|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Module, status = OK
2022-12-16 08:33:09,583|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object ModuleLink, status = OK
2022-12-16 08:33:09,773|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object SystemParam, status = OK
2022-12-16 08:33:09,995|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Group, status = OK
2022-12-16 08:33:10,435|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Profile, status = OK
2022-12-16 08:33:10,599|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object FieldList, status = OK
2022-12-16 08:33:11,072|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object FieldListCode, status = OK
2022-12-16 08:33:11,395|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object FieldListValue, status = OK
2022-12-16 08:33:14,028|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Field, status = OK
2022-12-16 08:33:14,203|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Template, status = OK
2022-12-16 08:33:14,701|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object ObjectFieldArea, status = OK
2022-12-16 08:33:14,766|SIMPLICITE|INFO||http://c955ec29a6ec:8080||ICOREIO001|designer|com.simplicite.util.integration.SAXImportXML|importObject||I/O info: Import object Domain, status = OK

Tu as fait l’import manuellement via la UI ou via un importspec ?
Si tu as procédé manuellement, as tu attendu la fin de l’import d’un module avant de lancer le suivant ? Je pose la question pour savoir s’il y a eu des imports en //.

De ce que je comprends ça c’est bien passé pour les autres modules ? C’est juste TdfInfraHELIOS qui pose pb. C’est bizarre car ce n’est pas le plus gros des modules.

@Francois vois tu une raison pour qu’un import de module reste “bloqué” ? Peut être dans le contexte d’ imports de module en // ? Y-a-il un moyen de voir si le processsus d’import tourne vraiment toujours et le tuer si besoin ?

@stephane-niji :

  • Essaie de le supprimer le module + clear cache global + relance l’import
  • Si ça ne suffit pas, essaie d’arrêter d’abord le container (pour tuer un éventuel import encore en cours) et fais les manips ci-dessus

Pour supprimer un module il faut utiliser cette action:

Non pas d’import en // et via l’UI (l’importsec j’ai réessayé mais ça ne marche pas)

Je viens de refaire le test de 0 et j’ai plus de logs c’est un problème de conf dans mon context.xml je corrige et je reteste

Est ce que tu as bien configuré les datasources HELIOS et REFACCES et vérifié que les tables/vues de ces 2 bases sont bien accessibles avant de tenter l’import des modules TdfInfraHELIOS et TdfInfraREFACCES ?

Je pose la question car dans le processus d’import de module il y a un moment où il y a des accès en base pour vérifier et/ou essayer de créer les tables/colonnes/indexes, si les bases en question ne sont pas accessibles, ça explique peut être le blocage de l’import à ce niveau…

En tout cas je viens de refaire la manip d’import des modules sur une instance vierge (avec les 2 datasources correctement configurés vers mes bases Oracle de test) et ça s’est bien passé:

PS: Je suis en train de regarder de plus près le pb de l’importspec je commence à cerner un pb d’oeuf et de poule à ce niveau. Idem pour les erreurs (sans gravité)qui se produisent post import initial de module (elles sont liés à une réindexation forcée des données qui est une évolution récente pas très pertinente dans le cas d’un import initial)