chore: script cleanup FQDN incoherents convention SANEF (vr*=.sanef-rec.fr, vp*=.sanef.groupe) - met NULL les incoherents pour forcer recalcul dynamique
This commit is contained in:
parent
7e9cae6758
commit
c74ac5ec3e
80
cleanup_fqdn_incoherents.sql
Normal file
80
cleanup_fqdn_incoherents.sql
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
-- Nettoyage FQDN incohérents avec la convention SANEF
|
||||||
|
-- v[r|t|d|v]* → doit être .sanef-rec.fr (recette/test/dev/qualif)
|
||||||
|
-- v[p|l]* → doit être .sanef.groupe ou .sanef.fr (prod/legacy)
|
||||||
|
-- Les FQDN ne respectant pas la convention sont mis à NULL → _resolve()
|
||||||
|
-- recalculera dynamiquement via la cascade ordonnée des suffixes.
|
||||||
|
--
|
||||||
|
-- Exécutable plusieurs fois sans dommage. Avant/Après pour traçabilité.
|
||||||
|
|
||||||
|
\echo '═══ AVANT ═══'
|
||||||
|
|
||||||
|
SELECT 'recette_avec_fqdn_prod (à nettoyer)' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers
|
||||||
|
WHERE LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('r','t','d','v')
|
||||||
|
AND fqdn IS NOT NULL
|
||||||
|
AND (fqdn ILIKE '%.sanef.groupe' OR fqdn ILIKE '%.sanef.fr')
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'prod_avec_fqdn_recette (à nettoyer)' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers
|
||||||
|
WHERE LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('p','l')
|
||||||
|
AND fqdn IS NOT NULL
|
||||||
|
AND fqdn ILIKE '%.sanef-rec.fr'
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'fqdn_total_actuel' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers WHERE fqdn IS NOT NULL AND fqdn != ''
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'fqdn_null_actuel' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers WHERE fqdn IS NULL OR fqdn = '';
|
||||||
|
|
||||||
|
\echo '═══ APERÇU 10 LIGNES INCOHÉRENTES ═══'
|
||||||
|
|
||||||
|
SELECT hostname, fqdn,
|
||||||
|
CASE WHEN LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('r','t','d','v')
|
||||||
|
THEN 'recette_attendu_sanef-rec.fr'
|
||||||
|
ELSE 'prod_attendu_sanef.groupe' END AS pourquoi
|
||||||
|
FROM servers
|
||||||
|
WHERE fqdn IS NOT NULL
|
||||||
|
AND (
|
||||||
|
(LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('r','t','d','v')
|
||||||
|
AND (fqdn ILIKE '%.sanef.groupe' OR fqdn ILIKE '%.sanef.fr'))
|
||||||
|
OR (LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('p','l')
|
||||||
|
AND fqdn ILIKE '%.sanef-rec.fr')
|
||||||
|
)
|
||||||
|
ORDER BY hostname
|
||||||
|
LIMIT 10;
|
||||||
|
|
||||||
|
\echo '═══ NETTOYAGE ═══'
|
||||||
|
|
||||||
|
-- Recette/test/dev/qualif : FQDN .sanef.groupe / .sanef.fr → NULL
|
||||||
|
UPDATE servers
|
||||||
|
SET fqdn = NULL, updated_at = NOW()
|
||||||
|
WHERE LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('r','t','d','v')
|
||||||
|
AND fqdn IS NOT NULL
|
||||||
|
AND (fqdn ILIKE '%.sanef.groupe' OR fqdn ILIKE '%.sanef.fr');
|
||||||
|
|
||||||
|
-- Prod / legacy : FQDN .sanef-rec.fr → NULL
|
||||||
|
UPDATE servers
|
||||||
|
SET fqdn = NULL, updated_at = NOW()
|
||||||
|
WHERE LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('p','l')
|
||||||
|
AND fqdn IS NOT NULL
|
||||||
|
AND fqdn ILIKE '%.sanef-rec.fr';
|
||||||
|
|
||||||
|
\echo '═══ APRÈS ═══'
|
||||||
|
|
||||||
|
SELECT 'recette_avec_fqdn_prod (résiduel)' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers
|
||||||
|
WHERE LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('r','t','d','v')
|
||||||
|
AND fqdn IS NOT NULL
|
||||||
|
AND (fqdn ILIKE '%.sanef.groupe' OR fqdn ILIKE '%.sanef.fr')
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'prod_avec_fqdn_recette (résiduel)' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers
|
||||||
|
WHERE LOWER(SUBSTRING(hostname::text, 2, 1)) IN ('p','l')
|
||||||
|
AND fqdn IS NOT NULL
|
||||||
|
AND fqdn ILIKE '%.sanef-rec.fr'
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'fqdn_total_apres' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers WHERE fqdn IS NOT NULL AND fqdn != ''
|
||||||
|
UNION ALL
|
||||||
|
SELECT 'fqdn_null_apres' AS scope, COUNT(*) AS nb
|
||||||
|
FROM servers WHERE fqdn IS NULL OR fqdn = '';
|
||||||
Loading…
Reference in New Issue
Block a user