[FIX] qemu manage : ni adresse, ni nom de VM, ni récit en commentaire
Les commentaires suivent le dépôt en amont : une adresse ou un nom de machine qui s'y trouve devient public. Cinq adresses et deux noms de VM y étaient, plus cinq phrases racontant la séance où le défaut est apparu. Le mode de défaillance reste, au présent — « une VM renommée se voit attribuer la passerelle » — et l'incident part. Un relevé d'un seul jour part avec lui ; la structure durable reste. check_comment_hygiene.py passe de 5 identifiants et 5 à relire à zéro. Aucune ligne de code n'est touchée, seulement du texte de commentaire. --- EN --- Comments follow the repository upstream: an address or a machine name sitting in one becomes public. Five addresses and two VM names were there, plus five sentences telling the session where the fault appeared. The failure mode stays, in the present — "a renamed VM is given the gateway" — and the incident goes. A reading taken on one day goes with it; the durable structure stays. check_comment_hygiene.py goes from 5 identifiers and 5 to re-read down to zero. No line of code is touched, only comment prose. Assisted-by: Claude Opus 5
This commit is contained in:
parent
0b8f25fb4b
commit
40a1e178f3
1 changed files with 20 additions and 26 deletions
|
|
@ -45,12 +45,11 @@ def parse_ssh_blocks(content) -> dict:
|
||||||
def ssh_orphans(blocs, juge, prefixe="erplibre-"):
|
def ssh_orphans(blocs, juge, prefixe="erplibre-"):
|
||||||
"""(gardées, orphelines) — chacune [(nom, raison)].
|
"""(gardées, orphelines) — chacune [(nom, raison)].
|
||||||
|
|
||||||
Un ProxyJump valait preuve de vie À LUI SEUL : « écrite pour une VM
|
Un ProxyJump ne vaut pas preuve de vie à lui seul : « écrite pour une VM
|
||||||
imbriquée, que virsh ne connaîtra jamais ». Le raisonnement oubliait que
|
imbriquée, que virsh ne connaîtra jamais » oublie que le rebond, lui, peut
|
||||||
le rebond, lui, peut avoir disparu. Vécu : la VM Proxmox locale effacée,
|
avoir disparu. Effacer la VM qui servait de rebond retire son entrée —
|
||||||
le nettoyage a retiré son entrée — correctement — et GARDÉ les trois
|
correctement — et laisse celles qui rebondissaient par elle : des
|
||||||
entrées qui rebondissaient par elle. Trois culs-de-sac, présentés comme
|
culs-de-sac présentés comme « mènent encore quelque part ».
|
||||||
« mènent encore quelque part ».
|
|
||||||
|
|
||||||
D'où le point fixe : retirer un parent peut orpheliner ses enfants, et
|
D'où le point fixe : retirer un parent peut orpheliner ses enfants, et
|
||||||
ceux-ci peuvent en orpheliner d'autres. On tourne jusqu'à ce que plus
|
ceux-ci peuvent en orpheliner d'autres. On tourne jusqu'à ce que plus
|
||||||
|
|
@ -887,11 +886,9 @@ class QemuManageMixin:
|
||||||
"""{chemin: domaine} — TOUT ce que les domaines référencent.
|
"""{chemin: domaine} — TOUT ce que les domaines référencent.
|
||||||
|
|
||||||
L'autorité est libvirt, jamais le nom du fichier. Un domaine renommé
|
L'autorité est libvirt, jamais le nom du fichier. Un domaine renommé
|
||||||
garde le nom de fichier d'avant : juger sur le nom faisait passer le
|
garde le nom de fichier d'avant : juger sur le nom fait passer le
|
||||||
disque d'une VM EN MARCHE pour un orphelin. Rapporté sur
|
disque d'une VM EN MARCHE pour un orphelin, et offre ses trois
|
||||||
« erplibre-ubuntu-2404-MIGRATION », renommée depuis
|
fichiers — disque, seed, nvram — au « rm -f ».
|
||||||
« erplibre-ubuntu-2404 » : le nettoyage offrait ses trois fichiers —
|
|
||||||
disque de 63 Go, seed, nvram — au « rm -f ».
|
|
||||||
|
|
||||||
Les deux vues, persistante et vivante, pour la raison dite dans
|
Les deux vues, persistante et vivante, pour la raison dite dans
|
||||||
`_qemu_dumpxml`.
|
`_qemu_dumpxml`.
|
||||||
|
|
@ -2248,12 +2245,10 @@ class QemuManageMixin:
|
||||||
"""Adresses IPv4 de L'HÔTE, à écarter des candidates d'une VM.
|
"""Adresses IPv4 de L'HÔTE, à écarter des candidates d'une VM.
|
||||||
|
|
||||||
« virsh domifaddr --source arp » remonte la table ARP, où figurent les
|
« virsh domifaddr --source arp » remonte la table ARP, où figurent les
|
||||||
passerelles des ponts libvirt (192.168.122.1, 192.168.123.1…). Une VM
|
passerelles des ponts libvirt. Une VM n'a jamais l'adresse de son
|
||||||
n'a jamais l'adresse de son hôte : sans ce filtre, une VM RENOMMÉE —
|
hôte : sans ce filtre, une VM RENOMMÉE — dont le bail porte encore
|
||||||
dont le bail porte encore l'ancien nom d'hôte, donc sans
|
l'ancien nom d'hôte, donc sans correspondance — se voit attribuer la
|
||||||
correspondance — se voyait attribuer la passerelle. Vécu sur
|
passerelle.
|
||||||
« erplibre-ubuntu-2404-MIGRATION », annoncée en 192.168.122.1 au lieu
|
|
||||||
de 192.168.123.170.
|
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
res = subprocess.run(
|
res = subprocess.run(
|
||||||
|
|
@ -2304,9 +2299,9 @@ class QemuManageMixin:
|
||||||
- agent : qemu-guest-agent DANS la VM (voit l'IP réelle même quand le
|
- agent : qemu-guest-agent DANS la VM (voit l'IP réelle même quand le
|
||||||
bail dnsmasq est absent) ;
|
bail dnsmasq est absent) ;
|
||||||
- arp : table ARP de l'hôte (VM active sur le réseau).
|
- arp : table ARP de l'hôte (VM active sur le réseau).
|
||||||
On combine pour ne jamais rater une IP que le bail seul manquerait
|
On combine pour ne jamais rater une IP que le bail seul manquerait :
|
||||||
(cas observé : 30 VM émulées, bail dnsmasq vide alors que la VM a une
|
sous forte charge, le bail dnsmasq reste vide alors que la VM a bien
|
||||||
IP)."""
|
une adresse."""
|
||||||
ips = []
|
ips = []
|
||||||
siennes = QemuManageMixin._qemu_host_addresses()
|
siennes = QemuManageMixin._qemu_host_addresses()
|
||||||
for source in ("lease", "agent", "arp"):
|
for source in ("lease", "agent", "arp"):
|
||||||
|
|
@ -2396,8 +2391,8 @@ class QemuManageMixin:
|
||||||
# Sans correspondance de nom d'hôte — le cas d'une VM RENOMMÉE, dont
|
# Sans correspondance de nom d'hôte — le cas d'une VM RENOMMÉE, dont
|
||||||
# le bail porte encore l'ancien nom — on prend la source la plus
|
# le bail porte encore l'ancien nom — on prend la source la plus
|
||||||
# sûre : le bail, puis l'agent, puis la table ARP. Celle-ci contient
|
# sûre : le bail, puis l'agent, puis la table ARP. Celle-ci contient
|
||||||
# les passerelles des ponts, et « la dernière candidate » y tombait :
|
# les passerelles des ponts, où « la dernière candidate » tombe : la
|
||||||
# la VM était annoncée en 192.168.122.1.
|
# VM se voit alors annoncée avec l'adresse de sa passerelle.
|
||||||
for source in ("lease", "agent", "arp"):
|
for source in ("lease", "agent", "arp"):
|
||||||
if par_source.get(source):
|
if par_source.get(source):
|
||||||
return par_source[source][-1]
|
return par_source[source][-1]
|
||||||
|
|
@ -2549,10 +2544,9 @@ class QemuManageMixin:
|
||||||
tourne dans la VM — install_proxmox.sh, les scripts d'installation, le
|
tourne dans la VM — install_proxmox.sh, les scripts d'installation, le
|
||||||
Makefile — vient donc de là.
|
Makefile — vient donc de là.
|
||||||
|
|
||||||
Vécu deux fois de suite. Un correctif de install_proxmox.sh, commité
|
Un correctif commité ici mais pas poussé ne part donc pas : chaque VM
|
||||||
ici, absent du distant : chaque VM déployée ensuite recevait l'ancien
|
déployée ensuite reçoit l'ancien script, et le défaut « revient »
|
||||||
script, et le défaut « revenait » alors qu'il était corrigé. Rien ne
|
alors qu'il est corrigé. Rien ne le signale, d'où ce décompte.
|
||||||
le disait ; il a fallu comparer les deux versions à la main.
|
|
||||||
"""
|
"""
|
||||||
if not branche:
|
if not branche:
|
||||||
return 0, []
|
return 0, []
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue