fix(ssh): build_fqdn elargi - Test/Dev/QA testent aussi .sanef-rec.fr (etait limite a 'recette') + log d'erreur ssh_connect detaille
This commit is contained in:
parent
92528043d0
commit
c23dda0a46
@ -661,13 +661,19 @@ def read_excel_servers(filepath, sheet_name=None):
|
||||
# SSH HELPERS
|
||||
# ==============================================================================
|
||||
def build_fqdn(server, env):
|
||||
"""Genere les candidats FQDN a tester. Convention SANEF :
|
||||
- .sanef-rec.fr pour env Recette/Test/Dev (les VMs non-prod sont en recette)
|
||||
- .sanef.groupe pour env Prod / autres (AD interne)
|
||||
Tente d'abord le hostname brut puis chaque suffixe."""
|
||||
if "." in server:
|
||||
return [server]
|
||||
env_low = env.lower()
|
||||
if "recette" in env_low or "rec" in env_low:
|
||||
return [server, f"{server}.sanef-rec.fr"]
|
||||
else:
|
||||
return [server, f"{server}.sanef.groupe"]
|
||||
env_low = (env or "").lower()
|
||||
is_nonprod = any(k in env_low for k in ("recette", "rec", "test", "tst", "dev", "qa"))
|
||||
if is_nonprod:
|
||||
# Non-prod : recette en priorite, fallback groupe au cas ou
|
||||
return [server, f"{server}.sanef-rec.fr", f"{server}.sanef.groupe"]
|
||||
# Prod : groupe en priorite, fallback recette au cas ou
|
||||
return [server, f"{server}.sanef.groupe", f"{server}.sanef-rec.fr"]
|
||||
|
||||
def load_key(keyfile):
|
||||
"""Charge une clé SSH privée. Retourne l'objet PKey ou None.
|
||||
@ -809,7 +815,10 @@ def ssh_connect(server, env, settings, pkey, pkey2, cyb_password=None):
|
||||
continue
|
||||
else:
|
||||
# SSH direct avec clé
|
||||
for key in [k for k in [pkey, pkey2] if k]:
|
||||
keys = [k for k in [pkey, pkey2] if k]
|
||||
if not keys:
|
||||
print(f"[ssh_connect] {hostname}: AUCUNE CLE chargee (pkey/pkey2 = None) → check load_key.last_error")
|
||||
for idx, key in enumerate(keys, 1):
|
||||
try:
|
||||
client = paramiko.SSHClient()
|
||||
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
@ -819,7 +828,9 @@ def ssh_connect(server, env, settings, pkey, pkey2, cyb_password=None):
|
||||
look_for_keys=False, allow_agent=False)
|
||||
client._eff_host = hostname
|
||||
return client, hostname
|
||||
except Exception:
|
||||
except Exception as ex_ssh:
|
||||
print(f"[ssh_connect] {hostname} cle#{idx} ({type(key).__name__}) "
|
||||
f"user={settings.get('target_user','?')} → {type(ex_ssh).__name__}: {ex_ssh}")
|
||||
continue
|
||||
return None, None
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user