Le calendrier livre par Centreon figure au projet sans etre recree
This commit is contained in:
1 parent
bc18f93196
commit
032982cb28
7 files changed
+114
-7
No files matched your search
@@ -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)
|
||||
Reference in new issue
Block a user