Project

General

Profile

Bug #33101

Ligne manquante dans site/profile/manifests/icinga2/master.pp provoque une erreur de lint

Added by Gabriel Filion over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
2020-04-10
Due date:
% Done:

0%

RT ticket:
Affected versions:
Points:
1

Description

Troppp weird. je viens d'essayer de pousser un changement et c'est bloqué par des warnings de lint. je vérifie le contenu du fichier de mon bord : tout est correct.. j'ai modifié le hook update pour que ça créée une copie du fichier avant le check de lint et là je vois qu'il manque une ligne!

au bout du compte pour débloquer ça, j'ai mis en commentaire le check de lint pendant que je poussais mon code. c'est rentré. ensuite j'ai vérifié en faisant un clone du control-repository et je vois la ligne qui manquait pendant le hook OvO

je présume qu'on a un bug qqpart dans le hook qui cause d'une façon étrange que la ligne disparaisse avant qu'on roule puppet-lint sur le contenu.

ce que j'ai poussé qui causait le problème:

To ssh://puppet1.koumbit.net/srv/git/control-repo.git
   1b802d5e..bb85532b  production -> production

p-e une méthode pour tester ça serait de se positionner sur le même commit de départ, créer une nouvelle branche, modifier site/profile/manifests/icinga2/master.pp et merger ça sur le top de 1b802d5e et ensuite essayer de pousser.

History

#1 Updated by Gabriel Filion over 2 years ago

j'ai réussi à reproduire. j'ai créé une branche sur le point de départ avec:

git checkout 1b802d5e
git branch test_ligne_manquante_redmine_33101
git checkout test_ligne_manquante_redmine_33101
git push origin test_ligne_manquante_redmine_33101

donc là le point de départ est sur le puppetmaster.

pour reproduire le bug, on peut déplacer notre branche locale vers le point du merge qui a causé le problème:

git merge bb85532b

maintenant quand on essaye de faire git push origin test_ligne_manquante_redmine_33101 ça devrait donner l'erreur de lint causée par la ligne manquante. on peut pousser ça autant de fois qu'on veut pour tester des choses avec le hook tant qu'on s'arrange pas pour que le hook bypass le check de lint.

#2 Updated by Gabriel Filion over 2 years ago

l'output de l'erreur quand on pousse:

$ git push origin test_ligne_manquante_redmine_33101 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: INFO: Skipping review check on commit "bb85532baf9e2fb9dc99f54f728e7f8b3db5b27b" - no changes to Puppetfile{,.lock}
remote: Linting YAML file: hieradata/common.yaml OK
remote: Verifying syntax for file: site/profile/manifests/icinga2/master.pp OK
remote: Verifying lint errors for file: site/profile/manifests/icinga2/master.ppWARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 97
remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 98
remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 99
remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 104
remote: WARNING: indentation of => is not properly aligned (expected in column 15, but found it in column 19) on line 105
remote: Puppet lint failed for file: site/profile/manifests/icinga2/master.pp
remote:  OK
remote: error: hook declined to update refs/heads/test_ligne_manquante_redmine_33101
To ssh://puppet1.koumbit.net/srv/git/control-repo.git
 ! [remote rejected]   test_ligne_manquante_redmine_33101 -> test_ligne_manquante_redmine_33101 (hook declined)
error: failed to push some refs to 'ssh://puppet1.koumbit.net/srv/git/control-repo.git

#3 Updated by Gabriel Filion over 2 years ago

  • Status changed from New to In progress

ok j'ai mis le doigt dessus je crois:

 59     # Avoid the --ignoreimport bug by filtering out import lines
 60     git cat-file blob "$new_sha1" | grep -v "^[         ]*import" > "$tmp" 

la ligne qui manque c'est (le # au début de la ligne c'est vim.. juste pour indication de où c'est. le début de la ligne c'est juste des espaces):

100     import_schema => true,

donc ça veut dire qu'il faudrait ré-expoter le contenu du fichier sans retirer les lignes import pour faire un check de lint qui a plus d'allure.

#4 Updated by Gabriel Filion over 2 years ago

  • Status changed from In progress to Closed

la solution c'était de retirer le grep -v qui enlevait les lignes qui commençaient par "import". c'était un fix à un bug pour une option qui a disparue dans puppet 4.0. donc complètement inutile (et problématique en plus). ciao!

j'ai envoyé le commit 7600627 sur les hooks git, pull'ed ça sur le puppet master, et maintenant je peux pousser le merge problématique sans problème!

Also available in: Atom PDF