Le calendrier livre par Centreon figure au projet sans etre recree
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (push) Successful in 9m52s
build / Garde-fou (push) Successful in 10m45s
build / Images Harbor (web, Dockerfile) (push) Successful in 13m18s

This commit is contained in:
hcornet committed 2026-09-12 10:04:11 +02:00
1 parent bc18f93196
commit 032982cb28
7 files changed
+114 -7

No files matched your search

+47 -3
View File
@@ -405,17 +405,21 @@ def test_import_d_un_pack_rattache_ses_modeles():
def test_les_calendriers_livres_par_centreon_ne_sont_pas_recrees():
"""24x7 existe des l'installation : TP;ADD echouerait sur un objet existant."""
"""24x7 figure au projet pour qu'on le voie, mais TP;ADD echouerait sur un
objet existant : il n'est pas recree."""
from enclume.catalog import Catalog
from enclume.packs import pack_to_project
projet = pack_to_project(Catalog("catalog").get("app-ldap"))
assert projet.calendriers == []
assert [c.name for c in projet.calendriers] == ["24x7"]
assert projet.calendriers[0].creer is False
assert not [o for o in build_plan(projet).ops if o.obj == "TP"]
assert projet.perimetres[0].calendrier == "24x7"
# Un calendrier qui n'est pas livre, lui, doit etre cree.
imprimante = pack_to_project(Catalog("catalog").get("hw-printer-rfc3805"))
assert [c.name for c in imprimante.calendriers] == ["Heures-Ouvrees"]
assert imprimante.calendriers[0].creer is True
def test_un_pack_importe_produit_le_cablage_complet():
@@ -457,7 +461,10 @@ def test_la_fusion_d_un_pack_apporte_tout(app):
).get_json()["project"]
assert len(suite["perimetres"]) == 2
assert [c["name"] for c in suite["calendriers"]] == ["Heures-Ouvrees"]
# MySQL apporte 24x7, reference mais non recree ; l'imprimante son propre
# calendrier, qui sera cree.
assert [c["name"] for c in suite["calendriers"]] == ["24x7", "Heures-Ouvrees"]
assert [c["creer"] for c in suite["calendriers"]] == [False, True]
assert len(suite["host_templates"]) == 2
@@ -475,3 +482,40 @@ def test_la_fusion_signale_les_doublons(app):
def test_fusion_d_un_pack_inconnu(app):
reponse = app.test_client().post("/api/packs/inexistant/fusionner", json={"project": {}})
assert reponse.status_code == 404
def test_le_calendrier_livre_par_centreon_figure_au_projet():
"""Il doit se voir dans l'editeur, sans etre recree a l'identique."""
from enclume.catalog import Catalog
from enclume.packs import pack_to_project
projet = pack_to_project(Catalog("catalog").get("app-apache"))
calendrier = projet.calendriers[0]
assert calendrier.name == "24x7"
assert calendrier.creer is False
assert calendrier.jours, "ses plages doivent rester lisibles"
# Aucune operation TP : l'objet existe deja sur le central.
assert not [o for o in build_plan(projet).ops if o.obj == "TP"]
assert not [o for o in build_plan(projet).rollback_ops if o.obj == "TP"]
# Le perimetre s'y refere sans prefixe, meme quand le projet en porte un.
projet.prefix = "ACME-"
periode = next(
o.import_line() for o in build_plan(projet).ops if "notification_period" in o.import_line()
)
assert periode.endswith(";24x7")
def test_un_calendrier_du_central_peut_etre_force():
"""Une installation peut avoir perdu ses calendriers par defaut."""
from enclume.catalog import Catalog
from enclume.packs import pack_to_project
projet = pack_to_project(Catalog("catalog").get("app-apache"))
projet.calendriers[0].creer = True
lignes = [o.import_line() for o in build_plan(projet).ops if o.obj == "TP"]
assert "TP;ADD;24x7;Tous les jours, toute la journee" in lignes
assert any("monday;00:00-24:00" in ligne for ligne in lignes)