25 janvier 2012

Et soudain, 401 http error (Continuum veut plus créer la distribution)


Vous travaillez sur une vieille, vieille, [soupir], très vieille application du siècle dernier. Littéralement.
C'est sûr, en son temps, ce devait être quelque chose. Mais aujourd'hui, vous savez que chaque fois que vous tirerez sur un fil, vous vous prendrez la pelote en plein nez! Bing.

Heureusement, l'application est mavenisée. Il y a même une PIC ! (plateforme d'intégration continue), installée par une bonne âme qui n'est plus présente sur le projet ( beaucoup de turn over sur ce projet...). Bien sûr, tout est lancé avec un -Dmaven.skip.test=true, faut pas prendre de risque non plus avec les quelques rares tests unitaires écrits !

Vous avez sous le coude votre procédure de livraison avec Continuum que vous maîtrisez parfaitement.
Comme chaque fois vous préparez le build puis la release d'un oeil et vous relisez, détricotez et relisez ce legacy code, [soupir] de l'autre.

Et paf, Build Error, patatra ! 
Subitement, Continuum s'arrête avant d'avoir fini.


[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error deploying artifact: Failed to transfer file: http://nomduserveur.fr:port/archiva/repository/internal/com/nomduprojet/version/module-[version].jar. Return code is: 401

La release est plantée, bigre. C'est la première fois, vous n'avez rien changé. Et quand je dis rien, c'est vraiment rien !

Alors pas de panique, rien de magique dans l'informatique.
On remonte la piste, après tout, c'est la partie la plus standardisée du projet :

- analysons : Continuum n'a pu déposer sur Archiva l'artifact qui a été construit.
- l'erreur http 401 : Google dit problème d’autorisation
- inspection des pom maven, l'instruction pour déposer la distribution sur Archiva :
<distributionManagement>
<repository>
<id>internal</id>
<url>
http://nomduserveur.fr:port/archiva/repository/internal/</url>
</repository>
</distributionManagement>


- recherche de la définition du <id>internal dans le settings.xml du maven.
(Bien sûr, il s'agit de la machine sur laquelle s'exécute Continuum et maven.)
Vous trouvez des paramètres d'authentification :
         <username>...</username>
         <password>...</password>

- Très bien. Et si on allait faire un tour sur la console d'Archiva pour tester cet utilisateur, mmm? C'est quoi l'url ? :
         http:urlmachine:port/archiva:secrutiy/login.action

- après authentification avec le username/password trouvés dans settings.xml, vous êtes redirigé directement vers la page de changement de mot de passe ! Bingo !

C'était une expiration du mot de passe.

Allez, on vérifie quand même : nouveau password défini, on relance la procédure parfaitement maîtrisée sur Continuum .....Yes !

C'était
simple, il suffisait de lire. C'est bon ça, l'informatique, c'est logique.

Aucun commentaire:

Enregistrer un commentaire