fix(ssh): build_fqdn base sur 2e lettre hostname (convention SANEF) - vt*/vr*/vd* -> .sanef-rec.fr en 1er, vp*/sp*/lp* -> .sanef.groupe en 1er
This commit is contained in:
parent
c23dda0a46
commit
b9bcf2f9ec
@ -661,19 +661,28 @@ def read_excel_servers(filepath, sheet_name=None):
|
|||||||
# SSH HELPERS
|
# SSH HELPERS
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
def build_fqdn(server, env):
|
def build_fqdn(server, env):
|
||||||
"""Genere les candidats FQDN a tester. Convention SANEF :
|
"""Genere les candidats FQDN a tester. Convention SANEF basee sur le hostname:
|
||||||
- .sanef-rec.fr pour env Recette/Test/Dev (les VMs non-prod sont en recette)
|
- 2e lettre 'p' (vp*/sp*/lp*) = Prod -> .sanef.groupe en priorite
|
||||||
- .sanef.groupe pour env Prod / autres (AD interne)
|
- 2e lettre 'r/t/v/d/o/i' (vr*/vt*/vv*/vd*/vo*/vi*) = non-prod -> .sanef-rec.fr en priorite
|
||||||
Tente d'abord le hostname brut puis chaque suffixe."""
|
- sinon: env decide (Prod -> .sanef.groupe, autres -> .sanef-rec.fr)
|
||||||
|
Tente toujours le hostname brut + les 2 suffixes."""
|
||||||
if "." in server:
|
if "." in server:
|
||||||
return [server]
|
return [server]
|
||||||
|
server_low = server.lower()
|
||||||
env_low = (env or "").lower()
|
env_low = (env or "").lower()
|
||||||
is_nonprod = any(k in env_low for k in ("recette", "rec", "test", "tst", "dev", "qa"))
|
second = server_low[1] if len(server_low) > 1 else ""
|
||||||
if is_nonprod:
|
is_prod_by_hostname = second == "p"
|
||||||
# Non-prod : recette en priorite, fallback groupe au cas ou
|
is_nonprod_by_hostname = second in ("r", "t", "v", "d", "o", "i")
|
||||||
return [server, f"{server}.sanef-rec.fr", f"{server}.sanef.groupe"]
|
if is_nonprod_by_hostname:
|
||||||
# Prod : groupe en priorite, fallback recette au cas ou
|
order = [".sanef-rec.fr", ".sanef.groupe"]
|
||||||
return [server, f"{server}.sanef.groupe", f"{server}.sanef-rec.fr"]
|
elif is_prod_by_hostname:
|
||||||
|
order = [".sanef.groupe", ".sanef-rec.fr"]
|
||||||
|
else:
|
||||||
|
# Pas de signal hostname clair : se baser sur env
|
||||||
|
is_nonprod_by_env = any(k in env_low for k in ("recette", "rec", "test", "tst", "dev", "qa"))
|
||||||
|
order = ([".sanef-rec.fr", ".sanef.groupe"] if is_nonprod_by_env
|
||||||
|
else [".sanef.groupe", ".sanef-rec.fr"])
|
||||||
|
return [server] + [f"{server}{suf}" for suf in order]
|
||||||
|
|
||||||
def load_key(keyfile):
|
def load_key(keyfile):
|
||||||
"""Charge une clé SSH privée. Retourne l'objet PKey ou None.
|
"""Charge une clé SSH privée. Retourne l'objet PKey ou None.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user