Compare commits
No commits in common. "fcfe53e3cf08f1336f35cd88c7f17f429cea71c4" and "fcee1ea9b1251262eaf981c8d7d05252842f2839" have entirely different histories.
fcfe53e3cf
...
fcee1ea9b1
62 changed files with 878 additions and 9570 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
life_noc_fqdn: c7-life-noc-01
|
life_noc_fqdn: c7-life-noc-01
|
||||||
life_noc_admin_ui_enabled: true
|
|
||||||
life_noc_admin_user: icingadmin
|
life_noc_admin_user: icingadmin
|
||||||
life_noc_admin_password: l1f3_N0C_ADM
|
life_noc_admin_password: l1f3_N0C_ADM
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
[icinga]
|
[icinga]
|
||||||
c7-life-noc-01 ansible_host=Life-NOC.chezlepro.ca ansible_user=ansible
|
c7-life-noc-01 ansible_host=192.168.12.40 ansible_user=ansible
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,5 @@ life_noc_reload_icinga: true
|
||||||
life_noc_bpm_deploy_enabled: false
|
life_noc_bpm_deploy_enabled: false
|
||||||
life_noc_bpm_destination_dir: /etc/icingaweb2/modules/businessprocess/processes
|
life_noc_bpm_destination_dir: /etc/icingaweb2/modules/businessprocess/processes
|
||||||
life_noc_bpm_target_file: /etc/icingaweb2/modules/businessprocess/processes/Life-NOC.conf
|
life_noc_bpm_target_file: /etc/icingaweb2/modules/businessprocess/processes/Life-NOC.conf
|
||||||
life_noc_public_base_url: "http://{{ ansible_host | default(inventory_hostname) }}:8787"
|
|
||||||
life_noc_owner: root
|
life_noc_owner: root
|
||||||
life_noc_group: root
|
life_noc_group: root
|
||||||
life_noc_admin_ui_enabled: false
|
|
||||||
|
|
|
||||||
|
|
@ -46,15 +46,11 @@
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: preserve
|
mode: preserve
|
||||||
notify:
|
|
||||||
- restart life-noc input api
|
|
||||||
|
|
||||||
- name: generate icinga services from domains
|
- name: generate icinga services from domains
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: python3 scripts/generate_services.py
|
cmd: python3 scripts/generate_services.py
|
||||||
chdir: "{{ life_noc_project_root }}"
|
chdir: "{{ life_noc_project_root }}"
|
||||||
environment:
|
|
||||||
LIFE_NOC_PUBLIC_BASE_URL: "{{ life_noc_public_base_url }}"
|
|
||||||
changed_when: true
|
changed_when: true
|
||||||
|
|
||||||
- name: generate bpm from domains
|
- name: generate bpm from domains
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ Type=simple
|
||||||
User=root
|
User=root
|
||||||
Group=root
|
Group=root
|
||||||
WorkingDirectory={{ life_noc_project_root }}
|
WorkingDirectory={{ life_noc_project_root }}
|
||||||
Environment=LIFE_NOC_ADMIN_UI_ENABLED={{ "1" if (life_noc_admin_ui_enabled | bool) else "0" }}
|
|
||||||
ExecStart=/usr/bin/python3 -m uvicorn scripts.life_noc_input_api:app --host 0.0.0.0 --port 8787
|
ExecStart=/usr/bin/python3 -m uvicorn scripts.life_noc_input_api:app --host 0.0.0.0 --port 8787
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=3
|
RestartSec=3
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ INFRASTRUCTURE-CHEZLEPRO = life-noc;infrastructure-chezlepro-verification-proxmo
|
||||||
RESEAU-CHEZLEPRO = life-noc;reseau-chezlepro-verification-firewalls & life-noc;reseau-chezlepro-verification-vpn-openvpn & life-noc;reseau-chezlepro-verification-crl-certificats & life-noc;reseau-chezlepro-verification-switches & life-noc;reseau-chezlepro-verification-vlans-segmentation & life-noc;reseau-chezlepro-verification-dns & life-noc;reseau-chezlepro-verification-dynamic-dns & life-noc;reseau-chezlepro-audit-regles-firewall & life-noc;reseau-chezlepro-verification-geoblocking & life-noc;reseau-chezlepro-verification-certificats-publics
|
RESEAU-CHEZLEPRO = life-noc;reseau-chezlepro-verification-firewalls & life-noc;reseau-chezlepro-verification-vpn-openvpn & life-noc;reseau-chezlepro-verification-crl-certificats & life-noc;reseau-chezlepro-verification-switches & life-noc;reseau-chezlepro-verification-vlans-segmentation & life-noc;reseau-chezlepro-verification-dns & life-noc;reseau-chezlepro-verification-dynamic-dns & life-noc;reseau-chezlepro-audit-regles-firewall & life-noc;reseau-chezlepro-verification-geoblocking & life-noc;reseau-chezlepro-verification-certificats-publics
|
||||||
SECURITE-CHEZLEPRO = life-noc;securite-chezlepro-verification-mises-a-jour-securite & life-noc;securite-chezlepro-audit-comptes-acces & life-noc;securite-chezlepro-verification-ids-snort & life-noc;securite-chezlepro-revue-pki-privee & life-noc;securite-chezlepro-revue-politiques-securite & life-noc;securite-chezlepro-verification-sauvegardes-configuration
|
SECURITE-CHEZLEPRO = life-noc;securite-chezlepro-verification-mises-a-jour-securite & life-noc;securite-chezlepro-audit-comptes-acces & life-noc;securite-chezlepro-verification-ids-snort & life-noc;securite-chezlepro-revue-pki-privee & life-noc;securite-chezlepro-revue-politiques-securite & life-noc;securite-chezlepro-verification-sauvegardes-configuration
|
||||||
EXPLOITATION-CHEZLEPRO = life-noc;exploitation-chezlepro-revision-playbooks-ansible & life-noc;exploitation-chezlepro-verification-inventaires-ansible & life-noc;exploitation-chezlepro-revision-documentation-technique & life-noc;exploitation-chezlepro-verification-procedures-reprise & life-noc;exploitation-chezlepro-revue-capacite-ressources & life-noc;exploitation-chezlepro-verification-jobs-automatises
|
EXPLOITATION-CHEZLEPRO = life-noc;exploitation-chezlepro-revision-playbooks-ansible & life-noc;exploitation-chezlepro-verification-inventaires-ansible & life-noc;exploitation-chezlepro-revision-documentation-technique & life-noc;exploitation-chezlepro-verification-procedures-reprise & life-noc;exploitation-chezlepro-revue-capacite-ressources & life-noc;exploitation-chezlepro-verification-jobs-automatises
|
||||||
OBLIGATIONS-CHEZLEPRO = life-noc;obligations-chezlepro-verification-dossier-comptable-entreprise & life-noc;obligations-chezlepro-verification-facturation-clients & life-noc;obligations-chezlepro-verification-paiements-fournisseurs & life-noc;obligations-chezlepro-verification-contrats-ententes & life-noc;obligations-chezlepro-verification-registraire-entreprise & life-noc;obligations-chezlepro-verification-declarations-taxes & life-noc;obligations-chezlepro-verification-assurances-entreprise & life-noc;obligations-chezlepro-archivage-documents-entreprise
|
OBLIGATIONS-CHEZLEPRO = life-noc;obligations-chezlepro-verification-registraire-entreprise & life-noc;obligations-chezlepro-verification-declarations-taxes & life-noc;obligations-chezlepro-verification-dossier-comptable-entreprise & life-noc;obligations-chezlepro-verification-facturation-clients & life-noc;obligations-chezlepro-verification-paiements-fournisseurs & life-noc;obligations-chezlepro-verification-contrats-ententes & life-noc;obligations-chezlepro-verification-assurances-entreprise & life-noc;obligations-chezlepro-archivage-documents-entreprise
|
||||||
ACTIFS-CHEZLEPRO = life-noc;actifs-chezlepro-revision-inventaire-materiel & life-noc;actifs-chezlepro-verification-amortissables & life-noc;actifs-chezlepro-verification-serveurs-et-composants & life-noc;actifs-chezlepro-verification-reserve-pieces & life-noc;actifs-chezlepro-revision-actifs-transferts
|
ACTIFS-CHEZLEPRO = life-noc;actifs-chezlepro-revision-inventaire-materiel & life-noc;actifs-chezlepro-verification-amortissables & life-noc;actifs-chezlepro-verification-serveurs-et-composants & life-noc;actifs-chezlepro-verification-reserve-pieces & life-noc;actifs-chezlepro-revision-actifs-transferts
|
||||||
PROJETS = life-noc;projets-revision-life-noc & life-noc;projets-revision-alliance-boreale & life-noc;projets-revision-erplibre & life-noc;projets-revision-semence-numerique & life-noc;projets-revision-ortrux-1 & life-noc;projets-revision-district16
|
PROJETS = life-noc;projets-revision-life-noc & life-noc;projets-revision-alliance-boreale & life-noc;projets-revision-erplibre & life-noc;projets-revision-semence-numerique & life-noc;projets-revision-ortrux-1 & life-noc;projets-revision-district16
|
||||||
COMMUNAUTE = life-noc;communaute-verification-outils-aa & life-noc;communaute-verification-espace-87-16 & life-noc;communaute-verification-salles-visio-groupes & life-noc;communaute-verification-depots-rapports-rsg & life-noc;communaute-revision-outils-communication-communaute
|
COMMUNAUTE = life-noc;communaute-verification-outils-aa & life-noc;communaute-verification-espace-87-16 & life-noc;communaute-verification-salles-visio-groupes & life-noc;communaute-verification-depots-rapports-rsg & life-noc;communaute-revision-outils-communication-communaute
|
||||||
|
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
revision-inventaire-materiel:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-serveurs-et-composants:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-actifs-transferts:
|
|
||||||
value: '2026-03-17'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
revision-routine-soins-animaux:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
verification-outils-aa:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-espace-87-16:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-salles-visio-groupes:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-depots-rapports-rsg:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-outils-communication-communaute:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
revue-docs-personnelles-importantes:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-wiki-technique:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-base-connaissances:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-sauvegarde-docs-cles:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
inspection-batteries-lifepo4:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-can-rs485:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-cablage-energie:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-busbars:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-parametres-charge:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
test-charge-batteries:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
test-comportement-onduleur:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-journal-evenements-victron:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
revision-playbooks-ansible:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-inventaires-ansible:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-documentation-technique:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-procedures-reprise:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-capacite-ressources:
|
|
||||||
value: '2026-03-17'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-jobs-automatises:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
revision-comptes-bancaires:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-cartes-credit:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
paiement-cartes-credit:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-budget-personnel:
|
|
||||||
value: '2026-03-05'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-prelevements-automatiques:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-placements:
|
|
||||||
value: '2026-04-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-cotisations-reer:
|
|
||||||
value: '2026-02-21'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-celi:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
preparation-dossier-financier-annuel:
|
|
||||||
value: '2025-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
preparation-documents-impots:
|
|
||||||
value: '2026-03-08'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-avis-cotisation:
|
|
||||||
value: '2026-03-02'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
archivage-documents-fiscaux:
|
|
||||||
value: '2026-03-17'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
entretien-processus-focus:
|
|
||||||
value: '2026-03-02'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
nettoyage-inbox-mentale:
|
|
||||||
value: '2026-03-02'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-limitation-engagements:
|
|
||||||
value: '2026-02-28'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
inspection-rangement-plafond:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-inventaire-garage:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-rouille-outillage:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-securite-garage:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
rotation-stockage-bacs:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
verification-sauvegardes-personnelles:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
nettoyage-stockage-personnel:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-comptes-importants:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-mots-de-passe-personnels:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-documents-cloud-personnels:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
verification-proxmox:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
test-restauration-backups:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-pbs-truenas:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-apt-cacher-ng:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-icinga2:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-keycloak-openldap:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-nextcloud:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-mailcow:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-openvas:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-journaux-systemes:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
inspection-vignes:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
entretien-bleuetiers:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
entretien-framboisiers:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-kiwis-nordiques:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
entretien-rhubarbe:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-groseillier:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-muriers:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
entretien-houblon:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
remplacement-filtre-fournaise:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-fournaise:
|
|
||||||
value: '2026-03-19'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-thermopompe:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
nettoyage-unites-exterieures:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-toiture:
|
|
||||||
value: '2026-04-04'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-gouttieres:
|
|
||||||
value: '2026-05-05'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-fondation:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-drainage-terrain:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
test-detecteurs-fumee:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
test-detecteurs-co:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
remplacement-piles-detecteurs:
|
|
||||||
value: '2026-04-04'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-plomberie-visible:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-sump-pump:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-calfetrage:
|
|
||||||
value: '2026-04-18'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-portes-garage:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
verification-registraire-entreprise:
|
|
||||||
value: "2026-06-30"
|
|
||||||
captured_at: "2026-03-16T18:00:00Z"
|
|
||||||
origin: manual
|
|
||||||
|
|
||||||
verification-declarations-taxes:
|
|
||||||
value: "2026-04-30"
|
|
||||||
captured_at: "2026-03-16T18:00:00Z"
|
|
||||||
origin: manual
|
|
||||||
|
|
||||||
verification-assurances-entreprise:
|
|
||||||
value: "2026-10-01"
|
|
||||||
captured_at: "2026-03-16T18:00:00Z"
|
|
||||||
origin: manual
|
|
||||||
|
|
||||||
verification-dossier-comptable-entreprise:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
||||||
verification-facturation-clients:
|
|
||||||
value: '2026-03-10'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
||||||
verification-paiements-fournisseurs:
|
|
||||||
value: '2026-03-10'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
||||||
archivage-documents-entreprise:
|
|
||||||
value: '2026-03-02'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,20 +1,4 @@
|
||||||
renouvellement-permis-conduire:
|
renouvellement-permis-conduire:
|
||||||
value: '2026-09-20'
|
value: "2026-09-20"
|
||||||
captured_at: '2026-03-14T23:30:00Z'
|
captured_at: "2026-03-14T23:30:00Z"
|
||||||
origin: manual
|
origin: manual
|
||||||
verification-testament:
|
|
||||||
value: '2026-04-02'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-mandat-inaptitude:
|
|
||||||
value: '2026-04-02'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-directives-medicales:
|
|
||||||
value: '2026-01-16'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-papiers-identite:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
entretien-outils-jardin:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
inspection-outils-electriques:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-rallonges-et-connecteurs:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-compresseur-et-accessoires:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-inventaire-outillage:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
revision-life-noc:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-alliance-boreale:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-erplibre:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-semence-numerique:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-ortrux-1:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-district16:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
verification-certificats-publics:
|
|
||||||
value: "2026-06-15"
|
|
||||||
captured_at: "2026-03-16T18:00:00Z"
|
|
||||||
origin: manual
|
|
||||||
verification-firewalls:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-vpn-openvpn:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-switches:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-vlans-segmentation:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-dns:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-dynamic-dns:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
audit-regles-firewall:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-geoblocking:
|
|
||||||
value: '2026-02-14'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
test-generatrice-propane:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-procedure-bascule:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revision-plan-urgence:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
test-autonomie-base:
|
|
||||||
value: '2026-03-17'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -6,11 +6,3 @@ revue-hebdomadaire-priorites:
|
||||||
value: '2026-03-14'
|
value: '2026-03-14'
|
||||||
captured_at: '2026-03-14T23:16:41Z'
|
captured_at: '2026-03-14T23:16:41Z'
|
||||||
origin: manual
|
origin: manual
|
||||||
revue-mensuelle-systeme-vie:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-trimestrielle-orientation:
|
|
||||||
value: '2026-04-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
verification-expiration-medicaments:
|
|
||||||
value: "2026-09-30"
|
|
||||||
captured_at: "2026-03-16T18:00:00Z"
|
|
||||||
origin: manual
|
|
||||||
|
|
||||||
revision-rendez-vous-medicaux:
|
|
||||||
value: "2026-04-10"
|
|
||||||
captured_at: "2026-03-16T18:00:00Z"
|
|
||||||
origin: manual
|
|
||||||
|
|
||||||
verification-dossier-sante:
|
|
||||||
value: '2026-03-17'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
verification-mises-a-jour-securite:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
audit-comptes-acces:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-ids-snort:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
revue-politiques-securite:
|
|
||||||
value: '2026-03-03'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-sauvegardes-configuration:
|
|
||||||
value: '2026-03-15'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
rotation-nourriture-seche:
|
|
||||||
value: '2026-03-01'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
verification-immatriculation-assurance:
|
|
||||||
value: "2026-11-30"
|
|
||||||
captured_at: "2026-03-16T18:00:00Z"
|
|
||||||
origin: manual
|
|
||||||
verification-balais-essuie-glace:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
verification-eclairage:
|
|
||||||
value: '2026-01-31'
|
|
||||||
captured_at: '2026-03-16T00:00:00Z'
|
|
||||||
origin: seed_from_legacy_date
|
|
||||||
|
|
@ -1,125 +0,0 @@
|
||||||
# Interface web d'administration optionnelle — Life-NOC
|
|
||||||
|
|
||||||
## Objet
|
|
||||||
|
|
||||||
Ce document décrit l'interface web d'administration optionnelle ajoutée au service FastAPI existant de Life-NOC.
|
|
||||||
|
|
||||||
Elle permet de consulter et modifier `domains.yaml` depuis le web, en mode mobile-first, sans remplacer le flux opérationnel existant.
|
|
||||||
|
|
||||||
## Principes retenus
|
|
||||||
|
|
||||||
- `domains.yaml` demeure la **source de vérité opérationnelle**
|
|
||||||
- l'interface admin est **désactivée par défaut**
|
|
||||||
- si elle n'est pas activée, le comportement existant ne change pas
|
|
||||||
- l'API des intrants et les pages item continuent d'exister comme avant
|
|
||||||
- l'écriture vers `domains.yaml` est **atomique**
|
|
||||||
- une **copie de sauvegarde horodatée** de `domains.yaml` est produite avant chaque écriture
|
|
||||||
|
|
||||||
## Activation
|
|
||||||
|
|
||||||
Variable d'environnement utilisée par le service API :
|
|
||||||
|
|
||||||
```text
|
|
||||||
LIFE_NOC_ADMIN_UI_ENABLED=1
|
|
||||||
```
|
|
||||||
|
|
||||||
Côté Ansible, cette capacité est pilotée par :
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
life_noc_admin_ui_enabled: true
|
|
||||||
```
|
|
||||||
|
|
||||||
Par défaut :
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
life_noc_admin_ui_enabled: false
|
|
||||||
```
|
|
||||||
|
|
||||||
## Routes ajoutées
|
|
||||||
|
|
||||||
### Accueil admin
|
|
||||||
|
|
||||||
```text
|
|
||||||
GET /life-noc/admin
|
|
||||||
```
|
|
||||||
|
|
||||||
### Vue domaine
|
|
||||||
|
|
||||||
```text
|
|
||||||
GET /life-noc/admin/domain/<domaine>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Création d'item
|
|
||||||
|
|
||||||
```text
|
|
||||||
GET /life-noc/admin/domain/<domaine>/new
|
|
||||||
POST /life-noc/admin/domain/<domaine>/new
|
|
||||||
```
|
|
||||||
|
|
||||||
### Fiche item admin
|
|
||||||
|
|
||||||
```text
|
|
||||||
GET /life-noc/admin/item/<domaine>/<item_key>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Édition item
|
|
||||||
|
|
||||||
```text
|
|
||||||
GET /life-noc/admin/item/<domaine>/<item_key>/edit
|
|
||||||
POST /life-noc/admin/item/<domaine>/<item_key>/edit
|
|
||||||
```
|
|
||||||
|
|
||||||
### Réorganisation
|
|
||||||
|
|
||||||
```text
|
|
||||||
POST /life-noc/admin/domain/<domaine>/<item_key>/move
|
|
||||||
```
|
|
||||||
|
|
||||||
### Suppression
|
|
||||||
|
|
||||||
```text
|
|
||||||
POST /life-noc/admin/item/<domaine>/<item_key>/delete
|
|
||||||
```
|
|
||||||
|
|
||||||
## Champs éditables en v1
|
|
||||||
|
|
||||||
L'éditeur couvre les champs suivants :
|
|
||||||
|
|
||||||
- `name`
|
|
||||||
- `date`
|
|
||||||
- `title`
|
|
||||||
- `summary`
|
|
||||||
- `notes`
|
|
||||||
- `instructions`
|
|
||||||
- `notes_url`
|
|
||||||
- `instructions_url`
|
|
||||||
- `action_url`
|
|
||||||
- `probe.type`
|
|
||||||
- `probe.source.type`
|
|
||||||
- `probe.source.inputs_file`
|
|
||||||
- `probe.source.item_key`
|
|
||||||
- `metric.unit`
|
|
||||||
- `thresholds.*`
|
|
||||||
- `policy.on_error`
|
|
||||||
- `ui.form_mode`
|
|
||||||
- `ui.allow_complete`
|
|
||||||
- `ui.allow_manual_edit`
|
|
||||||
|
|
||||||
## Limites volontaires de cette tranche
|
|
||||||
|
|
||||||
- pas d'édition brute YAML
|
|
||||||
- pas de création de domaine
|
|
||||||
- pas d'import massif
|
|
||||||
- pas de validation métier avancée par type de sonde
|
|
||||||
- pas d'authentification applicative dédiée à ce stade
|
|
||||||
|
|
||||||
## Intégration retenue
|
|
||||||
|
|
||||||
L'interface admin est greffée au service FastAPI existant afin de :
|
|
||||||
|
|
||||||
- éviter un second service inutile
|
|
||||||
- réutiliser le point de déploiement déjà validé
|
|
||||||
- conserver une seule surface HTTP locale
|
|
||||||
|
|
||||||
L'interface admin ne devient pas le centre du système.
|
|
||||||
Elle n'est qu'une **surface d'édition facultative** du SSOT.
|
|
||||||
3207
domains (Copie).yaml
3207
domains (Copie).yaml
File diff suppressed because it is too large
Load diff
2658
domains.yaml
2658
domains.yaml
File diff suppressed because it is too large
Load diff
|
|
@ -5,22 +5,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "actifs-chezlepro-revision-inventaire-materiel" {
|
apply Service "actifs-chezlepro-revision-inventaire-materiel" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/actifs-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-inventaire-materiel"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-inventaire-materiel"
|
|
||||||
groups = [ "ACTIFS-CHEZLEPRO" ]
|
groups = [ "ACTIFS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revoir l'inventaire du matériel de Chezlepro"
|
notes = "Revoir l'inventaire du matériel de Chezlepro"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/revision-inventaire-materiel"
|
vars.instructions_url = "/life-noc/item/actifs-chezlepro/revision-inventaire-materiel"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,27 +22,18 @@ apply Service "actifs-chezlepro-verification-amortissables" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "ACTIFS-CHEZLEPRO" ]
|
groups = [ "ACTIFS-CHEZLEPRO" ]
|
||||||
notes = "Vérifier le registre des biens amortissables"
|
notes = "Vérifier le registre des biens amortissables"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/verification-amortissables"
|
vars.instructions_url = "/life-noc/item/actifs-chezlepro/verification-amortissables"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "actifs-chezlepro-verification-serveurs-et-composants" {
|
apply Service "actifs-chezlepro-verification-serveurs-et-composants" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/actifs-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-serveurs-et-composants"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-serveurs-et-composants"
|
|
||||||
groups = [ "ACTIFS-CHEZLEPRO" ]
|
groups = [ "ACTIFS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier l'état des serveurs et composants matériels"
|
notes = "Vérifier l'état des serveurs et composants matériels"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/verification-serveurs-et-composants"
|
vars.instructions_url = "/life-noc/item/actifs-chezlepro/verification-serveurs-et-composants"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -62,26 +44,17 @@ apply Service "actifs-chezlepro-verification-reserve-pieces" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "ACTIFS-CHEZLEPRO" ]
|
groups = [ "ACTIFS-CHEZLEPRO" ]
|
||||||
notes = "Vérifier les pièces de rechange critiques"
|
notes = "Vérifier les pièces de rechange critiques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/verification-reserve-pieces"
|
vars.instructions_url = "/life-noc/item/actifs-chezlepro/verification-reserve-pieces"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "actifs-chezlepro-revision-actifs-transferts" {
|
apply Service "actifs-chezlepro-revision-actifs-transferts" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/actifs-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-actifs-transferts"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-actifs-transferts"
|
|
||||||
groups = [ "ACTIFS-CHEZLEPRO" ]
|
groups = [ "ACTIFS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Réviser les actifs transférés ou à transférer à l'entreprise"
|
notes = "Réviser les actifs transférés ou à transférer à l'entreprise"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/revision-actifs-transferts"
|
vars.instructions_url = "/life-noc/item/actifs-chezlepro/revision-actifs-transferts"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ apply Service "animaux-verification-stock-nourriture-chats" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "ANIMAUX" ]
|
groups = [ "ANIMAUX" ]
|
||||||
notes = "Vérification du stock de nourriture pour chats"
|
notes = "Vérification du stock de nourriture pour chats"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/animaux/verification-stock-nourriture-chats"
|
vars.instructions_url = "/life-noc/item/animaux/verification-stock-nourriture-chats"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -22,26 +22,17 @@ apply Service "animaux-verification-friandises-et-litiere" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "ANIMAUX" ]
|
groups = [ "ANIMAUX" ]
|
||||||
notes = "Vérification des stocks de friandises et de litière"
|
notes = "Vérification des stocks de friandises et de litière"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/animaux/verification-friandises-et-litiere"
|
vars.instructions_url = "/life-noc/item/animaux/verification-friandises-et-litiere"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "animaux-revision-routine-soins-animaux" {
|
apply Service "animaux-revision-routine-soins-animaux" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/animaux.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-routine-soins-animaux"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-routine-soins-animaux"
|
|
||||||
groups = [ "ANIMAUX" ]
|
groups = [ "ANIMAUX" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue de la routine de soins et des besoins matériels des chats"
|
notes = "Revue de la routine de soins et des besoins matériels des chats"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/animaux/revision-routine-soins-animaux"
|
vars.instructions_url = "/life-noc/item/animaux/revision-routine-soins-animaux"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,101 +5,56 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "communaute-verification-outils-aa" {
|
apply Service "communaute-verification-outils-aa" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/communaute.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-outils-aa"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-outils-aa"
|
|
||||||
groups = [ "COMMUNAUTE" ]
|
groups = [ "COMMUNAUTE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les outils numériques liés aux activités communautaires"
|
notes = "Vérifier les outils numériques liés aux activités communautaires"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-outils-aa"
|
vars.instructions_url = "/life-noc/item/communaute/verification-outils-aa"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "communaute-verification-espace-87-16" {
|
apply Service "communaute-verification-espace-87-16" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/communaute.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-espace-87-16"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-espace-87-16"
|
|
||||||
groups = [ "COMMUNAUTE" ]
|
groups = [ "COMMUNAUTE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier l'espace Nextcloud du district"
|
notes = "Vérifier l'espace Nextcloud du district"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-espace-87-16"
|
vars.instructions_url = "/life-noc/item/communaute/verification-espace-87-16"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "communaute-verification-salles-visio-groupes" {
|
apply Service "communaute-verification-salles-visio-groupes" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/communaute.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-salles-visio-groupes"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-salles-visio-groupes"
|
|
||||||
groups = [ "COMMUNAUTE" ]
|
groups = [ "COMMUNAUTE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les salles de visioconférence des groupes"
|
notes = "Vérifier les salles de visioconférence des groupes"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-salles-visio-groupes"
|
vars.instructions_url = "/life-noc/item/communaute/verification-salles-visio-groupes"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "communaute-verification-depots-rapports-rsg" {
|
apply Service "communaute-verification-depots-rapports-rsg" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/communaute.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-depots-rapports-rsg"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-depots-rapports-rsg"
|
|
||||||
groups = [ "COMMUNAUTE" ]
|
groups = [ "COMMUNAUTE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les dépôts de rapports RSG"
|
notes = "Vérifier les dépôts de rapports RSG"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-depots-rapports-rsg"
|
vars.instructions_url = "/life-noc/item/communaute/verification-depots-rapports-rsg"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "communaute-revision-outils-communication-communaute" {
|
apply Service "communaute-revision-outils-communication-communaute" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/communaute.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-outils-communication-communaute"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-outils-communication-communaute"
|
|
||||||
groups = [ "COMMUNAUTE" ]
|
groups = [ "COMMUNAUTE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Réviser les moyens de communication communautaires"
|
notes = "Réviser les moyens de communication communautaires"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/revision-outils-communication-communaute"
|
vars.instructions_url = "/life-noc/item/communaute/revision-outils-communication-communaute"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,81 +5,45 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "documentation-revue-docs-personnelles-importantes" {
|
apply Service "documentation-revue-docs-personnelles-importantes" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/documentation.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-docs-personnelles-importantes"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-docs-personnelles-importantes"
|
|
||||||
groups = [ "DOCUMENTATION" ]
|
groups = [ "DOCUMENTATION" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revoir l'organisation des documents personnels importants"
|
notes = "Revoir l'organisation des documents personnels importants"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/revue-docs-personnelles-importantes"
|
vars.instructions_url = "/life-noc/item/documentation/revue-docs-personnelles-importantes"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "documentation-revue-wiki-technique" {
|
apply Service "documentation-revue-wiki-technique" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/documentation.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-wiki-technique"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-wiki-technique"
|
|
||||||
groups = [ "DOCUMENTATION" ]
|
groups = [ "DOCUMENTATION" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revoir le wiki technique et sa cohérence"
|
notes = "Revoir le wiki technique et sa cohérence"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/revue-wiki-technique"
|
vars.instructions_url = "/life-noc/item/documentation/revue-wiki-technique"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "documentation-revue-base-connaissances" {
|
apply Service "documentation-revue-base-connaissances" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/documentation.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-base-connaissances"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-base-connaissances"
|
|
||||||
groups = [ "DOCUMENTATION" ]
|
groups = [ "DOCUMENTATION" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revoir la base de connaissances globale"
|
notes = "Revoir la base de connaissances globale"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/revue-base-connaissances"
|
vars.instructions_url = "/life-noc/item/documentation/revue-base-connaissances"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "documentation-verification-sauvegarde-docs-cles" {
|
apply Service "documentation-verification-sauvegarde-docs-cles" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/documentation.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-sauvegarde-docs-cles"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-sauvegarde-docs-cles"
|
|
||||||
groups = [ "DOCUMENTATION" ]
|
groups = [ "DOCUMENTATION" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier la sauvegarde des documents clés"
|
notes = "Vérifier la sauvegarde des documents clés"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/verification-sauvegarde-docs-cles"
|
vars.instructions_url = "/life-noc/item/documentation/verification-sauvegarde-docs-cles"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "energie-inspection-batteries-lifepo4" {
|
apply Service "energie-inspection-batteries-lifepo4" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-batteries-lifepo4"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-batteries-lifepo4"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection physique et logique des batteries LiFePO4"
|
notes = "Inspection physique et logique des batteries LiFePO4"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/inspection-batteries-lifepo4"
|
vars.instructions_url = "/life-noc/item/energie/inspection-batteries-lifepo4"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,7 +22,7 @@ apply Service "energie-verification-tension-batteries" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
notes = "Vérification des tensions et cohérence des batteries"
|
notes = "Vérification des tensions et cohérence des batteries"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-tension-batteries"
|
vars.instructions_url = "/life-noc/item/energie/verification-tension-batteries"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,7 +33,7 @@ apply Service "energie-verification-smartshunt" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
notes = "Vérification SmartShunt et cohérence du monitoring"
|
notes = "Vérification SmartShunt et cohérence du monitoring"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-smartshunt"
|
vars.instructions_url = "/life-noc/item/energie/verification-smartshunt"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,146 +44,83 @@ apply Service "energie-verification-cerbo-gx" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
notes = "Vérification Cerbo GX et remontée des données"
|
notes = "Vérification Cerbo GX et remontée des données"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-cerbo-gx"
|
vars.instructions_url = "/life-noc/item/energie/verification-cerbo-gx"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "energie-verification-can-rs485" {
|
apply Service "energie-verification-can-rs485" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-can-rs485"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-can-rs485"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des communications CAN ou RS485"
|
notes = "Vérification des communications CAN ou RS485"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-can-rs485"
|
vars.instructions_url = "/life-noc/item/energie/verification-can-rs485"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "energie-inspection-cablage-energie" {
|
apply Service "energie-inspection-cablage-energie" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-cablage-energie"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-cablage-energie"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection du câblage et des connexions énergétiques"
|
notes = "Inspection du câblage et des connexions énergétiques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/inspection-cablage-energie"
|
vars.instructions_url = "/life-noc/item/energie/inspection-cablage-energie"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "energie-verification-busbars" {
|
apply Service "energie-verification-busbars" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-busbars"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-busbars"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification du serrage, corrosion et échauffement des busbars"
|
notes = "Vérification du serrage, corrosion et échauffement des busbars"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-busbars"
|
vars.instructions_url = "/life-noc/item/energie/verification-busbars"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "energie-verification-parametres-charge" {
|
apply Service "energie-verification-parametres-charge" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-parametres-charge"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-parametres-charge"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des paramètres de charge et float"
|
notes = "Vérification des paramètres de charge et float"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-parametres-charge"
|
vars.instructions_url = "/life-noc/item/energie/verification-parametres-charge"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "energie-test-charge-batteries" {
|
apply Service "energie-test-charge-batteries" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "test-charge-batteries"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "test-charge-batteries"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Test de comportement en charge des batteries"
|
notes = "Test de comportement en charge des batteries"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/test-charge-batteries"
|
vars.instructions_url = "/life-noc/item/energie/test-charge-batteries"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "energie-test-comportement-onduleur" {
|
apply Service "energie-test-comportement-onduleur" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "test-comportement-onduleur"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "test-comportement-onduleur"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier le comportement du Multiplus sous charge légère"
|
notes = "Vérifier le comportement du Multiplus sous charge légère"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/test-comportement-onduleur"
|
vars.instructions_url = "/life-noc/item/energie/test-comportement-onduleur"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "energie-verification-journal-evenements-victron" {
|
apply Service "energie-verification-journal-evenements-victron" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-journal-evenements-victron"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-journal-evenements-victron"
|
|
||||||
groups = [ "ENERGIE" ]
|
groups = [ "ENERGIE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des événements et anomalies Victron"
|
notes = "Vérification des événements et anomalies Victron"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-journal-evenements-victron"
|
vars.instructions_url = "/life-noc/item/energie/verification-journal-evenements-victron"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,121 +5,67 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "exploitation-chezlepro-revision-playbooks-ansible" {
|
apply Service "exploitation-chezlepro-revision-playbooks-ansible" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/exploitation-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-playbooks-ansible"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-playbooks-ansible"
|
|
||||||
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue des playbooks Ansible"
|
notes = "Revue des playbooks Ansible"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/revision-playbooks-ansible"
|
vars.instructions_url = "/life-noc/item/exploitation-chezlepro/revision-playbooks-ansible"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "exploitation-chezlepro-verification-inventaires-ansible" {
|
apply Service "exploitation-chezlepro-verification-inventaires-ansible" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/exploitation-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-inventaires-ansible"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-inventaires-ansible"
|
|
||||||
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des inventaires Ansible"
|
notes = "Vérification des inventaires Ansible"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/verification-inventaires-ansible"
|
vars.instructions_url = "/life-noc/item/exploitation-chezlepro/verification-inventaires-ansible"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "exploitation-chezlepro-revision-documentation-technique" {
|
apply Service "exploitation-chezlepro-revision-documentation-technique" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/exploitation-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-documentation-technique"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-documentation-technique"
|
|
||||||
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue de la documentation technique Chezlepro"
|
notes = "Revue de la documentation technique Chezlepro"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/revision-documentation-technique"
|
vars.instructions_url = "/life-noc/item/exploitation-chezlepro/revision-documentation-technique"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "exploitation-chezlepro-verification-procedures-reprise" {
|
apply Service "exploitation-chezlepro-verification-procedures-reprise" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/exploitation-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-procedures-reprise"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-procedures-reprise"
|
|
||||||
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les procédures de reprise et restauration"
|
notes = "Vérifier les procédures de reprise et restauration"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/verification-procedures-reprise"
|
vars.instructions_url = "/life-noc/item/exploitation-chezlepro/verification-procedures-reprise"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "exploitation-chezlepro-revue-capacite-ressources" {
|
apply Service "exploitation-chezlepro-revue-capacite-ressources" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/exploitation-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-capacite-ressources"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-capacite-ressources"
|
|
||||||
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue CPU RAM stockage et charge de l'infrastructure"
|
notes = "Revue CPU RAM stockage et charge de l'infrastructure"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/revue-capacite-ressources"
|
vars.instructions_url = "/life-noc/item/exploitation-chezlepro/revue-capacite-ressources"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "exploitation-chezlepro-verification-jobs-automatises" {
|
apply Service "exploitation-chezlepro-verification-jobs-automatises" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/exploitation-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-jobs-automatises"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-jobs-automatises"
|
|
||||||
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
groups = [ "EXPLOITATION-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des jobs automatisés et scripts périodiques"
|
notes = "Vérification des jobs automatisés et scripts périodiques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/verification-jobs-automatises"
|
vars.instructions_url = "/life-noc/item/exploitation-chezlepro/verification-jobs-automatises"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,181 +5,100 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "finances-personnelles-revision-comptes-bancaires" {
|
apply Service "finances-personnelles-revision-comptes-bancaires" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-comptes-bancaires"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-comptes-bancaires"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision mensuelle des comptes bancaires personnels"
|
notes = "Révision mensuelle des comptes bancaires personnels"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/revision-comptes-bancaires"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/revision-comptes-bancaires"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-verification-cartes-credit" {
|
apply Service "finances-personnelles-verification-cartes-credit" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-cartes-credit"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-cartes-credit"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des soldes et transactions des cartes de crédit"
|
notes = "Vérification des soldes et transactions des cartes de crédit"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-cartes-credit"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/verification-cartes-credit"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-paiement-cartes-credit" {
|
apply Service "finances-personnelles-paiement-cartes-credit" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "paiement-cartes-credit"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "paiement-cartes-credit"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Paiement des cartes de crédit personnelles"
|
notes = "Paiement des cartes de crédit personnelles"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/paiement-cartes-credit"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/paiement-cartes-credit"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-revision-budget-personnel" {
|
apply Service "finances-personnelles-revision-budget-personnel" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-05"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-budget-personnel"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-budget-personnel"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision mensuelle du budget personnel"
|
notes = "Révision mensuelle du budget personnel"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/revision-budget-personnel"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/revision-budget-personnel"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-verification-prelevements-automatiques" {
|
apply Service "finances-personnelles-verification-prelevements-automatiques" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-03"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-prelevements-automatiques"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-prelevements-automatiques"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des prélèvements automatiques personnels"
|
notes = "Vérification des prélèvements automatiques personnels"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-prelevements-automatiques"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/verification-prelevements-automatiques"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-verification-placements" {
|
apply Service "finances-personnelles-verification-placements" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-30"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-placements"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-placements"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification périodique des placements et comptes enregistrés"
|
notes = "Vérification périodique des placements et comptes enregistrés"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-placements"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/verification-placements"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-verification-cotisations-reer" {
|
apply Service "finances-personnelles-verification-cotisations-reer" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-02-28"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-cotisations-reer"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-cotisations-reer"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "5"
|
|
||||||
vars.life_noc_threshold_ok_gte = "5"
|
|
||||||
vars.life_noc_threshold_warning_gte = "7"
|
|
||||||
vars.life_noc_threshold_critical_gte = "10"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des cotisations REER"
|
notes = "Vérification des cotisations REER"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-cotisations-reer"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/verification-cotisations-reer"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-verification-celi" {
|
apply Service "finances-personnelles-verification-celi" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-celi"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-celi"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de l'espace CELI et de son utilisation"
|
notes = "Vérification de l'espace CELI et de son utilisation"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-celi"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/verification-celi"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "finances-personnelles-preparation-dossier-financier-annuel" {
|
apply Service "finances-personnelles-preparation-dossier-financier-annuel" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-01-31"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/finances-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "preparation-dossier-financier-annuel"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "preparation-dossier-financier-annuel"
|
|
||||||
groups = [ "FINANCES-PERSONNELLES" ]
|
groups = [ "FINANCES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "300"
|
|
||||||
vars.life_noc_threshold_ok_gte = "300"
|
|
||||||
vars.life_noc_threshold_warning_gte = "365"
|
|
||||||
vars.life_noc_threshold_critical_gte = "395"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Préparer le dossier financier annuel personnel"
|
notes = "Préparer le dossier financier annuel personnel"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/preparation-dossier-financier-annuel"
|
vars.instructions_url = "/life-noc/item/finances-personnelles/preparation-dossier-financier-annuel"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "fiscalite-personnelle-preparation-documents-impots" {
|
apply Service "fiscalite-personnelle-preparation-documents-impots" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-03-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/fiscalite-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "preparation-documents-impots"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "preparation-documents-impots"
|
|
||||||
groups = [ "FISCALITE-PERSONNELLE" ]
|
groups = [ "FISCALITE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "5"
|
|
||||||
vars.life_noc_threshold_ok_gte = "5"
|
|
||||||
vars.life_noc_threshold_warning_gte = "7"
|
|
||||||
vars.life_noc_threshold_critical_gte = "10"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Rassembler tous les documents fiscaux personnels"
|
notes = "Rassembler tous les documents fiscaux personnels"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/preparation-documents-impots"
|
vars.instructions_url = "/life-noc/item/fiscalite-personnelle/preparation-documents-impots"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,7 +22,7 @@ apply Service "fiscalite-personnelle-production-impots-federal" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "FISCALITE-PERSONNELLE" ]
|
groups = [ "FISCALITE-PERSONNELLE" ]
|
||||||
notes = "Produire la déclaration de revenus fédérale"
|
notes = "Produire la déclaration de revenus fédérale"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/production-impots-federal"
|
vars.instructions_url = "/life-noc/item/fiscalite-personnelle/production-impots-federal"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,7 +33,7 @@ apply Service "fiscalite-personnelle-production-impots-quebec" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "FISCALITE-PERSONNELLE" ]
|
groups = [ "FISCALITE-PERSONNELLE" ]
|
||||||
notes = "Produire la déclaration de revenus Québec"
|
notes = "Produire la déclaration de revenus Québec"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/production-impots-quebec"
|
vars.instructions_url = "/life-noc/item/fiscalite-personnelle/production-impots-quebec"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,47 +44,29 @@ apply Service "fiscalite-personnelle-paiement-solde-impots" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "FISCALITE-PERSONNELLE" ]
|
groups = [ "FISCALITE-PERSONNELLE" ]
|
||||||
notes = "Payer tout solde d'impôt exigible"
|
notes = "Payer tout solde d'impôt exigible"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/paiement-solde-impots"
|
vars.instructions_url = "/life-noc/item/fiscalite-personnelle/paiement-solde-impots"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "fiscalite-personnelle-verification-avis-cotisation" {
|
apply Service "fiscalite-personnelle-verification-avis-cotisation" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-31"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/fiscalite-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-avis-cotisation"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-avis-cotisation"
|
|
||||||
groups = [ "FISCALITE-PERSONNELLE" ]
|
groups = [ "FISCALITE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les avis de cotisation ARC et Revenu Québec"
|
notes = "Vérifier les avis de cotisation ARC et Revenu Québec"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/verification-avis-cotisation"
|
vars.instructions_url = "/life-noc/item/fiscalite-personnelle/verification-avis-cotisation"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "fiscalite-personnelle-archivage-documents-fiscaux" {
|
apply Service "fiscalite-personnelle-archivage-documents-fiscaux" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/fiscalite-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "archivage-documents-fiscaux"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "archivage-documents-fiscaux"
|
|
||||||
groups = [ "FISCALITE-PERSONNELLE" ]
|
groups = [ "FISCALITE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Archiver les documents fiscaux personnels"
|
notes = "Archiver les documents fiscaux personnels"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/archivage-documents-fiscaux"
|
vars.instructions_url = "/life-noc/item/fiscalite-personnelle/archivage-documents-fiscaux"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,6 +77,6 @@ apply Service "fiscalite-personnelle-verification-acomptes-provisionnels" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "FISCALITE-PERSONNELLE" ]
|
groups = [ "FISCALITE-PERSONNELLE" ]
|
||||||
notes = "Vérifier si des acomptes provisionnels sont requis"
|
notes = "Vérifier si des acomptes provisionnels sont requis"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/verification-acomptes-provisionnels"
|
vars.instructions_url = "/life-noc/item/fiscalite-personnelle/verification-acomptes-provisionnels"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,61 +5,34 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "focus-entretien-processus-focus" {
|
apply Service "focus-entretien-processus-focus" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-03-09"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/focus.yaml"
|
|
||||||
vars.life_noc_item_key = "entretien-processus-focus"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "entretien-processus-focus"
|
|
||||||
groups = [ "FOCUS" ]
|
groups = [ "FOCUS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "5"
|
|
||||||
vars.life_noc_threshold_ok_gte = "5"
|
|
||||||
vars.life_noc_threshold_warning_gte = "7"
|
|
||||||
vars.life_noc_threshold_critical_gte = "10"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier que les cartouches FOCUS sont à jour"
|
notes = "Vérifier que les cartouches FOCUS sont à jour"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/focus/entretien-processus-focus"
|
vars.instructions_url = "/life-noc/item/focus/entretien-processus-focus"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "focus-nettoyage-inbox-mentale" {
|
apply Service "focus-nettoyage-inbox-mentale" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-03-09"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/focus.yaml"
|
|
||||||
vars.life_noc_item_key = "nettoyage-inbox-mentale"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "nettoyage-inbox-mentale"
|
|
||||||
groups = [ "FOCUS" ]
|
groups = [ "FOCUS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "5"
|
|
||||||
vars.life_noc_threshold_ok_gte = "5"
|
|
||||||
vars.life_noc_threshold_warning_gte = "7"
|
|
||||||
vars.life_noc_threshold_critical_gte = "10"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vider et clarifier les éléments capturés hors système"
|
notes = "Vider et clarifier les éléments capturés hors système"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/focus/nettoyage-inbox-mentale"
|
vars.instructions_url = "/life-noc/item/focus/nettoyage-inbox-mentale"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "focus-revue-limitation-engagements" {
|
apply Service "focus-revue-limitation-engagements" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-03-31"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/focus.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-limitation-engagements"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-limitation-engagements"
|
|
||||||
groups = [ "FOCUS" ]
|
groups = [ "FOCUS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier que les engagements actifs demeurent réalistes"
|
notes = "Vérifier que les engagements actifs demeurent réalistes"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/focus/revue-limitation-engagements"
|
vars.instructions_url = "/life-noc/item/focus/revue-limitation-engagements"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,101 +5,56 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "garage-et-rangement-inspection-rangement-plafond" {
|
apply Service "garage-et-rangement-inspection-rangement-plafond" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/garage-et-rangement.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-rangement-plafond"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-rangement-plafond"
|
|
||||||
groups = [ "GARAGE-ET-RANGEMENT" ]
|
groups = [ "GARAGE-ET-RANGEMENT" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des supports suspendus au plafond du garage"
|
notes = "Vérification des supports suspendus au plafond du garage"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/inspection-rangement-plafond"
|
vars.instructions_url = "/life-noc/item/garage-et-rangement/inspection-rangement-plafond"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "garage-et-rangement-revue-inventaire-garage" {
|
apply Service "garage-et-rangement-revue-inventaire-garage" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/garage-et-rangement.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-inventaire-garage"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-inventaire-garage"
|
|
||||||
groups = [ "GARAGE-ET-RANGEMENT" ]
|
groups = [ "GARAGE-ET-RANGEMENT" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue de l'inventaire et de l'ordre du garage"
|
notes = "Revue de l'inventaire et de l'ordre du garage"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/revue-inventaire-garage"
|
vars.instructions_url = "/life-noc/item/garage-et-rangement/revue-inventaire-garage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "garage-et-rangement-verification-rouille-outillage" {
|
apply Service "garage-et-rangement-verification-rouille-outillage" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/garage-et-rangement.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-rouille-outillage"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-rouille-outillage"
|
|
||||||
groups = [ "GARAGE-ET-RANGEMENT" ]
|
groups = [ "GARAGE-ET-RANGEMENT" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de la corrosion sur les outils et équipements"
|
notes = "Vérification de la corrosion sur les outils et équipements"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/verification-rouille-outillage"
|
vars.instructions_url = "/life-noc/item/garage-et-rangement/verification-rouille-outillage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "garage-et-rangement-inspection-securite-garage" {
|
apply Service "garage-et-rangement-inspection-securite-garage" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/garage-et-rangement.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-securite-garage"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-securite-garage"
|
|
||||||
groups = [ "GARAGE-ET-RANGEMENT" ]
|
groups = [ "GARAGE-ET-RANGEMENT" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des conditions de sécurité du garage"
|
notes = "Vérification des conditions de sécurité du garage"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/inspection-securite-garage"
|
vars.instructions_url = "/life-noc/item/garage-et-rangement/inspection-securite-garage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "garage-et-rangement-rotation-stockage-bacs" {
|
apply Service "garage-et-rangement-rotation-stockage-bacs" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/garage-et-rangement.yaml"
|
|
||||||
vars.life_noc_item_key = "rotation-stockage-bacs"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "rotation-stockage-bacs"
|
|
||||||
groups = [ "GARAGE-ET-RANGEMENT" ]
|
groups = [ "GARAGE-ET-RANGEMENT" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue des contenus de bacs de rangement"
|
notes = "Revue des contenus de bacs de rangement"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/rotation-stockage-bacs"
|
vars.instructions_url = "/life-noc/item/garage-et-rangement/rotation-stockage-bacs"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,101 +5,56 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "informatique-personnelle-verification-sauvegardes-personnelles" {
|
apply Service "informatique-personnelle-verification-sauvegardes-personnelles" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/informatique-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-sauvegardes-personnelles"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-sauvegardes-personnelles"
|
|
||||||
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des sauvegardes personnelles"
|
notes = "Vérification des sauvegardes personnelles"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/verification-sauvegardes-personnelles"
|
vars.instructions_url = "/life-noc/item/informatique-personnelle/verification-sauvegardes-personnelles"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "informatique-personnelle-nettoyage-stockage-personnel" {
|
apply Service "informatique-personnelle-nettoyage-stockage-personnel" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/informatique-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "nettoyage-stockage-personnel"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "nettoyage-stockage-personnel"
|
|
||||||
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Nettoyage du stockage numérique personnel"
|
notes = "Nettoyage du stockage numérique personnel"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/nettoyage-stockage-personnel"
|
vars.instructions_url = "/life-noc/item/informatique-personnelle/nettoyage-stockage-personnel"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "informatique-personnelle-verification-comptes-importants" {
|
apply Service "informatique-personnelle-verification-comptes-importants" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/informatique-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-comptes-importants"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-comptes-importants"
|
|
||||||
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des comptes numériques personnels importants"
|
notes = "Vérification des comptes numériques personnels importants"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/verification-comptes-importants"
|
vars.instructions_url = "/life-noc/item/informatique-personnelle/verification-comptes-importants"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "informatique-personnelle-revue-mots-de-passe-personnels" {
|
apply Service "informatique-personnelle-revue-mots-de-passe-personnels" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/informatique-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-mots-de-passe-personnels"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-mots-de-passe-personnels"
|
|
||||||
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue des mots de passe personnels critiques"
|
notes = "Revue des mots de passe personnels critiques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/revue-mots-de-passe-personnels"
|
vars.instructions_url = "/life-noc/item/informatique-personnelle/revue-mots-de-passe-personnels"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "informatique-personnelle-verification-documents-cloud-personnels" {
|
apply Service "informatique-personnelle-verification-documents-cloud-personnels" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/informatique-personnelle.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-documents-cloud-personnels"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-documents-cloud-personnels"
|
|
||||||
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
groups = [ "INFORMATIQUE-PERSONNELLE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier la cohérence des documents personnels sauvegardés"
|
notes = "Vérifier la cohérence des documents personnels sauvegardés"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/verification-documents-cloud-personnels"
|
vars.instructions_url = "/life-noc/item/informatique-personnelle/verification-documents-cloud-personnels"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-proxmox" {
|
apply Service "infrastructure-chezlepro-verification-proxmox" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-proxmox"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-proxmox"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification générale de l'environnement Proxmox"
|
notes = "Vérification générale de l'environnement Proxmox"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-proxmox"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-proxmox"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,47 +22,29 @@ apply Service "infrastructure-chezlepro-verification-ceph" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
notes = "Vérification générale de l'état Ceph"
|
notes = "Vérification générale de l'état Ceph"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-ceph"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-ceph"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-test-restauration-backups" {
|
apply Service "infrastructure-chezlepro-test-restauration-backups" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "test-restauration-backups"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "test-restauration-backups"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Test de restauration des sauvegardes"
|
notes = "Test de restauration des sauvegardes"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/test-restauration-backups"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/test-restauration-backups"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-pbs-truenas" {
|
apply Service "infrastructure-chezlepro-verification-pbs-truenas" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-pbs-truenas"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-pbs-truenas"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des solutions de sauvegarde et synchronisation"
|
notes = "Vérification des solutions de sauvegarde et synchronisation"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-pbs-truenas"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-pbs-truenas"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -82,7 +55,7 @@ apply Service "infrastructure-chezlepro-verification-ups-infrastructure" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
notes = "Vérification des UPS de l'infrastructure"
|
notes = "Vérification des UPS de l'infrastructure"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-ups-infrastructure"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-ups-infrastructure"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -93,146 +66,83 @@ apply Service "infrastructure-chezlepro-verification-capacite-stockage" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
notes = "Vérifier capacité et croissance du stockage"
|
notes = "Vérifier capacité et croissance du stockage"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-capacite-stockage"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-capacite-stockage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-apt-cacher-ng" {
|
apply Service "infrastructure-chezlepro-verification-apt-cacher-ng" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-apt-cacher-ng"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-apt-cacher-ng"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification du bon fonctionnement d'apt-cacher-ng"
|
notes = "Vérification du bon fonctionnement d'apt-cacher-ng"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-apt-cacher-ng"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-apt-cacher-ng"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-icinga2" {
|
apply Service "infrastructure-chezlepro-verification-icinga2" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-icinga2"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-icinga2"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de la supervision Icinga2"
|
notes = "Vérification de la supervision Icinga2"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-icinga2"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-icinga2"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-keycloak-openldap" {
|
apply Service "infrastructure-chezlepro-verification-keycloak-openldap" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-keycloak-openldap"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-keycloak-openldap"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de l'identité et de l'authentification centralisées"
|
notes = "Vérification de l'identité et de l'authentification centralisées"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-keycloak-openldap"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-keycloak-openldap"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-nextcloud" {
|
apply Service "infrastructure-chezlepro-verification-nextcloud" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-nextcloud"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-nextcloud"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de l'état Nextcloud"
|
notes = "Vérification de l'état Nextcloud"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-nextcloud"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-nextcloud"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-mailcow" {
|
apply Service "infrastructure-chezlepro-verification-mailcow" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-mailcow"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-mailcow"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de l'infrastructure Mailcow"
|
notes = "Vérification de l'infrastructure Mailcow"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-mailcow"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-mailcow"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-openvas" {
|
apply Service "infrastructure-chezlepro-verification-openvas" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-openvas"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-openvas"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de la plateforme OpenVAS"
|
notes = "Vérification de la plateforme OpenVAS"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-openvas"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-openvas"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "infrastructure-chezlepro-verification-journaux-systemes" {
|
apply Service "infrastructure-chezlepro-verification-journaux-systemes" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-journaux-systemes"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-journaux-systemes"
|
|
||||||
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue des journaux systèmes critiques"
|
notes = "Revue des journaux systèmes critiques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-journaux-systemes"
|
vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-journaux-systemes"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,162 +5,90 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "jardin-inspection-vignes" {
|
apply Service "jardin-inspection-vignes" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-vignes"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-vignes"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection et entretien des vignes"
|
notes = "Inspection et entretien des vignes"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-vignes"
|
vars.instructions_url = "/life-noc/item/jardin/inspection-vignes"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "jardin-entretien-bleuetiers" {
|
apply Service "jardin-entretien-bleuetiers" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "entretien-bleuetiers"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "entretien-bleuetiers"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Entretien des bleuetiers"
|
notes = "Entretien des bleuetiers"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-bleuetiers"
|
vars.instructions_url = "/life-noc/item/jardin/entretien-bleuetiers"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "jardin-entretien-framboisiers" {
|
apply Service "jardin-entretien-framboisiers" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "entretien-framboisiers"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "entretien-framboisiers"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Entretien des framboisiers"
|
notes = "Entretien des framboisiers"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-framboisiers"
|
vars.instructions_url = "/life-noc/item/jardin/entretien-framboisiers"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "jardin-inspection-kiwis-nordiques" {
|
apply Service "jardin-inspection-kiwis-nordiques" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-kiwis-nordiques"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-kiwis-nordiques"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des kiwis nordiques"
|
notes = "Vérification des kiwis nordiques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-kiwis-nordiques"
|
vars.instructions_url = "/life-noc/item/jardin/inspection-kiwis-nordiques"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "jardin-entretien-rhubarbe" {
|
apply Service "jardin-entretien-rhubarbe" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "entretien-rhubarbe"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "entretien-rhubarbe"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Entretien de la rhubarbe"
|
notes = "Entretien de la rhubarbe"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-rhubarbe"
|
vars.instructions_url = "/life-noc/item/jardin/entretien-rhubarbe"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "jardin-inspection-groseillier" {
|
apply Service "jardin-inspection-groseillier" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-groseillier"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-groseillier"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection du groseillier"
|
notes = "Inspection du groseillier"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-groseillier"
|
vars.instructions_url = "/life-noc/item/jardin/inspection-groseillier"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "jardin-inspection-muriers" {
|
apply Service "jardin-inspection-muriers" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-muriers"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-muriers"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection des mûriers"
|
notes = "Inspection des mûriers"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-muriers"
|
vars.instructions_url = "/life-noc/item/jardin/inspection-muriers"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "jardin-entretien-houblon" {
|
apply Service "jardin-entretien-houblon" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
|
|
||||||
vars.life_noc_item_key = "entretien-houblon"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "entretien-houblon"
|
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification et entretien du houblon"
|
notes = "Vérification et entretien du houblon"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-houblon"
|
vars.instructions_url = "/life-noc/item/jardin/entretien-houblon"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -171,7 +99,7 @@ apply Service "jardin-revision-pharmacopée-jardin" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
notes = "Vérification du stock de soins pour végétaux"
|
notes = "Vérification du stock de soins pour végétaux"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/revision-pharmacopée-jardin"
|
vars.instructions_url = "/life-noc/item/jardin/revision-pharmacopée-jardin"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -182,6 +110,6 @@ apply Service "jardin-revision-armoire-produits-jardin" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "JARDIN" ]
|
groups = [ "JARDIN" ]
|
||||||
notes = "Vérification et ordre de l'armoire des produits pour végétaux"
|
notes = "Vérification et ordre de l'armoire des produits pour végétaux"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/revision-armoire-produits-jardin"
|
vars.instructions_url = "/life-noc/item/jardin/revision-armoire-produits-jardin"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,302 +5,167 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "maison-remplacement-filtre-fournaise" {
|
apply Service "maison-remplacement-filtre-fournaise" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "remplacement-filtre-fournaise"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "remplacement-filtre-fournaise"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Remplacer le filtre de la fournaise"
|
notes = "Remplacer le filtre de la fournaise"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/remplacement-filtre-fournaise"
|
vars.instructions_url = "/life-noc/item/maison/remplacement-filtre-fournaise"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-inspection-fournaise" {
|
apply Service "maison-inspection-fournaise" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-09-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-fournaise"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-fournaise"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "150"
|
|
||||||
vars.life_noc_threshold_ok_gte = "150"
|
|
||||||
vars.life_noc_threshold_warning_gte = "180"
|
|
||||||
vars.life_noc_threshold_critical_gte = "210"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection générale de la fournaise avant saison froide"
|
notes = "Inspection générale de la fournaise avant saison froide"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-fournaise"
|
vars.instructions_url = "/life-noc/item/maison/inspection-fournaise"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-inspection-thermopompe" {
|
apply Service "maison-inspection-thermopompe" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-thermopompe"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-thermopompe"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection et entretien de la thermopompe"
|
notes = "Inspection et entretien de la thermopompe"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-thermopompe"
|
vars.instructions_url = "/life-noc/item/maison/inspection-thermopompe"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-nettoyage-unites-exterieures" {
|
apply Service "maison-nettoyage-unites-exterieures" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "nettoyage-unites-exterieures"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "nettoyage-unites-exterieures"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Nettoyer les unités extérieures et vérifier le dégagement"
|
notes = "Nettoyer les unités extérieures et vérifier le dégagement"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/nettoyage-unites-exterieures"
|
vars.instructions_url = "/life-noc/item/maison/nettoyage-unites-exterieures"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-inspection-toiture" {
|
apply Service "maison-inspection-toiture" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-10-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-toiture"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-toiture"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "150"
|
|
||||||
vars.life_noc_threshold_ok_gte = "150"
|
|
||||||
vars.life_noc_threshold_warning_gte = "180"
|
|
||||||
vars.life_noc_threshold_critical_gte = "210"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection annuelle de la toiture"
|
notes = "Inspection annuelle de la toiture"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-toiture"
|
vars.instructions_url = "/life-noc/item/maison/inspection-toiture"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-inspection-gouttieres" {
|
apply Service "maison-inspection-gouttieres" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-11-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-gouttieres"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-gouttieres"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "150"
|
|
||||||
vars.life_noc_threshold_ok_gte = "150"
|
|
||||||
vars.life_noc_threshold_warning_gte = "180"
|
|
||||||
vars.life_noc_threshold_critical_gte = "210"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection et nettoyage des gouttières"
|
notes = "Inspection et nettoyage des gouttières"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-gouttieres"
|
vars.instructions_url = "/life-noc/item/maison/inspection-gouttieres"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-inspection-fondation" {
|
apply Service "maison-inspection-fondation" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-fondation"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-fondation"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Inspection de la fondation et des fissures"
|
notes = "Inspection de la fondation et des fissures"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-fondation"
|
vars.instructions_url = "/life-noc/item/maison/inspection-fondation"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-verification-drainage-terrain" {
|
apply Service "maison-verification-drainage-terrain" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-drainage-terrain"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-drainage-terrain"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification du drainage autour de la maison"
|
notes = "Vérification du drainage autour de la maison"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-drainage-terrain"
|
vars.instructions_url = "/life-noc/item/maison/verification-drainage-terrain"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-test-detecteurs-fumee" {
|
apply Service "maison-test-detecteurs-fumee" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "test-detecteurs-fumee"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "test-detecteurs-fumee"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Test des détecteurs de fumée"
|
notes = "Test des détecteurs de fumée"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/test-detecteurs-fumee"
|
vars.instructions_url = "/life-noc/item/maison/test-detecteurs-fumee"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-test-detecteurs-co" {
|
apply Service "maison-test-detecteurs-co" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "test-detecteurs-co"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "test-detecteurs-co"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Test des détecteurs de monoxyde de carbone"
|
notes = "Test des détecteurs de monoxyde de carbone"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/test-detecteurs-co"
|
vars.instructions_url = "/life-noc/item/maison/test-detecteurs-co"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-remplacement-piles-detecteurs" {
|
apply Service "maison-remplacement-piles-detecteurs" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-10-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "remplacement-piles-detecteurs"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "remplacement-piles-detecteurs"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "150"
|
|
||||||
vars.life_noc_threshold_ok_gte = "150"
|
|
||||||
vars.life_noc_threshold_warning_gte = "180"
|
|
||||||
vars.life_noc_threshold_critical_gte = "210"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Remplacement préventif des piles des détecteurs"
|
notes = "Remplacement préventif des piles des détecteurs"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/remplacement-piles-detecteurs"
|
vars.instructions_url = "/life-noc/item/maison/remplacement-piles-detecteurs"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-verification-plomberie-visible" {
|
apply Service "maison-verification-plomberie-visible" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-plomberie-visible"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-plomberie-visible"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification visuelle de la plomberie accessible"
|
notes = "Vérification visuelle de la plomberie accessible"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-plomberie-visible"
|
vars.instructions_url = "/life-noc/item/maison/verification-plomberie-visible"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-inspection-sump-pump" {
|
apply Service "maison-inspection-sump-pump" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-sump-pump"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-sump-pump"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de la pompe de puisard si applicable"
|
notes = "Vérification de la pompe de puisard si applicable"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-sump-pump"
|
vars.instructions_url = "/life-noc/item/maison/inspection-sump-pump"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-verification-calfetrage" {
|
apply Service "maison-verification-calfetrage" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-10-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-calfetrage"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-calfetrage"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "150"
|
|
||||||
vars.life_noc_threshold_ok_gte = "150"
|
|
||||||
vars.life_noc_threshold_warning_gte = "180"
|
|
||||||
vars.life_noc_threshold_critical_gte = "210"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification du calfeutrage portes et fenêtres"
|
notes = "Vérification du calfeutrage portes et fenêtres"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-calfetrage"
|
vars.instructions_url = "/life-noc/item/maison/verification-calfetrage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "maison-inspection-portes-garage" {
|
apply Service "maison-inspection-portes-garage" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/maison.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-portes-garage"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-portes-garage"
|
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification mécanique et sécurité des portes de garage"
|
notes = "Vérification mécanique et sécurité des portes de garage"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-portes-garage"
|
vars.instructions_url = "/life-noc/item/maison/inspection-portes-garage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -311,6 +176,6 @@ apply Service "maison-verification-extincteurs" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "MAISON" ]
|
groups = [ "MAISON" ]
|
||||||
notes = "Vérification des extincteurs"
|
notes = "Vérification des extincteurs"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-extincteurs"
|
vars.instructions_url = "/life-noc/item/maison/verification-extincteurs"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,63 +4,58 @@
|
||||||
Source: domains.yaml
|
Source: domains.yaml
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "obligations-chezlepro-verification-dossier-comptable-entreprise" {
|
apply Service "obligations-chezlepro-verification-registraire-entreprise" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
vars.life_noc_item_key = "verification-dossier-comptable-entreprise"
|
notes = "Vérifier les obligations au Registraire des entreprises"
|
||||||
vars.life_noc_metric_unit = "days"
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-registraire-entreprise"
|
||||||
vars.life_noc_label = "verification-dossier-comptable-entreprise"
|
assign where host.name == "life-noc"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply Service "obligations-chezlepro-verification-declarations-taxes" {
|
||||||
|
import "service_echeance"
|
||||||
|
vars.date_echeance = "2026-04-30"
|
||||||
|
vars.mock_state = "OK"
|
||||||
|
vars.mock_message = "Sous contrôle"
|
||||||
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
|
notes = "Vérifier les obligations de taxes de l'entreprise si applicables"
|
||||||
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-declarations-taxes"
|
||||||
|
assign where host.name == "life-noc"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply Service "obligations-chezlepro-verification-dossier-comptable-entreprise" {
|
||||||
|
import "service_echeance"
|
||||||
|
vars.date_echeance = "2026-04-15"
|
||||||
|
vars.mock_state = "OK"
|
||||||
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier l'ordre du dossier comptable Chezlepro"
|
notes = "Vérifier l'ordre du dossier comptable Chezlepro"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-dossier-comptable-entreprise"
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-dossier-comptable-entreprise"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "obligations-chezlepro-verification-facturation-clients" {
|
apply Service "obligations-chezlepro-verification-facturation-clients" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-10"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-facturation-clients"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-facturation-clients"
|
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier la facturation et son suivi"
|
notes = "Vérifier la facturation et son suivi"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-facturation-clients"
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-facturation-clients"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "obligations-chezlepro-verification-paiements-fournisseurs" {
|
apply Service "obligations-chezlepro-verification-paiements-fournisseurs" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-10"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-paiements-fournisseurs"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-paiements-fournisseurs"
|
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les paiements fournisseurs"
|
notes = "Vérifier les paiements fournisseurs"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-paiements-fournisseurs"
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-paiements-fournisseurs"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,83 +66,28 @@ apply Service "obligations-chezlepro-verification-contrats-ententes" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
notes = "Vérifier contrats, ententes et obligations associées"
|
notes = "Vérifier contrats, ententes et obligations associées"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-contrats-ententes"
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-contrats-ententes"
|
||||||
assign where host.name == "life-noc"
|
|
||||||
}
|
|
||||||
|
|
||||||
apply Service "obligations-chezlepro-verification-registraire-entreprise" {
|
|
||||||
import "service_life_noc_probe"
|
|
||||||
vars.life_noc_probe_type = "days_until_due"
|
|
||||||
vars.life_noc_source_type = "manual_date"
|
|
||||||
vars.life_noc_source_value = ""
|
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-registraire-entreprise"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-registraire-entreprise"
|
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
|
||||||
vars.life_noc_threshold_ok_lt = "366"
|
|
||||||
vars.life_noc_threshold_warning_lt = "90"
|
|
||||||
vars.life_noc_threshold_critical_lt = "30"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Entrer la prochaine date limite pertinente."
|
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-registraire-entreprise"
|
|
||||||
assign where host.name == "life-noc"
|
|
||||||
}
|
|
||||||
|
|
||||||
apply Service "obligations-chezlepro-verification-declarations-taxes" {
|
|
||||||
import "service_life_noc_probe"
|
|
||||||
vars.life_noc_probe_type = "days_until_due"
|
|
||||||
vars.life_noc_source_type = "manual_date"
|
|
||||||
vars.life_noc_source_value = ""
|
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-declarations-taxes"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-declarations-taxes"
|
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
|
||||||
vars.life_noc_threshold_ok_lt = "366"
|
|
||||||
vars.life_noc_threshold_warning_lt = "45"
|
|
||||||
vars.life_noc_threshold_critical_lt = "15"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Entrer la prochaine date limite applicable."
|
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-declarations-taxes"
|
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "obligations-chezlepro-verification-assurances-entreprise" {
|
apply Service "obligations-chezlepro-verification-assurances-entreprise" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "days_until_due"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-assurances-entreprise"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-assurances-entreprise"
|
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_ok_lt = "366"
|
notes = "Vérifier les assurances de l'entreprise"
|
||||||
vars.life_noc_threshold_warning_lt = "90"
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-assurances-entreprise"
|
||||||
vars.life_noc_threshold_critical_lt = "30"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Entrer la date de renouvellement la plus proche."
|
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-assurances-entreprise"
|
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "obligations-chezlepro-archivage-documents-entreprise" {
|
apply Service "obligations-chezlepro-archivage-documents-entreprise" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-31"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "archivage-documents-entreprise"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "archivage-documents-entreprise"
|
|
||||||
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Archiver les documents administratifs et financiers de l'entreprise"
|
notes = "Archiver les documents administratifs et financiers de l'entreprise"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/archivage-documents-entreprise"
|
vars.instructions_url = "/life-noc/item/obligations-chezlepro/archivage-documents-entreprise"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,82 +5,46 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "obligations-legales-personnelles-verification-testament" {
|
apply Service "obligations-legales-personnelles-verification-testament" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-07-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-legales-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-testament"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-testament"
|
|
||||||
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier la pertinence et l'actualité du testament"
|
notes = "Vérifier la pertinence et l'actualité du testament"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-testament"
|
vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-testament"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "obligations-legales-personnelles-verification-mandat-inaptitude" {
|
apply Service "obligations-legales-personnelles-verification-mandat-inaptitude" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-07-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-legales-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-mandat-inaptitude"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-mandat-inaptitude"
|
|
||||||
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier le mandat de protection et documents connexes"
|
notes = "Vérifier le mandat de protection et documents connexes"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-mandat-inaptitude"
|
vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-mandat-inaptitude"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "obligations-legales-personnelles-verification-directives-medicales" {
|
apply Service "obligations-legales-personnelles-verification-directives-medicales" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-07-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-legales-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-directives-medicales"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-directives-medicales"
|
|
||||||
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "150"
|
|
||||||
vars.life_noc_threshold_ok_gte = "150"
|
|
||||||
vars.life_noc_threshold_warning_gte = "180"
|
|
||||||
vars.life_noc_threshold_critical_gte = "210"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les directives médicales anticipées"
|
notes = "Vérifier les directives médicales anticipées"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-directives-medicales"
|
vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-directives-medicales"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "obligations-legales-personnelles-verification-papiers-identite" {
|
apply Service "obligations-legales-personnelles-verification-papiers-identite" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-legales-personnelles.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-papiers-identite"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-papiers-identite"
|
|
||||||
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier l'expiration des papiers d'identité"
|
notes = "Vérifier l'expiration des papiers d'identité"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-papiers-identite"
|
vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-papiers-identite"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -100,7 +64,7 @@ apply Service "obligations-legales-personnelles-renouvellement-permis-conduire"
|
||||||
vars.life_noc_threshold_critical_lt = "7"
|
vars.life_noc_threshold_critical_lt = "7"
|
||||||
vars.life_noc_on_error = "critical"
|
vars.life_noc_on_error = "critical"
|
||||||
notes = "Vérifier la proximité de l’échéance du permis"
|
notes = "Vérifier la proximité de l’échéance du permis"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/renouvellement-permis-conduire"
|
vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/renouvellement-permis-conduire"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -111,7 +75,7 @@ apply Service "obligations-legales-personnelles-verification-carte-assurance-mal
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
||||||
notes = "Vérifier l'expiration de la carte d'assurance maladie"
|
notes = "Vérifier l'expiration de la carte d'assurance maladie"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-carte-assurance-maladie"
|
vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-carte-assurance-maladie"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,6 +86,6 @@ apply Service "obligations-legales-personnelles-verification-passeport" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
|
||||||
notes = "Vérifier l'expiration du passeport"
|
notes = "Vérifier l'expiration du passeport"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-passeport"
|
vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-passeport"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,101 +5,56 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "outils-et-equipements-entretien-outils-jardin" {
|
apply Service "outils-et-equipements-entretien-outils-jardin" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/outils-et-equipements.yaml"
|
|
||||||
vars.life_noc_item_key = "entretien-outils-jardin"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "entretien-outils-jardin"
|
|
||||||
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Nettoyage et entretien des outils de jardin"
|
notes = "Nettoyage et entretien des outils de jardin"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/entretien-outils-jardin"
|
vars.instructions_url = "/life-noc/item/outils-et-equipements/entretien-outils-jardin"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "outils-et-equipements-inspection-outils-electriques" {
|
apply Service "outils-et-equipements-inspection-outils-electriques" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/outils-et-equipements.yaml"
|
|
||||||
vars.life_noc_item_key = "inspection-outils-electriques"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "inspection-outils-electriques"
|
|
||||||
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des outils électriques"
|
notes = "Vérification des outils électriques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/inspection-outils-electriques"
|
vars.instructions_url = "/life-noc/item/outils-et-equipements/inspection-outils-electriques"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "outils-et-equipements-verification-rallonges-et-connecteurs" {
|
apply Service "outils-et-equipements-verification-rallonges-et-connecteurs" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/outils-et-equipements.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-rallonges-et-connecteurs"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-rallonges-et-connecteurs"
|
|
||||||
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des rallonges et connecteurs"
|
notes = "Vérification des rallonges et connecteurs"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/verification-rallonges-et-connecteurs"
|
vars.instructions_url = "/life-noc/item/outils-et-equipements/verification-rallonges-et-connecteurs"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "outils-et-equipements-verification-compresseur-et-accessoires" {
|
apply Service "outils-et-equipements-verification-compresseur-et-accessoires" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/outils-et-equipements.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-compresseur-et-accessoires"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-compresseur-et-accessoires"
|
|
||||||
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification du compresseur et accessoires"
|
notes = "Vérification du compresseur et accessoires"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/verification-compresseur-et-accessoires"
|
vars.instructions_url = "/life-noc/item/outils-et-equipements/verification-compresseur-et-accessoires"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "outils-et-equipements-revision-inventaire-outillage" {
|
apply Service "outils-et-equipements-revision-inventaire-outillage" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/outils-et-equipements.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-inventaire-outillage"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-inventaire-outillage"
|
|
||||||
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
groups = [ "OUTILS-ET-EQUIPEMENTS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue de l'inventaire d'outillage"
|
notes = "Revue de l'inventaire d'outillage"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/revision-inventaire-outillage"
|
vars.instructions_url = "/life-noc/item/outils-et-equipements/revision-inventaire-outillage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,121 +5,67 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "projets-revision-life-noc" {
|
apply Service "projets-revision-life-noc" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/projets.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-life-noc"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-life-noc"
|
|
||||||
groups = [ "PROJETS" ]
|
groups = [ "PROJETS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision du projet Life-NOC"
|
notes = "Révision du projet Life-NOC"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-life-noc"
|
vars.instructions_url = "/life-noc/item/projets/revision-life-noc"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "projets-revision-alliance-boreale" {
|
apply Service "projets-revision-alliance-boreale" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/projets.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-alliance-boreale"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-alliance-boreale"
|
|
||||||
groups = [ "PROJETS" ]
|
groups = [ "PROJETS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision du projet Alliance Boréale"
|
notes = "Révision du projet Alliance Boréale"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-alliance-boreale"
|
vars.instructions_url = "/life-noc/item/projets/revision-alliance-boreale"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "projets-revision-erplibre" {
|
apply Service "projets-revision-erplibre" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/projets.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-erplibre"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-erplibre"
|
|
||||||
groups = [ "PROJETS" ]
|
groups = [ "PROJETS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision du projet ERPLibre"
|
notes = "Révision du projet ERPLibre"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-erplibre"
|
vars.instructions_url = "/life-noc/item/projets/revision-erplibre"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "projets-revision-semence-numerique" {
|
apply Service "projets-revision-semence-numerique" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/projets.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-semence-numerique"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-semence-numerique"
|
|
||||||
groups = [ "PROJETS" ]
|
groups = [ "PROJETS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision du projet semence numérique"
|
notes = "Révision du projet semence numérique"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-semence-numerique"
|
vars.instructions_url = "/life-noc/item/projets/revision-semence-numerique"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "projets-revision-ortrux-1" {
|
apply Service "projets-revision-ortrux-1" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/projets.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-ortrux-1"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-ortrux-1"
|
|
||||||
groups = [ "PROJETS" ]
|
groups = [ "PROJETS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision du système Ortrux-1"
|
notes = "Révision du système Ortrux-1"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-ortrux-1"
|
vars.instructions_url = "/life-noc/item/projets/revision-ortrux-1"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "projets-revision-district16" {
|
apply Service "projets-revision-district16" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/projets.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-district16"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-district16"
|
|
||||||
groups = [ "PROJETS" ]
|
groups = [ "PROJETS" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Révision du projet DISTRICT16"
|
notes = "Révision du projet DISTRICT16"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-district16"
|
vars.instructions_url = "/life-noc/item/projets/revision-district16"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,42 +5,24 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-firewalls" {
|
apply Service "reseau-chezlepro-verification-firewalls" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-firewalls"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-firewalls"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des firewalls"
|
notes = "Vérification des firewalls"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-firewalls"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-firewalls"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-vpn-openvpn" {
|
apply Service "reseau-chezlepro-verification-vpn-openvpn" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-vpn-openvpn"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-vpn-openvpn"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des tunnels OpenVPN"
|
notes = "Vérification des tunnels OpenVPN"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-vpn-openvpn"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-vpn-openvpn"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -51,145 +33,83 @@ apply Service "reseau-chezlepro-verification-crl-certificats" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
notes = "Vérification de la CRL et des certificats"
|
notes = "Vérification de la CRL et des certificats"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-crl-certificats"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-crl-certificats"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-switches" {
|
apply Service "reseau-chezlepro-verification-switches" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-switches"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-switches"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des switches et uplinks"
|
notes = "Vérification des switches et uplinks"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-switches"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-switches"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-vlans-segmentation" {
|
apply Service "reseau-chezlepro-verification-vlans-segmentation" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-vlans-segmentation"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-vlans-segmentation"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de la segmentation réseau"
|
notes = "Vérification de la segmentation réseau"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-vlans-segmentation"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-vlans-segmentation"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-dns" {
|
apply Service "reseau-chezlepro-verification-dns" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-dns"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-dns"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification DNS interne et externe"
|
notes = "Vérification DNS interne et externe"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-dns"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-dns"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-dynamic-dns" {
|
apply Service "reseau-chezlepro-verification-dynamic-dns" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-dynamic-dns"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-dynamic-dns"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification du DNS dynamique si utilisé"
|
notes = "Vérification du DNS dynamique si utilisé"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-dynamic-dns"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-dynamic-dns"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-audit-regles-firewall" {
|
apply Service "reseau-chezlepro-audit-regles-firewall" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "audit-regles-firewall"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "audit-regles-firewall"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Audit périodique des règles de firewall"
|
notes = "Audit périodique des règles de firewall"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/audit-regles-firewall"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/audit-regles-firewall"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-geoblocking" {
|
apply Service "reseau-chezlepro-verification-geoblocking" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-geoblocking"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-geoblocking"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier le geoblocking et son effet attendu"
|
notes = "Vérifier le geoblocking et son effet attendu"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-geoblocking"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-geoblocking"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "reseau-chezlepro-verification-certificats-publics" {
|
apply Service "reseau-chezlepro-verification-certificats-publics" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "days_until_due"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-certificats-publics"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-certificats-publics"
|
|
||||||
groups = [ "RESEAU-CHEZLEPRO" ]
|
groups = [ "RESEAU-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_ok_lt = "366"
|
notes = "Vérifier les expirations de certificats publics"
|
||||||
vars.life_noc_threshold_warning_lt = "45"
|
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-certificats-publics"
|
||||||
vars.life_noc_threshold_critical_lt = "15"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Retenir la date d’expiration la plus proche parmi les certificats publics suivis."
|
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-certificats-publics"
|
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "resilience-test-generatrice-propane" {
|
apply Service "resilience-test-generatrice-propane" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/resilience.yaml"
|
|
||||||
vars.life_noc_item_key = "test-generatrice-propane"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "test-generatrice-propane"
|
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Test mensuel de la génératrice au propane"
|
notes = "Test mensuel de la génératrice au propane"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/test-generatrice-propane"
|
vars.instructions_url = "/life-noc/item/resilience/test-generatrice-propane"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,27 +22,18 @@ apply Service "resilience-verification-carburant-generatrice" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
notes = "Vérification de l'approvisionnement propane lié à la génératrice"
|
notes = "Vérification de l'approvisionnement propane lié à la génératrice"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-carburant-generatrice"
|
vars.instructions_url = "/life-noc/item/resilience/verification-carburant-generatrice"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "resilience-verification-procedure-bascule" {
|
apply Service "resilience-verification-procedure-bascule" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/resilience.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-procedure-bascule"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-procedure-bascule"
|
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Réviser la procédure de bascule en mode secours"
|
notes = "Réviser la procédure de bascule en mode secours"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-procedure-bascule"
|
vars.instructions_url = "/life-noc/item/resilience/verification-procedure-bascule"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -62,7 +44,7 @@ apply Service "resilience-verification-stock-lampes-piles" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
notes = "Vérification des lampes, piles et éclairage d'urgence"
|
notes = "Vérification des lampes, piles et éclairage d'urgence"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-stock-lampes-piles"
|
vars.instructions_url = "/life-noc/item/resilience/verification-stock-lampes-piles"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,47 +55,29 @@ apply Service "resilience-verification-trousses-urgence" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
notes = "Vérification des trousses d'urgence"
|
notes = "Vérification des trousses d'urgence"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-trousses-urgence"
|
vars.instructions_url = "/life-noc/item/resilience/verification-trousses-urgence"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "resilience-revision-plan-urgence" {
|
apply Service "resilience-revision-plan-urgence" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/resilience.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-plan-urgence"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-plan-urgence"
|
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Réviser le plan d'urgence domestique"
|
notes = "Réviser le plan d'urgence domestique"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/revision-plan-urgence"
|
vars.instructions_url = "/life-noc/item/resilience/revision-plan-urgence"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "resilience-test-autonomie-base" {
|
apply Service "resilience-test-autonomie-base" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/resilience.yaml"
|
|
||||||
vars.life_noc_item_key = "test-autonomie-base"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "test-autonomie-base"
|
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier l'autonomie énergétique minimale attendue"
|
notes = "Vérifier l'autonomie énergétique minimale attendue"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/test-autonomie-base"
|
vars.instructions_url = "/life-noc/item/resilience/test-autonomie-base"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -124,6 +88,6 @@ apply Service "resilience-verification-moyens-cuisson-secours" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "RESILIENCE" ]
|
groups = [ "RESILIENCE" ]
|
||||||
notes = "Vérification des moyens de cuisson de secours"
|
notes = "Vérification des moyens de cuisson de secours"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-moyens-cuisson-secours"
|
vars.instructions_url = "/life-noc/item/resilience/verification-moyens-cuisson-secours"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ apply Service "revue-revue-quotidienne-life-noc" {
|
||||||
vars.life_noc_threshold_critical_gte = "3"
|
vars.life_noc_threshold_critical_gte = "3"
|
||||||
vars.life_noc_on_error = "critical"
|
vars.life_noc_on_error = "critical"
|
||||||
notes = "Vérifier le tableau de bord Life-NOC"
|
notes = "Vérifier le tableau de bord Life-NOC"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/revue/revue-quotidienne-life-noc"
|
vars.instructions_url = "/life-noc/item/revue/revue-quotidienne-life-noc"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,41 +45,23 @@ apply Service "revue-revue-hebdomadaire-priorites" {
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "revue-revue-mensuelle-systeme-vie" {
|
apply Service "revue-revue-mensuelle-systeme-vie" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/revue.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-mensuelle-systeme-vie"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-mensuelle-systeme-vie"
|
|
||||||
groups = [ "REVUE" ]
|
groups = [ "REVUE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue mensuelle de l'ensemble du système Life-NOC"
|
notes = "Revue mensuelle de l'ensemble du système Life-NOC"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/revue/revue-mensuelle-systeme-vie"
|
vars.instructions_url = "/life-noc/item/revue/revue-mensuelle-systeme-vie"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "revue-revue-trimestrielle-orientation" {
|
apply Service "revue-revue-trimestrielle-orientation" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-30"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/revue.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-trimestrielle-orientation"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-trimestrielle-orientation"
|
|
||||||
groups = [ "REVUE" ]
|
groups = [ "REVUE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue trimestrielle des orientations de vie et de Chezlepro"
|
notes = "Revue trimestrielle des orientations de vie et de Chezlepro"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/revue/revue-trimestrielle-orientation"
|
vars.instructions_url = "/life-noc/item/revue/revue-trimestrielle-orientation"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,45 +11,29 @@ apply Service "sante-verification-trousse-premiers-soins" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "SANTE" ]
|
groups = [ "SANTE" ]
|
||||||
notes = "Vérification de la trousse de premiers soins"
|
notes = "Vérification de la trousse de premiers soins"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-trousse-premiers-soins"
|
vars.instructions_url = "/life-noc/item/sante/verification-trousse-premiers-soins"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "sante-verification-expiration-medicaments" {
|
apply Service "sante-verification-expiration-medicaments" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "days_until_due"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/sante.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-expiration-medicaments"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-expiration-medicaments"
|
|
||||||
groups = [ "SANTE" ]
|
groups = [ "SANTE" ]
|
||||||
vars.life_noc_threshold_ok_lt = "366"
|
notes = "Vérification des dates d'expiration des médicaments"
|
||||||
vars.life_noc_threshold_warning_lt = "90"
|
vars.instructions_url = "/life-noc/item/sante/verification-expiration-medicaments"
|
||||||
vars.life_noc_threshold_critical_lt = "30"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Mettre la plus proche date d’expiration pertinente."
|
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-expiration-medicaments"
|
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "sante-revision-rendez-vous-medicaux" {
|
apply Service "sante-revision-rendez-vous-medicaux" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "days_until_due"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/sante.yaml"
|
|
||||||
vars.life_noc_item_key = "revision-rendez-vous-medicaux"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revision-rendez-vous-medicaux"
|
|
||||||
groups = [ "SANTE" ]
|
groups = [ "SANTE" ]
|
||||||
vars.life_noc_threshold_ok_lt = "366"
|
notes = "Revoir les rendez-vous médicaux requis"
|
||||||
vars.life_noc_threshold_warning_lt = "14"
|
vars.instructions_url = "/life-noc/item/sante/revision-rendez-vous-medicaux"
|
||||||
vars.life_noc_threshold_critical_lt = "2"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Entrer la prochaine date significative déjà connue."
|
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/revision-rendez-vous-medicaux"
|
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -60,26 +44,17 @@ apply Service "sante-verification-lunettes-prescriptions" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "SANTE" ]
|
groups = [ "SANTE" ]
|
||||||
notes = "Vérifier les prescriptions et besoins de renouvellement"
|
notes = "Vérifier les prescriptions et besoins de renouvellement"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-lunettes-prescriptions"
|
vars.instructions_url = "/life-noc/item/sante/verification-lunettes-prescriptions"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "sante-verification-dossier-sante" {
|
apply Service "sante-verification-dossier-sante" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/sante.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-dossier-sante"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-dossier-sante"
|
|
||||||
groups = [ "SANTE" ]
|
groups = [ "SANTE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier l'ordre et l'accessibilité des documents de santé"
|
notes = "Vérifier l'ordre et l'accessibilité des documents de santé"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-dossier-sante"
|
vars.instructions_url = "/life-noc/item/sante/verification-dossier-sante"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,62 +5,35 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "securite-chezlepro-verification-mises-a-jour-securite" {
|
apply Service "securite-chezlepro-verification-mises-a-jour-securite" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/securite-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-mises-a-jour-securite"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-mises-a-jour-securite"
|
|
||||||
groups = [ "SECURITE-CHEZLEPRO" ]
|
groups = [ "SECURITE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des mises à jour de sécurité"
|
notes = "Vérification des mises à jour de sécurité"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/verification-mises-a-jour-securite"
|
vars.instructions_url = "/life-noc/item/securite-chezlepro/verification-mises-a-jour-securite"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "securite-chezlepro-audit-comptes-acces" {
|
apply Service "securite-chezlepro-audit-comptes-acces" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/securite-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "audit-comptes-acces"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "audit-comptes-acces"
|
|
||||||
groups = [ "SECURITE-CHEZLEPRO" ]
|
groups = [ "SECURITE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Audit des comptes et accès privilégiés"
|
notes = "Audit des comptes et accès privilégiés"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/audit-comptes-acces"
|
vars.instructions_url = "/life-noc/item/securite-chezlepro/audit-comptes-acces"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "securite-chezlepro-verification-ids-snort" {
|
apply Service "securite-chezlepro-verification-ids-snort" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/securite-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-ids-snort"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-ids-snort"
|
|
||||||
groups = [ "SECURITE-CHEZLEPRO" ]
|
groups = [ "SECURITE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des IDS et de leur état"
|
notes = "Vérification des IDS et de leur état"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/verification-ids-snort"
|
vars.instructions_url = "/life-noc/item/securite-chezlepro/verification-ids-snort"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,46 +44,28 @@ apply Service "securite-chezlepro-revue-pki-privee" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "SECURITE-CHEZLEPRO" ]
|
groups = [ "SECURITE-CHEZLEPRO" ]
|
||||||
notes = "Revue de la PKI privée et des autorités intermédiaires"
|
notes = "Revue de la PKI privée et des autorités intermédiaires"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/revue-pki-privee"
|
vars.instructions_url = "/life-noc/item/securite-chezlepro/revue-pki-privee"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "securite-chezlepro-revue-politiques-securite" {
|
apply Service "securite-chezlepro-revue-politiques-securite" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/securite-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "revue-politiques-securite"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "revue-politiques-securite"
|
|
||||||
groups = [ "SECURITE-CHEZLEPRO" ]
|
groups = [ "SECURITE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Revue des politiques et pratiques de sécurité numérique"
|
notes = "Revue des politiques et pratiques de sécurité numérique"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/revue-politiques-securite"
|
vars.instructions_url = "/life-noc/item/securite-chezlepro/revue-politiques-securite"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "securite-chezlepro-verification-sauvegardes-configuration" {
|
apply Service "securite-chezlepro-verification-sauvegardes-configuration" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-15"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/securite-chezlepro.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-sauvegardes-configuration"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-sauvegardes-configuration"
|
|
||||||
groups = [ "SECURITE-CHEZLEPRO" ]
|
groups = [ "SECURITE-CHEZLEPRO" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérifier les sauvegardes des configurations critiques"
|
notes = "Vérifier les sauvegardes des configurations critiques"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/verification-sauvegardes-configuration"
|
vars.instructions_url = "/life-noc/item/securite-chezlepro/verification-sauvegardes-configuration"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
apply Service "stock-alimentaire-rotation-nourriture-seche" {
|
apply Service "stock-alimentaire-rotation-nourriture-seche" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-04-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/stock-alimentaire.yaml"
|
|
||||||
vars.life_noc_item_key = "rotation-nourriture-seche"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "rotation-nourriture-seche"
|
|
||||||
groups = [ "STOCK-ALIMENTAIRE" ]
|
groups = [ "STOCK-ALIMENTAIRE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "20"
|
|
||||||
vars.life_noc_threshold_ok_gte = "20"
|
|
||||||
vars.life_noc_threshold_warning_gte = "31"
|
|
||||||
vars.life_noc_threshold_critical_gte = "45"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Rotation des stocks de nourriture sèche"
|
notes = "Rotation des stocks de nourriture sèche"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/rotation-nourriture-seche"
|
vars.instructions_url = "/life-noc/item/stock-alimentaire/rotation-nourriture-seche"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,7 +22,7 @@ apply Service "stock-alimentaire-verification-reserve-eau" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "STOCK-ALIMENTAIRE" ]
|
groups = [ "STOCK-ALIMENTAIRE" ]
|
||||||
notes = "Vérification de la réserve d'eau potable"
|
notes = "Vérification de la réserve d'eau potable"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/verification-reserve-eau"
|
vars.instructions_url = "/life-noc/item/stock-alimentaire/verification-reserve-eau"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -42,7 +33,7 @@ apply Service "stock-alimentaire-verification-mylar-absorbeurs" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "STOCK-ALIMENTAIRE" ]
|
groups = [ "STOCK-ALIMENTAIRE" ]
|
||||||
notes = "Vérifier l'intégrité des emballages Mylar et absorbeurs"
|
notes = "Vérifier l'intégrité des emballages Mylar et absorbeurs"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/verification-mylar-absorbeurs"
|
vars.instructions_url = "/life-noc/item/stock-alimentaire/verification-mylar-absorbeurs"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,7 +44,7 @@ apply Service "stock-alimentaire-revue-inventaire-conserves" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "STOCK-ALIMENTAIRE" ]
|
groups = [ "STOCK-ALIMENTAIRE" ]
|
||||||
notes = "Revue des conserves et dates de rotation"
|
notes = "Revue des conserves et dates de rotation"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/revue-inventaire-conserves"
|
vars.instructions_url = "/life-noc/item/stock-alimentaire/revue-inventaire-conserves"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -64,7 +55,7 @@ apply Service "stock-alimentaire-revue-inventaire-farine-riz-pates" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "STOCK-ALIMENTAIRE" ]
|
groups = [ "STOCK-ALIMENTAIRE" ]
|
||||||
notes = "Vérification des gros stocks alimentaires de base"
|
notes = "Vérification des gros stocks alimentaires de base"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/revue-inventaire-farine-riz-pates"
|
vars.instructions_url = "/life-noc/item/stock-alimentaire/revue-inventaire-farine-riz-pates"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -75,7 +66,7 @@ apply Service "stock-alimentaire-verification-bacs-legumes-racines" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "STOCK-ALIMENTAIRE" ]
|
groups = [ "STOCK-ALIMENTAIRE" ]
|
||||||
notes = "Vérification des bacs de stockage de légumes racines"
|
notes = "Vérification des bacs de stockage de légumes racines"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/verification-bacs-legumes-racines"
|
vars.instructions_url = "/life-noc/item/stock-alimentaire/verification-bacs-legumes-racines"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,6 +77,6 @@ apply Service "stock-alimentaire-revue-supplements-vitamines" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "STOCK-ALIMENTAIRE" ]
|
groups = [ "STOCK-ALIMENTAIRE" ]
|
||||||
notes = "Vérification du stock de suppléments et dates utiles"
|
notes = "Vérification du stock de suppléments et dates utiles"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/revue-supplements-vitamines"
|
vars.instructions_url = "/life-noc/item/stock-alimentaire/revue-supplements-vitamines"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ apply Service "voiture-verification-huile-moteur" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
notes = "Vérification de l'huile moteur"
|
notes = "Vérification de l'huile moteur"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-huile-moteur"
|
vars.instructions_url = "/life-noc/item/voiture/verification-huile-moteur"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -22,7 +22,7 @@ apply Service "voiture-inspection-freins" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
notes = "Inspection des freins"
|
notes = "Inspection des freins"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/inspection-freins"
|
vars.instructions_url = "/life-noc/item/voiture/inspection-freins"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -33,7 +33,7 @@ apply Service "voiture-verification-pneus" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
notes = "Vérification usure, pression et permutation des pneus"
|
notes = "Vérification usure, pression et permutation des pneus"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-pneus"
|
vars.instructions_url = "/life-noc/item/voiture/verification-pneus"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -44,7 +44,7 @@ apply Service "voiture-ajustement-valves" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
notes = "Vérification et ajustement des valves Honda Accord"
|
notes = "Vérification et ajustement des valves Honda Accord"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/ajustement-valves"
|
vars.instructions_url = "/life-noc/item/voiture/ajustement-valves"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -55,7 +55,7 @@ apply Service "voiture-verification-timing-belt" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
notes = "Vérification de la courroie de distribution et pompe à eau"
|
notes = "Vérification de la courroie de distribution et pompe à eau"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-timing-belt"
|
vars.instructions_url = "/life-noc/item/voiture/verification-timing-belt"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -66,27 +66,18 @@ apply Service "voiture-verification-batterie-voiture" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
notes = "Vérification de l'état de la batterie automobile"
|
notes = "Vérification de l'état de la batterie automobile"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-batterie-voiture"
|
vars.instructions_url = "/life-noc/item/voiture/verification-batterie-voiture"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "voiture-verification-balais-essuie-glace" {
|
apply Service "voiture-verification-balais-essuie-glace" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-balais-essuie-glace"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-balais-essuie-glace"
|
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification des essuie-glaces"
|
notes = "Vérification des essuie-glaces"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-balais-essuie-glace"
|
vars.instructions_url = "/life-noc/item/voiture/verification-balais-essuie-glace"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -97,45 +88,28 @@ apply Service "voiture-verification-liquides" {
|
||||||
vars.mock_message = "Sous contrôle"
|
vars.mock_message = "Sous contrôle"
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
notes = "Vérification des liquides de la voiture"
|
notes = "Vérification des liquides de la voiture"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-liquides"
|
vars.instructions_url = "/life-noc/item/voiture/verification-liquides"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "voiture-verification-eclairage" {
|
apply Service "voiture-verification-eclairage" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "elapsed_time"
|
vars.date_echeance = "2026-05-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-eclairage"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-eclairage"
|
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
vars.life_noc_threshold_unknown_lt = "60"
|
|
||||||
vars.life_noc_threshold_ok_gte = "60"
|
|
||||||
vars.life_noc_threshold_warning_gte = "90"
|
|
||||||
vars.life_noc_threshold_critical_gte = "120"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Vérification de l'éclairage et des phares"
|
notes = "Vérification de l'éclairage et des phares"
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-eclairage"
|
vars.instructions_url = "/life-noc/item/voiture/verification-eclairage"
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
||||||
apply Service "voiture-verification-immatriculation-assurance" {
|
apply Service "voiture-verification-immatriculation-assurance" {
|
||||||
import "service_life_noc_probe"
|
import "service_echeance"
|
||||||
vars.life_noc_probe_type = "days_until_due"
|
vars.date_echeance = "2026-06-01"
|
||||||
vars.life_noc_source_type = "manual_date"
|
vars.mock_state = "OK"
|
||||||
vars.life_noc_source_value = ""
|
vars.mock_message = "Sous contrôle"
|
||||||
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
|
|
||||||
vars.life_noc_item_key = "verification-immatriculation-assurance"
|
|
||||||
vars.life_noc_metric_unit = "days"
|
|
||||||
vars.life_noc_label = "verification-immatriculation-assurance"
|
|
||||||
groups = [ "VOITURE" ]
|
groups = [ "VOITURE" ]
|
||||||
vars.life_noc_threshold_ok_lt = "366"
|
notes = "Vérification papiers d'assurance et immatriculation"
|
||||||
vars.life_noc_threshold_warning_lt = "90"
|
vars.instructions_url = "/life-noc/item/voiture/verification-immatriculation-assurance"
|
||||||
vars.life_noc_threshold_critical_lt = "30"
|
|
||||||
vars.life_noc_on_error = "critical"
|
|
||||||
notes = "Retenir la date la plus proche à renouveler."
|
|
||||||
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-immatriculation-assurance"
|
|
||||||
assign where host.name == "life-noc"
|
assign where host.name == "life-noc"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,355 +0,0 @@
|
||||||
from __future__ import annotations
|
|
||||||
|
|
||||||
from copy import deepcopy
|
|
||||||
from datetime import datetime, timezone
|
|
||||||
from pathlib import Path
|
|
||||||
from typing import Any
|
|
||||||
import os
|
|
||||||
import tempfile
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
DOMAINS_FILE = Path(os.environ.get("LIFE_NOC_DOMAINS_FILE", "domains.yaml"))
|
|
||||||
|
|
||||||
ALLOWED_PROBE_TYPES = [
|
|
||||||
"",
|
|
||||||
"elapsed_time",
|
|
||||||
"days_until_due",
|
|
||||||
"elapsed_distance",
|
|
||||||
"current_value",
|
|
||||||
"remaining_quantity",
|
|
||||||
]
|
|
||||||
ALLOWED_SOURCE_TYPES = [
|
|
||||||
"",
|
|
||||||
"manual_date",
|
|
||||||
"manual_counter",
|
|
||||||
"manual_value",
|
|
||||||
"mqtt",
|
|
||||||
"file_json",
|
|
||||||
"file_text",
|
|
||||||
"csv",
|
|
||||||
"api",
|
|
||||||
"command",
|
|
||||||
"derived",
|
|
||||||
]
|
|
||||||
ALLOWED_METRIC_UNITS = [
|
|
||||||
"",
|
|
||||||
"days",
|
|
||||||
"km",
|
|
||||||
"units",
|
|
||||||
"%",
|
|
||||||
"volts",
|
|
||||||
"litres",
|
|
||||||
"watts",
|
|
||||||
]
|
|
||||||
ALLOWED_ON_ERROR = ["", "critical", "warning", "unknown"]
|
|
||||||
ALLOWED_FORM_MODES = [
|
|
||||||
"",
|
|
||||||
"complete_date",
|
|
||||||
"due_date",
|
|
||||||
"counter_pair",
|
|
||||||
"numeric_value",
|
|
||||||
"remaining_quantity",
|
|
||||||
]
|
|
||||||
THRESHOLD_FIELDS = [
|
|
||||||
"unknown_lt",
|
|
||||||
"ok_gte",
|
|
||||||
"warning_gte",
|
|
||||||
"critical_gte",
|
|
||||||
"unknown_gte",
|
|
||||||
"ok_lt",
|
|
||||||
"warning_lt",
|
|
||||||
"critical_lt",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class DomainsError(ValueError):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class DomainsConflictError(DomainsError):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def _now_suffix() -> str:
|
|
||||||
return datetime.now(timezone.utc).strftime('%Y%m%dT%H%M%SZ')
|
|
||||||
|
|
||||||
|
|
||||||
def load_domains_document() -> dict[str, Any]:
|
|
||||||
if not DOMAINS_FILE.exists():
|
|
||||||
raise DomainsError(f'Fichier introuvable: {DOMAINS_FILE}')
|
|
||||||
data = yaml.safe_load(DOMAINS_FILE.read_text(encoding='utf-8'))
|
|
||||||
if not isinstance(data, dict):
|
|
||||||
raise DomainsError('domains.yaml invalide')
|
|
||||||
domains = data.get('domains')
|
|
||||||
if not isinstance(domains, dict):
|
|
||||||
raise DomainsError("domains.yaml invalide: clé 'domains' absente ou invalide")
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def save_domains_document(doc: dict[str, Any], create_backup: bool = True) -> Path:
|
|
||||||
if not isinstance(doc, dict) or not isinstance(doc.get('domains'), dict):
|
|
||||||
raise DomainsError("document domains invalide")
|
|
||||||
|
|
||||||
target = DOMAINS_FILE
|
|
||||||
target.parent.mkdir(parents=True, exist_ok=True)
|
|
||||||
rendered = yaml.safe_dump(doc, sort_keys=False, allow_unicode=True, width=1000)
|
|
||||||
|
|
||||||
if create_backup and target.exists():
|
|
||||||
backup = target.with_suffix(target.suffix + f'.bak.{_now_suffix()}')
|
|
||||||
backup.write_text(target.read_text(encoding='utf-8'), encoding='utf-8')
|
|
||||||
|
|
||||||
fd, tmp_name = tempfile.mkstemp(prefix=target.name + '.', dir=str(target.parent))
|
|
||||||
try:
|
|
||||||
with os.fdopen(fd, 'w', encoding='utf-8') as handle:
|
|
||||||
handle.write(rendered)
|
|
||||||
os.replace(tmp_name, target)
|
|
||||||
finally:
|
|
||||||
if os.path.exists(tmp_name):
|
|
||||||
os.unlink(tmp_name)
|
|
||||||
return target
|
|
||||||
|
|
||||||
|
|
||||||
def list_domains() -> list[str]:
|
|
||||||
doc = load_domains_document()
|
|
||||||
return list(doc['domains'].keys())
|
|
||||||
|
|
||||||
|
|
||||||
def list_domain_items(domain: str) -> list[dict[str, Any]]:
|
|
||||||
doc = load_domains_document()
|
|
||||||
items = doc['domains'].get(domain)
|
|
||||||
if not isinstance(items, list):
|
|
||||||
raise KeyError(domain)
|
|
||||||
return items
|
|
||||||
|
|
||||||
|
|
||||||
def get_domain_item(domain: str, item_key: str) -> dict[str, Any]:
|
|
||||||
items = list_domain_items(domain)
|
|
||||||
for item in items:
|
|
||||||
if isinstance(item, dict) and str(item.get('name', '')).strip() == item_key:
|
|
||||||
return deepcopy(item)
|
|
||||||
raise KeyError(item_key)
|
|
||||||
|
|
||||||
|
|
||||||
def _find_item_index(items: list[dict[str, Any]], item_key: str) -> int:
|
|
||||||
for index, item in enumerate(items):
|
|
||||||
if isinstance(item, dict) and str(item.get('name', '')).strip() == item_key:
|
|
||||||
return index
|
|
||||||
raise KeyError(item_key)
|
|
||||||
|
|
||||||
|
|
||||||
def _clean_value(value: Any) -> Any:
|
|
||||||
if isinstance(value, dict):
|
|
||||||
cleaned = {}
|
|
||||||
for key, subvalue in value.items():
|
|
||||||
candidate = _clean_value(subvalue)
|
|
||||||
if candidate in ('', None, {}, []):
|
|
||||||
continue
|
|
||||||
cleaned[key] = candidate
|
|
||||||
return cleaned
|
|
||||||
if isinstance(value, list):
|
|
||||||
cleaned_list = [_clean_value(v) for v in value]
|
|
||||||
return [v for v in cleaned_list if v not in ('', None, {}, [])]
|
|
||||||
return value
|
|
||||||
|
|
||||||
|
|
||||||
def _parse_number(value: Any) -> Any:
|
|
||||||
if value is None:
|
|
||||||
return None
|
|
||||||
text = str(value).strip()
|
|
||||||
if text == '':
|
|
||||||
return None
|
|
||||||
try:
|
|
||||||
if any(ch in text for ch in ('.', 'e', 'E')):
|
|
||||||
number = float(text)
|
|
||||||
return int(number) if number.is_integer() else number
|
|
||||||
return int(text)
|
|
||||||
except ValueError:
|
|
||||||
raise DomainsError(f'Valeur numérique invalide: {text}')
|
|
||||||
|
|
||||||
|
|
||||||
def _coerce_bool(value: Any) -> bool:
|
|
||||||
return str(value).strip().lower() in {'1', 'true', 'yes', 'on'}
|
|
||||||
|
|
||||||
|
|
||||||
def _validate_choice(label: str, value: str, allowed: list[str]) -> str:
|
|
||||||
if value not in allowed:
|
|
||||||
raise DomainsError(f'{label} invalide: {value}')
|
|
||||||
return value
|
|
||||||
|
|
||||||
|
|
||||||
def normalize_item_payload(form: dict[str, Any], existing_item: dict[str, Any] | None = None) -> dict[str, Any]:
|
|
||||||
base = deepcopy(existing_item) if existing_item else {}
|
|
||||||
|
|
||||||
name = str(form.get('name', base.get('name', ''))).strip()
|
|
||||||
if not name:
|
|
||||||
raise DomainsError("Le champ 'name' est obligatoire.")
|
|
||||||
item: dict[str, Any] = {'name': name}
|
|
||||||
|
|
||||||
date_value = str(form.get('date', base.get('date', ''))).strip()
|
|
||||||
if date_value:
|
|
||||||
item['date'] = date_value
|
|
||||||
|
|
||||||
for field in ['title', 'summary', 'notes', 'instructions', 'notes_url', 'instructions_url', 'action_url']:
|
|
||||||
raw = form.get(field, base.get(field, ''))
|
|
||||||
value = str(raw).strip() if raw is not None else ''
|
|
||||||
if value:
|
|
||||||
item[field] = value
|
|
||||||
|
|
||||||
probe_type = str(form.get('probe_type', base.get('probe', {}).get('type', ''))).strip()
|
|
||||||
source_type = str(form.get('probe_source_type', base.get('probe', {}).get('source', {}).get('type', ''))).strip()
|
|
||||||
inputs_file = str(form.get('probe_inputs_file', base.get('probe', {}).get('source', {}).get('inputs_file', ''))).strip()
|
|
||||||
source_item_key = str(form.get('probe_item_key', base.get('probe', {}).get('source', {}).get('item_key', ''))).strip()
|
|
||||||
metric_unit = str(form.get('metric_unit', base.get('probe', {}).get('metric', {}).get('unit', ''))).strip()
|
|
||||||
on_error = str(form.get('policy_on_error', base.get('probe', {}).get('policy', {}).get('on_error', ''))).strip()
|
|
||||||
|
|
||||||
_validate_choice('probe.type', probe_type, ALLOWED_PROBE_TYPES)
|
|
||||||
_validate_choice('probe.source.type', source_type, ALLOWED_SOURCE_TYPES)
|
|
||||||
_validate_choice('metric.unit', metric_unit, ALLOWED_METRIC_UNITS)
|
|
||||||
_validate_choice('policy.on_error', on_error, ALLOWED_ON_ERROR)
|
|
||||||
|
|
||||||
thresholds: dict[str, Any] = {}
|
|
||||||
base_thresholds = base.get('probe', {}).get('thresholds', {}) if isinstance(base.get('probe'), dict) else {}
|
|
||||||
for field in THRESHOLD_FIELDS:
|
|
||||||
raw = form.get(field, base_thresholds.get(field, ''))
|
|
||||||
parsed = _parse_number(raw)
|
|
||||||
if parsed is not None:
|
|
||||||
thresholds[field] = parsed
|
|
||||||
|
|
||||||
if probe_type or source_type or inputs_file or source_item_key or metric_unit or thresholds or on_error:
|
|
||||||
probe: dict[str, Any] = {}
|
|
||||||
if probe_type:
|
|
||||||
probe['type'] = probe_type
|
|
||||||
source: dict[str, Any] = {}
|
|
||||||
if source_type:
|
|
||||||
source['type'] = source_type
|
|
||||||
if inputs_file:
|
|
||||||
source['inputs_file'] = inputs_file
|
|
||||||
if source_item_key:
|
|
||||||
source['item_key'] = source_item_key
|
|
||||||
if source:
|
|
||||||
probe['source'] = source
|
|
||||||
if metric_unit:
|
|
||||||
probe['metric'] = {'unit': metric_unit}
|
|
||||||
if thresholds:
|
|
||||||
probe['thresholds'] = thresholds
|
|
||||||
if on_error:
|
|
||||||
probe['policy'] = {'on_error': on_error}
|
|
||||||
item['probe'] = probe
|
|
||||||
|
|
||||||
form_mode = str(form.get('ui_form_mode', base.get('ui', {}).get('form_mode', ''))).strip()
|
|
||||||
_validate_choice('ui.form_mode', form_mode, ALLOWED_FORM_MODES)
|
|
||||||
allow_complete = _coerce_bool(form.get('ui_allow_complete', base.get('ui', {}).get('allow_complete', False)))
|
|
||||||
allow_manual_edit = _coerce_bool(form.get('ui_allow_manual_edit', base.get('ui', {}).get('allow_manual_edit', False)))
|
|
||||||
if form_mode or allow_complete or allow_manual_edit:
|
|
||||||
ui: dict[str, Any] = {}
|
|
||||||
if form_mode:
|
|
||||||
ui['form_mode'] = form_mode
|
|
||||||
if allow_complete:
|
|
||||||
ui['allow_complete'] = True
|
|
||||||
if allow_manual_edit:
|
|
||||||
ui['allow_manual_edit'] = True
|
|
||||||
item['ui'] = ui
|
|
||||||
|
|
||||||
normalized = _clean_value(item)
|
|
||||||
_validate_item_structure(normalized)
|
|
||||||
return normalized
|
|
||||||
|
|
||||||
|
|
||||||
def _validate_item_structure(item: dict[str, Any]) -> None:
|
|
||||||
if 'name' not in item or not str(item['name']).strip():
|
|
||||||
raise DomainsError("Le champ 'name' est obligatoire.")
|
|
||||||
probe = item.get('probe')
|
|
||||||
if probe is None:
|
|
||||||
return
|
|
||||||
if not isinstance(probe, dict):
|
|
||||||
raise DomainsError('probe doit être un objet')
|
|
||||||
if 'type' not in probe:
|
|
||||||
raise DomainsError("probe.type est requis dès qu'un probe est défini")
|
|
||||||
source = probe.get('source')
|
|
||||||
if source is not None and not isinstance(source, dict):
|
|
||||||
raise DomainsError('probe.source doit être un objet')
|
|
||||||
metric = probe.get('metric')
|
|
||||||
if metric is not None and not isinstance(metric, dict):
|
|
||||||
raise DomainsError('probe.metric doit être un objet')
|
|
||||||
thresholds = probe.get('thresholds')
|
|
||||||
if thresholds is not None and not isinstance(thresholds, dict):
|
|
||||||
raise DomainsError('probe.thresholds doit être un objet')
|
|
||||||
|
|
||||||
|
|
||||||
def upsert_item(domain: str, item: dict[str, Any], original_item_key: str | None = None) -> Path:
|
|
||||||
doc = load_domains_document()
|
|
||||||
items = doc['domains'].get(domain)
|
|
||||||
if not isinstance(items, list):
|
|
||||||
raise KeyError(domain)
|
|
||||||
|
|
||||||
existing_names = [str(entry.get('name', '')).strip() for entry in items if isinstance(entry, dict)]
|
|
||||||
new_name = str(item['name']).strip()
|
|
||||||
if new_name in existing_names and original_item_key != new_name:
|
|
||||||
raise DomainsConflictError(f"Un item nommé '{new_name}' existe déjà dans le domaine '{domain}'.")
|
|
||||||
|
|
||||||
if original_item_key:
|
|
||||||
index = _find_item_index(items, original_item_key)
|
|
||||||
items[index] = item
|
|
||||||
else:
|
|
||||||
items.append(item)
|
|
||||||
return save_domains_document(doc)
|
|
||||||
|
|
||||||
|
|
||||||
def delete_item(domain: str, item_key: str) -> Path:
|
|
||||||
doc = load_domains_document()
|
|
||||||
items = doc['domains'].get(domain)
|
|
||||||
if not isinstance(items, list):
|
|
||||||
raise KeyError(domain)
|
|
||||||
index = _find_item_index(items, item_key)
|
|
||||||
items.pop(index)
|
|
||||||
return save_domains_document(doc)
|
|
||||||
|
|
||||||
|
|
||||||
def reorder_item(domain: str, item_key: str, direction: str) -> Path:
|
|
||||||
if direction not in {'up', 'down'}:
|
|
||||||
raise DomainsError('direction invalide')
|
|
||||||
doc = load_domains_document()
|
|
||||||
items = doc['domains'].get(domain)
|
|
||||||
if not isinstance(items, list):
|
|
||||||
raise KeyError(domain)
|
|
||||||
index = _find_item_index(items, item_key)
|
|
||||||
if direction == 'up' and index > 0:
|
|
||||||
items[index - 1], items[index] = items[index], items[index - 1]
|
|
||||||
elif direction == 'down' and index < len(items) - 1:
|
|
||||||
items[index + 1], items[index] = items[index], items[index + 1]
|
|
||||||
return save_domains_document(doc)
|
|
||||||
|
|
||||||
|
|
||||||
def item_to_form_values(item: dict[str, Any] | None, domain: str = '') -> dict[str, Any]:
|
|
||||||
item = deepcopy(item) if item else {}
|
|
||||||
probe = item.get('probe', {}) if isinstance(item.get('probe'), dict) else {}
|
|
||||||
source = probe.get('source', {}) if isinstance(probe.get('source'), dict) else {}
|
|
||||||
metric = probe.get('metric', {}) if isinstance(probe.get('metric'), dict) else {}
|
|
||||||
thresholds = probe.get('thresholds', {}) if isinstance(probe.get('thresholds'), dict) else {}
|
|
||||||
policy = probe.get('policy', {}) if isinstance(probe.get('policy'), dict) else {}
|
|
||||||
ui = item.get('ui', {}) if isinstance(item.get('ui'), dict) else {}
|
|
||||||
|
|
||||||
values = {
|
|
||||||
'domain': domain,
|
|
||||||
'name': item.get('name', ''),
|
|
||||||
'date': item.get('date', ''),
|
|
||||||
'title': item.get('title', ''),
|
|
||||||
'summary': item.get('summary', ''),
|
|
||||||
'notes': item.get('notes', ''),
|
|
||||||
'instructions': item.get('instructions', ''),
|
|
||||||
'notes_url': item.get('notes_url', ''),
|
|
||||||
'instructions_url': item.get('instructions_url', ''),
|
|
||||||
'action_url': item.get('action_url', ''),
|
|
||||||
'probe_type': probe.get('type', ''),
|
|
||||||
'probe_source_type': source.get('type', ''),
|
|
||||||
'probe_inputs_file': source.get('inputs_file', ''),
|
|
||||||
'probe_item_key': source.get('item_key', ''),
|
|
||||||
'metric_unit': metric.get('unit', ''),
|
|
||||||
'policy_on_error': policy.get('on_error', ''),
|
|
||||||
'ui_form_mode': ui.get('form_mode', ''),
|
|
||||||
'ui_allow_complete': bool(ui.get('allow_complete', False)),
|
|
||||||
'ui_allow_manual_edit': bool(ui.get('allow_manual_edit', False)),
|
|
||||||
}
|
|
||||||
for field in THRESHOLD_FIELDS:
|
|
||||||
values[field] = thresholds.get(field, '')
|
|
||||||
return values
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import re
|
import re
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
|
@ -16,19 +15,6 @@ PROBE_TEMPLATE = "service_life_noc_probe"
|
||||||
DEFAULT_MOCK_STATE = "OK"
|
DEFAULT_MOCK_STATE = "OK"
|
||||||
DEFAULT_MOCK_MESSAGE = "Sous contrôle"
|
DEFAULT_MOCK_MESSAGE = "Sous contrôle"
|
||||||
|
|
||||||
LIFE_NOC_PUBLIC_BASE_URL = os.environ.get("LIFE_NOC_PUBLIC_BASE_URL", "").rstrip("/")
|
|
||||||
|
|
||||||
def absolutize_url(url: str) -> str:
|
|
||||||
url = (url or "").strip()
|
|
||||||
if not url:
|
|
||||||
return url
|
|
||||||
if url.startswith("http://") or url.startswith("https://"):
|
|
||||||
return url
|
|
||||||
if LIFE_NOC_PUBLIC_BASE_URL:
|
|
||||||
if not url.startswith("/"):
|
|
||||||
url = "/" + url
|
|
||||||
return LIFE_NOC_PUBLIC_BASE_URL + url
|
|
||||||
return url
|
|
||||||
|
|
||||||
def slugify(value: str) -> str:
|
def slugify(value: str) -> str:
|
||||||
value = value.strip().lower()
|
value = value.strip().lower()
|
||||||
|
|
@ -96,7 +82,6 @@ def render_mock_service(domain: str, group_name: str, item: dict) -> str:
|
||||||
instructions_url = item.get("instructions_url", "").strip()
|
instructions_url = item.get("instructions_url", "").strip()
|
||||||
if not instructions_url:
|
if not instructions_url:
|
||||||
instructions_url = f"/life-noc/item/{domain}/{name}"
|
instructions_url = f"/life-noc/item/{domain}/{name}"
|
||||||
instructions_url = absolutize_url(instructions_url)
|
|
||||||
action_url = item.get("action_url", "").strip()
|
action_url = item.get("action_url", "").strip()
|
||||||
mock_state = normalize_mock_state(item.get("mock_state", DEFAULT_MOCK_STATE))
|
mock_state = normalize_mock_state(item.get("mock_state", DEFAULT_MOCK_STATE))
|
||||||
mock_message = item.get("mock_message", DEFAULT_MOCK_MESSAGE).strip() or DEFAULT_MOCK_MESSAGE
|
mock_message = item.get("mock_message", DEFAULT_MOCK_MESSAGE).strip() or DEFAULT_MOCK_MESSAGE
|
||||||
|
|
@ -136,7 +121,6 @@ def render_probe_service(domain: str, group_name: str, item: dict) -> str:
|
||||||
if not instructions_url:
|
if not instructions_url:
|
||||||
instructions_url = f"/life-noc/item/{domain}/{name}"
|
instructions_url = f"/life-noc/item/{domain}/{name}"
|
||||||
action_url = item.get("action_url", "").strip()
|
action_url = item.get("action_url", "").strip()
|
||||||
instructions_url = absolutize_url(instructions_url)
|
|
||||||
probe = item["probe"]
|
probe = item["probe"]
|
||||||
|
|
||||||
probe_type = str(probe["type"]).strip()
|
probe_type = str(probe["type"]).strip()
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from urllib.parse import quote
|
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from fastapi import FastAPI, HTTPException, Form
|
from fastapi import FastAPI, HTTPException, Form
|
||||||
|
|
@ -15,24 +13,6 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||||
if str(ROOT) not in sys.path:
|
if str(ROOT) not in sys.path:
|
||||||
sys.path.insert(0, str(ROOT))
|
sys.path.insert(0, str(ROOT))
|
||||||
|
|
||||||
from lib.life_noc_domains import ( # noqa: E402
|
|
||||||
ALLOWED_FORM_MODES,
|
|
||||||
ALLOWED_METRIC_UNITS,
|
|
||||||
ALLOWED_ON_ERROR,
|
|
||||||
ALLOWED_PROBE_TYPES,
|
|
||||||
ALLOWED_SOURCE_TYPES,
|
|
||||||
THRESHOLD_FIELDS,
|
|
||||||
DomainsConflictError,
|
|
||||||
DomainsError,
|
|
||||||
delete_item,
|
|
||||||
get_domain_item,
|
|
||||||
item_to_form_values,
|
|
||||||
list_domain_items,
|
|
||||||
list_domains,
|
|
||||||
normalize_item_payload,
|
|
||||||
reorder_item,
|
|
||||||
upsert_item,
|
|
||||||
)
|
|
||||||
from lib.life_noc_inputs import ( # noqa: E402
|
from lib.life_noc_inputs import ( # noqa: E402
|
||||||
list_items,
|
list_items,
|
||||||
get_item,
|
get_item,
|
||||||
|
|
@ -52,198 +32,10 @@ class CompleteInputRequest(BaseModel):
|
||||||
origin: str = "manual"
|
origin: str = "manual"
|
||||||
|
|
||||||
|
|
||||||
app = FastAPI(title="Life-NOC Input API", version="1.1.0")
|
app = FastAPI(title="Life-NOC Input API", version="1.0.0")
|
||||||
|
|
||||||
|
|
||||||
ADMIN_UI_ENABLED = os.environ.get("LIFE_NOC_ADMIN_UI_ENABLED", "0").strip().lower() in {
|
def html_escape(value: str) -> str:
|
||||||
"1",
|
|
||||||
"true",
|
|
||||||
"yes",
|
|
||||||
"on",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BASE_CSS = """
|
|
||||||
:root {
|
|
||||||
color-scheme: light;
|
|
||||||
--bg: #f5f7fb;
|
|
||||||
--card: #ffffff;
|
|
||||||
--border: #d9e0ea;
|
|
||||||
--text: #112033;
|
|
||||||
--muted: #5a697b;
|
|
||||||
--accent: #164c96;
|
|
||||||
--accent-soft: #eaf2ff;
|
|
||||||
--danger: #8b1e1e;
|
|
||||||
--ok: #0f6b3d;
|
|
||||||
}
|
|
||||||
* { box-sizing: border-box; }
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
background: var(--bg);
|
|
||||||
color: var(--text);
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
line-height: 1.45;
|
|
||||||
}
|
|
||||||
main {
|
|
||||||
max-width: 920px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 1rem;
|
|
||||||
}
|
|
||||||
.stack { display: grid; gap: 1rem; }
|
|
||||||
.card {
|
|
||||||
background: var(--card);
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
border-radius: 16px;
|
|
||||||
padding: 1rem;
|
|
||||||
box-shadow: 0 1px 2px rgba(0,0,0,0.03);
|
|
||||||
}
|
|
||||||
.hero { padding: 1rem; }
|
|
||||||
.muted { color: var(--muted); }
|
|
||||||
.state { font-size: 1.15rem; font-weight: bold; }
|
|
||||||
h1, h2, h3 { margin-top: 0; }
|
|
||||||
ul { padding-left: 1.2rem; }
|
|
||||||
code {
|
|
||||||
background: #eef2f7;
|
|
||||||
padding: 0.15rem 0.35rem;
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
a { color: var(--accent); text-decoration: none; }
|
|
||||||
a:hover { text-decoration: underline; }
|
|
||||||
.toolbar, .actions {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
gap: 0.6rem;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
.actions form, .inline-form { display: inline-flex; margin: 0; }
|
|
||||||
.pill {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0.25rem 0.55rem;
|
|
||||||
border-radius: 999px;
|
|
||||||
background: var(--accent-soft);
|
|
||||||
color: var(--accent);
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
.button, button {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
gap: 0.35rem;
|
|
||||||
min-height: 44px;
|
|
||||||
padding: 0.75rem 1rem;
|
|
||||||
border-radius: 12px;
|
|
||||||
border: 1px solid #335b94;
|
|
||||||
background: #ffffff;
|
|
||||||
color: #163454;
|
|
||||||
font-size: 1rem;
|
|
||||||
cursor: pointer;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.button.primary, button.primary {
|
|
||||||
background: var(--accent);
|
|
||||||
color: #fff;
|
|
||||||
border-color: var(--accent);
|
|
||||||
}
|
|
||||||
.button.danger, button.danger {
|
|
||||||
border-color: #b64b4b;
|
|
||||||
color: var(--danger);
|
|
||||||
}
|
|
||||||
.grid-cards {
|
|
||||||
display: grid;
|
|
||||||
gap: 0.9rem;
|
|
||||||
}
|
|
||||||
.row-between {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
gap: 1rem;
|
|
||||||
}
|
|
||||||
.item-title {
|
|
||||||
font-size: 1.05rem;
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 0 0 0.35rem 0;
|
|
||||||
}
|
|
||||||
.form-grid {
|
|
||||||
display: grid;
|
|
||||||
gap: 0.85rem;
|
|
||||||
}
|
|
||||||
.form-grid.two { grid-template-columns: 1fr; }
|
|
||||||
label {
|
|
||||||
display: grid;
|
|
||||||
gap: 0.35rem;
|
|
||||||
font-size: 0.95rem;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
input[type="text"], input[type="date"], textarea, select {
|
|
||||||
width: 100%;
|
|
||||||
min-height: 44px;
|
|
||||||
padding: 0.75rem 0.8rem;
|
|
||||||
border-radius: 12px;
|
|
||||||
border: 1px solid #aebacc;
|
|
||||||
font: inherit;
|
|
||||||
background: #fff;
|
|
||||||
color: var(--text);
|
|
||||||
}
|
|
||||||
textarea { min-height: 100px; resize: vertical; }
|
|
||||||
.checks {
|
|
||||||
display: grid;
|
|
||||||
gap: 0.55rem;
|
|
||||||
}
|
|
||||||
.check {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 0.6rem;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
.check input { width: 20px; height: 20px; }
|
|
||||||
.section-title {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
font-size: 1.02rem;
|
|
||||||
}
|
|
||||||
details {
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
border-radius: 14px;
|
|
||||||
background: #fcfdff;
|
|
||||||
padding: 0.15rem 0.85rem 0.85rem 0.85rem;
|
|
||||||
}
|
|
||||||
details + details { margin-top: 0.8rem; }
|
|
||||||
summary {
|
|
||||||
cursor: pointer;
|
|
||||||
font-weight: bold;
|
|
||||||
list-style: none;
|
|
||||||
padding: 0.9rem 0 0.6rem 0;
|
|
||||||
}
|
|
||||||
summary::-webkit-details-marker { display: none; }
|
|
||||||
.alert {
|
|
||||||
border: 1px solid #f2c5c5;
|
|
||||||
background: #fff4f4;
|
|
||||||
color: #7a1a1a;
|
|
||||||
border-radius: 12px;
|
|
||||||
padding: 0.85rem 1rem;
|
|
||||||
}
|
|
||||||
pre.yaml-preview {
|
|
||||||
white-space: pre-wrap;
|
|
||||||
word-break: break-word;
|
|
||||||
background: #0f1720;
|
|
||||||
color: #e8eef6;
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 14px;
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
.mobile-sticky {
|
|
||||||
position: sticky;
|
|
||||||
bottom: 0;
|
|
||||||
background: rgba(245,247,251,0.96);
|
|
||||||
padding-top: 0.7rem;
|
|
||||||
}
|
|
||||||
@media (min-width: 760px) {
|
|
||||||
.form-grid.two { grid-template-columns: 1fr 1fr; }
|
|
||||||
.grid-cards { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def html_escape(value: object) -> str:
|
|
||||||
return (
|
return (
|
||||||
str(value)
|
str(value)
|
||||||
.replace("&", "&")
|
.replace("&", "&")
|
||||||
|
|
@ -268,244 +60,9 @@ def resolve_instructions_url(domain: str, item_key: str, service: dict) -> str:
|
||||||
return f"/life-noc/item/{domain}/{item_key}"
|
return f"/life-noc/item/{domain}/{item_key}"
|
||||||
|
|
||||||
|
|
||||||
def page_shell(title: str, body: str) -> HTMLResponse:
|
|
||||||
html = f"""<!DOCTYPE html>
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>{html_escape(title)}</title>
|
|
||||||
<style>{BASE_CSS}</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<main>{body}</main>
|
|
||||||
</body>
|
|
||||||
</html>"""
|
|
||||||
return HTMLResponse(content=html)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def require_admin_enabled() -> None:
|
|
||||||
if not ADMIN_UI_ENABLED:
|
|
||||||
raise HTTPException(status_code=404, detail="interface admin désactivée")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def bool_attr(value: bool) -> str:
|
|
||||||
return " checked" if value else ""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def option_tags(options: list[str], selected: str) -> str:
|
|
||||||
tags = []
|
|
||||||
for value in options:
|
|
||||||
label = value if value else "—"
|
|
||||||
sel = " selected" if value == selected else ""
|
|
||||||
tags.append(f'<option value="{html_escape(value)}"{sel}>{html_escape(label)}</option>')
|
|
||||||
return "".join(tags)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def render_alert(message: str) -> str:
|
|
||||||
if not message:
|
|
||||||
return ""
|
|
||||||
return f'<div class="alert">{html_escape(message)}</div>'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def render_domain_card(domain: str, items: list[dict]) -> str:
|
|
||||||
probed = sum(1 for item in items if isinstance(item, dict) and isinstance(item.get("probe"), dict))
|
|
||||||
return f"""
|
|
||||||
<article class="card">
|
|
||||||
<div class="row-between">
|
|
||||||
<div>
|
|
||||||
<p class="item-title">{html_escape(domain)}</p>
|
|
||||||
<p class="muted">{len(items)} item(s) · {probed} avec sonde réelle</p>
|
|
||||||
</div>
|
|
||||||
<a class="button primary" href="/life-noc/admin/domain/{html_escape(domain)}">Ouvrir</a>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def render_item_card(domain: str, item: dict, index: int, total: int) -> str:
|
|
||||||
name = str(item.get("name", "")).strip()
|
|
||||||
title = str(item.get("title") or name or "Item").strip()
|
|
||||||
summary = str(item.get("summary") or item.get("notes") or "").strip()
|
|
||||||
probe_type = str(item.get("probe", {}).get("type", "mock") if isinstance(item.get("probe"), dict) else "mock")
|
|
||||||
probe_badge = f'<span class="pill">{html_escape(probe_type)}</span>'
|
|
||||||
move_up = f"""
|
|
||||||
<form method="post" action="/life-noc/admin/domain/{html_escape(domain)}/{html_escape(name)}/move">
|
|
||||||
<input type="hidden" name="direction" value="up">
|
|
||||||
<button title="Monter" {'disabled' if index == 0 else ''}>↑</button>
|
|
||||||
</form>
|
|
||||||
""" if total > 1 else ""
|
|
||||||
move_down = f"""
|
|
||||||
<form method="post" action="/life-noc/admin/domain/{html_escape(domain)}/{html_escape(name)}/move">
|
|
||||||
<input type="hidden" name="direction" value="down">
|
|
||||||
<button title="Descendre" {'disabled' if index == total - 1 else ''}>↓</button>
|
|
||||||
</form>
|
|
||||||
""" if total > 1 else ""
|
|
||||||
return f"""
|
|
||||||
<article class="card">
|
|
||||||
<div class="row-between">
|
|
||||||
<div>
|
|
||||||
<p class="item-title">{html_escape(title)}</p>
|
|
||||||
<p class="muted"><code>{html_escape(name)}</code></p>
|
|
||||||
<p class="muted">{html_escape(summary)}</p>
|
|
||||||
</div>
|
|
||||||
<div>{probe_badge}</div>
|
|
||||||
</div>
|
|
||||||
<div class="actions">
|
|
||||||
<a class="button" href="/life-noc/admin/item/{html_escape(domain)}/{html_escape(name)}">Voir</a>
|
|
||||||
<a class="button primary" href="/life-noc/admin/item/{html_escape(domain)}/{html_escape(name)}/edit">Modifier</a>
|
|
||||||
{move_up}
|
|
||||||
{move_down}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def render_item_editor(domain: str, values: dict, action_url: str, heading: str, error_message: str = "") -> str:
|
|
||||||
thresholds_html = "".join(
|
|
||||||
f'''<label>{html_escape(field)}<input type="text" name="{html_escape(field)}" value="{html_escape(values.get(field, ''))}"></label>'''
|
|
||||||
for field in THRESHOLD_FIELDS
|
|
||||||
)
|
|
||||||
yaml_preview = render_yaml_preview(values)
|
|
||||||
return f"""
|
|
||||||
<section class="stack">
|
|
||||||
<div class="hero card">
|
|
||||||
<div class="toolbar">
|
|
||||||
<a class="button" href="/life-noc/admin/domain/{html_escape(domain)}">← Domaine</a>
|
|
||||||
<a class="button" href="/life-noc/admin">Accueil admin</a>
|
|
||||||
</div>
|
|
||||||
<h1>{html_escape(heading)}</h1>
|
|
||||||
<p class="muted">Éditeur mobile-first optionnel de <code>domains.yaml</code>. Sauvegarde explicite, sans changer le flux runtime existant.</p>
|
|
||||||
</div>
|
|
||||||
{render_alert(error_message)}
|
|
||||||
<form method="post" action="{html_escape(action_url)}" class="stack">
|
|
||||||
<details open>
|
|
||||||
<summary>Identité</summary>
|
|
||||||
<div class="form-grid two">
|
|
||||||
<label>Domaine
|
|
||||||
<input type="text" name="domain" value="{html_escape(domain)}" readonly>
|
|
||||||
</label>
|
|
||||||
<label>name
|
|
||||||
<input type="text" name="name" value="{html_escape(values.get('name', ''))}" required>
|
|
||||||
</label>
|
|
||||||
<label>Date de référence
|
|
||||||
<input type="date" name="date" value="{html_escape(values.get('date', ''))}">
|
|
||||||
</label>
|
|
||||||
<label>title
|
|
||||||
<input type="text" name="title" value="{html_escape(values.get('title', ''))}">
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-grid">
|
|
||||||
<label>summary
|
|
||||||
<textarea name="summary">{html_escape(values.get('summary', ''))}</textarea>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Contexte et contenu</summary>
|
|
||||||
<div class="form-grid">
|
|
||||||
<label>notes
|
|
||||||
<textarea name="notes">{html_escape(values.get('notes', ''))}</textarea>
|
|
||||||
</label>
|
|
||||||
<label>instructions
|
|
||||||
<textarea name="instructions">{html_escape(values.get('instructions', ''))}</textarea>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Liens</summary>
|
|
||||||
<div class="form-grid">
|
|
||||||
<label>notes_url<input type="text" name="notes_url" value="{html_escape(values.get('notes_url', ''))}"></label>
|
|
||||||
<label>instructions_url<input type="text" name="instructions_url" value="{html_escape(values.get('instructions_url', ''))}"></label>
|
|
||||||
<label>action_url<input type="text" name="action_url" value="{html_escape(values.get('action_url', ''))}"></label>
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Sonde</summary>
|
|
||||||
<div class="form-grid two">
|
|
||||||
<label>probe.type
|
|
||||||
<select name="probe_type">{option_tags(ALLOWED_PROBE_TYPES, str(values.get('probe_type', '')))}</select>
|
|
||||||
</label>
|
|
||||||
<label>probe.source.type
|
|
||||||
<select name="probe_source_type">{option_tags(ALLOWED_SOURCE_TYPES, str(values.get('probe_source_type', '')))}</select>
|
|
||||||
</label>
|
|
||||||
<label>probe.source.inputs_file
|
|
||||||
<input type="text" name="probe_inputs_file" value="{html_escape(values.get('probe_inputs_file', ''))}">
|
|
||||||
</label>
|
|
||||||
<label>probe.source.item_key
|
|
||||||
<input type="text" name="probe_item_key" value="{html_escape(values.get('probe_item_key', ''))}">
|
|
||||||
</label>
|
|
||||||
<label>metric.unit
|
|
||||||
<select name="metric_unit">{option_tags(ALLOWED_METRIC_UNITS, str(values.get('metric_unit', '')))}</select>
|
|
||||||
</label>
|
|
||||||
<label>policy.on_error
|
|
||||||
<select name="policy_on_error">{option_tags(ALLOWED_ON_ERROR, str(values.get('policy_on_error', '')))}</select>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Seuils</summary>
|
|
||||||
<div class="form-grid two">
|
|
||||||
{thresholds_html}
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Comportement UI</summary>
|
|
||||||
<div class="form-grid two">
|
|
||||||
<label>ui.form_mode
|
|
||||||
<select name="ui_form_mode">{option_tags(ALLOWED_FORM_MODES, str(values.get('ui_form_mode', '')))}</select>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="checks">
|
|
||||||
<label class="check"><input type="checkbox" name="ui_allow_complete" value="1"{bool_attr(bool(values.get('ui_allow_complete', False)))}> ui.allow_complete</label>
|
|
||||||
<label class="check"><input type="checkbox" name="ui_allow_manual_edit" value="1"{bool_attr(bool(values.get('ui_allow_manual_edit', False)))}> ui.allow_manual_edit</label>
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Aperçu YAML</summary>
|
|
||||||
<pre class="yaml-preview">{html_escape(yaml_preview)}</pre>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<div class="mobile-sticky">
|
|
||||||
<div class="card">
|
|
||||||
<div class="actions">
|
|
||||||
<button class="primary" type="submit">Écrire dans domains.yaml</button>
|
|
||||||
<a class="button" href="/life-noc/admin/domain/{html_escape(domain)}">Annuler</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</section>
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def render_yaml_preview(values: dict) -> str:
|
|
||||||
try:
|
|
||||||
payload = normalize_item_payload(values)
|
|
||||||
except Exception:
|
|
||||||
payload = {k: v for k, v in values.items() if k not in {"domain"}}
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
return yaml.safe_dump(payload, sort_keys=False, allow_unicode=True, width=1000)
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/health")
|
@app.get("/health")
|
||||||
def health() -> dict:
|
def health() -> dict:
|
||||||
return {"status": "ok", "admin_ui_enabled": ADMIN_UI_ENABLED}
|
return {"status": "ok"}
|
||||||
|
|
||||||
|
|
||||||
@app.get("/inputs/{domain}")
|
@app.get("/inputs/{domain}")
|
||||||
|
|
@ -561,15 +118,19 @@ def page_item(domain: str, item_key: str) -> HTMLResponse:
|
||||||
allow_complete = bool(ui.get("allow_complete", probe_type == "elapsed_time"))
|
allow_complete = bool(ui.get("allow_complete", probe_type == "elapsed_time"))
|
||||||
allow_manual_edit = bool(ui.get("allow_manual_edit", True))
|
allow_manual_edit = bool(ui.get("allow_manual_edit", True))
|
||||||
|
|
||||||
links_html = "".join(
|
links_html = ""
|
||||||
fragment for fragment in [
|
for fragment in [
|
||||||
link_row("Notes", notes_url),
|
link_row("Notes", notes_url),
|
||||||
link_row("Instructions", instructions_url),
|
link_row("Instructions", instructions_url),
|
||||||
link_row("Action", action_url),
|
link_row("Action", action_url),
|
||||||
] if fragment
|
]:
|
||||||
) or "<li class=\"muted\">Aucun lien défini.</li>"
|
if fragment:
|
||||||
|
links_html += fragment
|
||||||
|
|
||||||
|
summary_html = ""
|
||||||
|
if summary:
|
||||||
|
summary_html = f'<p><strong>Résumé :</strong> {html_escape(summary)}</p>'
|
||||||
|
|
||||||
summary_html = f'<p><strong>Résumé :</strong> {html_escape(summary)}</p>' if summary else ""
|
|
||||||
instructions_html = ""
|
instructions_html = ""
|
||||||
if instructions:
|
if instructions:
|
||||||
instructions_html = f"""
|
instructions_html = f"""
|
||||||
|
|
@ -577,30 +138,20 @@ def page_item(domain: str, item_key: str) -> HTMLResponse:
|
||||||
<h2>Instructions</h2>
|
<h2>Instructions</h2>
|
||||||
<pre style="white-space: pre-wrap; font-family: Arial, sans-serif;">{html_escape(instructions)}</pre>
|
<pre style="white-space: pre-wrap; font-family: Arial, sans-serif;">{html_escape(instructions)}</pre>
|
||||||
</section>
|
</section>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
manual_form_html = ""
|
manual_form_html = ""
|
||||||
if allow_manual_edit and form_mode in {"complete_date", "due_date"}:
|
if allow_manual_edit and form_mode == "complete_date":
|
||||||
form_title = "Mettre à jour la date" if form_mode == "complete_date" else "Définir l’échéance"
|
|
||||||
field_label = "Date" if form_mode == "complete_date" else "Date d’échéance"
|
|
||||||
form_hint = ""
|
|
||||||
if form_mode == "due_date":
|
|
||||||
form_hint = '<p class="muted">Saisir la date cible de cette échéance.</p>'
|
|
||||||
manual_form_html = f"""
|
manual_form_html = f"""
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<h2>{html_escape(form_title)}</h2>
|
<h2>Mettre à jour la date</h2>
|
||||||
{form_hint}
|
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/set">
|
||||||
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/set" class="form-grid">
|
<input type="date" name="value" value="{html_escape(current_input.get("value", ""))}" required>
|
||||||
<label>{html_escape(field_label)}
|
|
||||||
<input type="date" name="value" value="{html_escape(current_input.get('value', ''))}" required>
|
|
||||||
</label>
|
|
||||||
<input type="hidden" name="origin" value="manual">
|
<input type="hidden" name="origin" value="manual">
|
||||||
<div class="actions">
|
|
||||||
<button type="submit">Enregistrer</button>
|
<button type="submit">Enregistrer</button>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
complete_form_html = ""
|
complete_form_html = ""
|
||||||
if allow_complete:
|
if allow_complete:
|
||||||
|
|
@ -608,21 +159,62 @@ def page_item(domain: str, item_key: str) -> HTMLResponse:
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<h2>Action rapide</h2>
|
<h2>Action rapide</h2>
|
||||||
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/complete">
|
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/complete">
|
||||||
<button type="submit" class="primary">Compléter</button>
|
<button type="submit">Compléter</button>
|
||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
admin_link = ""
|
html = f"""<!DOCTYPE html>
|
||||||
if ADMIN_UI_ENABLED:
|
<html lang="fr">
|
||||||
admin_link = f'<a class="button" href="/life-noc/admin/item/{html_escape(domain)}/{html_escape(item_key)}">Admin</a>'
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
body = f"""
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<section class="hero card">
|
<title>Life-NOC — {html_escape(title)}</title>
|
||||||
<div class="toolbar">
|
<style>
|
||||||
<a class="button" href="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}">Actualiser</a>
|
body {{
|
||||||
{admin_link}
|
font-family: Arial, sans-serif;
|
||||||
</div>
|
max-width: 760px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 1rem;
|
||||||
|
line-height: 1.45;
|
||||||
|
}}
|
||||||
|
.card {{
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 1rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}}
|
||||||
|
.state {{
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: bold;
|
||||||
|
}}
|
||||||
|
button {{
|
||||||
|
font-size: 1rem;
|
||||||
|
padding: 0.9rem 1.2rem;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid #444;
|
||||||
|
cursor: pointer;
|
||||||
|
}}
|
||||||
|
input[type="date"] {{
|
||||||
|
font-size: 1rem;
|
||||||
|
padding: 0.7rem;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid #666;
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}}
|
||||||
|
ul {{
|
||||||
|
padding-left: 1.25rem;
|
||||||
|
}}
|
||||||
|
code {{
|
||||||
|
background: #f3f3f3;
|
||||||
|
padding: 0.1rem 0.3rem;
|
||||||
|
border-radius: 4px;
|
||||||
|
}}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<section class="card">
|
||||||
<h1>{html_escape(title)}</h1>
|
<h1>{html_escape(title)}</h1>
|
||||||
<p class="state">État actuel : {html_escape(state)}</p>
|
<p class="state">État actuel : {html_escape(state)}</p>
|
||||||
<p><strong>Type de sonde :</strong> {html_escape(probe_type)}</p>
|
<p><strong>Type de sonde :</strong> {html_escape(probe_type)}</p>
|
||||||
|
|
@ -631,9 +223,9 @@ def page_item(domain: str, item_key: str) -> HTMLResponse:
|
||||||
|
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<h2>Dernier intrant</h2>
|
<h2>Dernier intrant</h2>
|
||||||
<p><strong>Valeur :</strong> {html_escape(current_input.get('value', ''))}</p>
|
<p><strong>Valeur :</strong> {html_escape(current_input.get("value", ""))}</p>
|
||||||
<p><strong>Capturé le :</strong> {html_escape(current_input.get('captured_at', ''))}</p>
|
<p><strong>Capturé le :</strong> {html_escape(current_input.get("captured_at", ""))}</p>
|
||||||
<p><strong>Origine :</strong> {html_escape(current_input.get('origin', ''))}</p>
|
<p><strong>Origine :</strong> {html_escape(current_input.get("origin", ""))}</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="card">
|
<section class="card">
|
||||||
|
|
@ -647,13 +239,17 @@ def page_item(domain: str, item_key: str) -> HTMLResponse:
|
||||||
|
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<h2>Liens utiles</h2>
|
<h2>Liens utiles</h2>
|
||||||
<ul>{links_html}</ul>
|
<ul>
|
||||||
|
{links_html}
|
||||||
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{manual_form_html}
|
{manual_form_html}
|
||||||
{complete_form_html}
|
{complete_form_html}
|
||||||
"""
|
</main>
|
||||||
return page_shell(f"Life-NOC — {title}", body)
|
</body>
|
||||||
|
</html>"""
|
||||||
|
return HTMLResponse(content=html)
|
||||||
|
|
||||||
|
|
||||||
@app.post("/life-noc/item/{domain}/{item_key}/set")
|
@app.post("/life-noc/item/{domain}/{item_key}/set")
|
||||||
|
|
@ -665,7 +261,10 @@ def page_set_item(domain: str, item_key: str, value: str = Form(...), origin: st
|
||||||
except ValueError as exc:
|
except ValueError as exc:
|
||||||
raise HTTPException(status_code=400, detail=str(exc))
|
raise HTTPException(status_code=400, detail=str(exc))
|
||||||
|
|
||||||
return RedirectResponse(url=f"/life-noc/item/{domain}/{item_key}", status_code=303)
|
return RedirectResponse(
|
||||||
|
url=f"/life-noc/item/{domain}/{item_key}",
|
||||||
|
status_code=303,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.post("/life-noc/item/{domain}/{item_key}/complete")
|
@app.post("/life-noc/item/{domain}/{item_key}/complete")
|
||||||
|
|
@ -677,220 +276,7 @@ def page_complete_item(domain: str, item_key: str, origin: str = Form(default="m
|
||||||
except ValueError as exc:
|
except ValueError as exc:
|
||||||
raise HTTPException(status_code=400, detail=str(exc))
|
raise HTTPException(status_code=400, detail=str(exc))
|
||||||
|
|
||||||
return RedirectResponse(url=f"/life-noc/item/{domain}/{item_key}", status_code=303)
|
return RedirectResponse(
|
||||||
|
url=f"/life-noc/item/{domain}/{item_key}",
|
||||||
|
status_code=303,
|
||||||
@app.get("/life-noc/admin", response_class=HTMLResponse)
|
)
|
||||||
def admin_home() -> HTMLResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
domain_cards = []
|
|
||||||
for domain in list_domains():
|
|
||||||
items = list_domain_items(domain)
|
|
||||||
domain_cards.append(render_domain_card(domain, items))
|
|
||||||
body = f"""
|
|
||||||
<section class="hero card">
|
|
||||||
<h1>Life-NOC Admin</h1>
|
|
||||||
<p class="muted">Interface web optionnelle pour administrer <code>domains.yaml</code> sans casser le pipeline existant.</p>
|
|
||||||
</section>
|
|
||||||
<section class="grid-cards">{''.join(domain_cards)}</section>
|
|
||||||
"""
|
|
||||||
return page_shell("Life-NOC Admin", body)
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/life-noc/admin/domain/{domain}", response_class=HTMLResponse)
|
|
||||||
def admin_domain(domain: str, error: str = "") -> HTMLResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
try:
|
|
||||||
items = list_domain_items(domain)
|
|
||||||
except KeyError:
|
|
||||||
raise HTTPException(status_code=404, detail="domaine introuvable")
|
|
||||||
cards = [render_item_card(domain, item, idx, len(items)) for idx, item in enumerate(items)]
|
|
||||||
body = f"""
|
|
||||||
<section class="hero card">
|
|
||||||
<div class="toolbar">
|
|
||||||
<a class="button" href="/life-noc/admin">← Accueil admin</a>
|
|
||||||
<a class="button primary" href="/life-noc/admin/domain/{html_escape(domain)}/new">Créer un item</a>
|
|
||||||
</div>
|
|
||||||
<h1>Domaine : {html_escape(domain)}</h1>
|
|
||||||
<p class="muted">{len(items)} item(s). Les boutons ↑ et ↓ réordonnent l’ordre des items dans <code>domains.yaml</code>.</p>
|
|
||||||
</section>
|
|
||||||
{render_alert(error)}
|
|
||||||
<section class="stack">{''.join(cards)}</section>
|
|
||||||
"""
|
|
||||||
return page_shell(f"Life-NOC Admin — {domain}", body)
|
|
||||||
|
|
||||||
|
|
||||||
@app.post("/life-noc/admin/domain/{domain}/{item_key}/move")
|
|
||||||
def admin_move_item(domain: str, item_key: str, direction: str = Form(...)) -> RedirectResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
try:
|
|
||||||
reorder_item(domain, item_key, direction)
|
|
||||||
except (DomainsError, KeyError) as exc:
|
|
||||||
target = f"/life-noc/admin/domain/{domain}?error={quote(str(exc))}"
|
|
||||||
return RedirectResponse(url=target, status_code=303)
|
|
||||||
return RedirectResponse(url=f"/life-noc/admin/domain/{domain}", status_code=303)
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/life-noc/admin/item/{domain}/{item_key}", response_class=HTMLResponse)
|
|
||||||
def admin_item(domain: str, item_key: str) -> HTMLResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
try:
|
|
||||||
item = get_domain_item(domain, item_key)
|
|
||||||
except KeyError:
|
|
||||||
raise HTTPException(status_code=404, detail="item introuvable")
|
|
||||||
values = item_to_form_values(item, domain)
|
|
||||||
yaml_preview = render_yaml_preview(values)
|
|
||||||
body = f"""
|
|
||||||
<section class="hero card">
|
|
||||||
<div class="toolbar">
|
|
||||||
<a class="button" href="/life-noc/admin/domain/{html_escape(domain)}">← Domaine</a>
|
|
||||||
<a class="button primary" href="/life-noc/admin/item/{html_escape(domain)}/{html_escape(item_key)}/edit">Modifier</a>
|
|
||||||
<a class="button" href="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}">Page item</a>
|
|
||||||
</div>
|
|
||||||
<h1>{html_escape(values.get('title') or item_key)}</h1>
|
|
||||||
<p class="muted"><code>{html_escape(item_key)}</code></p>
|
|
||||||
</section>
|
|
||||||
<section class="card">
|
|
||||||
<h2>Résumé</h2>
|
|
||||||
<p>{html_escape(values.get('summary') or values.get('notes') or '')}</p>
|
|
||||||
<p class="muted">probe.type = {html_escape(values.get('probe_type') or 'mock')}</p>
|
|
||||||
</section>
|
|
||||||
<section class="card">
|
|
||||||
<h2>Aperçu YAML</h2>
|
|
||||||
<pre class="yaml-preview">{html_escape(yaml_preview)}</pre>
|
|
||||||
</section>
|
|
||||||
<section class="card">
|
|
||||||
<form method="post" action="/life-noc/admin/item/{html_escape(domain)}/{html_escape(item_key)}/delete" onsubmit="return confirm('Supprimer cet item de domains.yaml ?');">
|
|
||||||
<button class="danger" type="submit">Supprimer l’item</button>
|
|
||||||
</form>
|
|
||||||
</section>
|
|
||||||
"""
|
|
||||||
return page_shell(f"Life-NOC Admin — {item_key}", body)
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/life-noc/admin/domain/{domain}/new", response_class=HTMLResponse)
|
|
||||||
def admin_new_item_form(domain: str, error: str = "") -> HTMLResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
try:
|
|
||||||
list_domain_items(domain)
|
|
||||||
except KeyError:
|
|
||||||
raise HTTPException(status_code=404, detail="domaine introuvable")
|
|
||||||
values = item_to_form_values(None, domain)
|
|
||||||
body = render_item_editor(domain, values, f"/life-noc/admin/domain/{domain}/new", f"Créer un item dans {domain}", error)
|
|
||||||
return page_shell(f"Life-NOC Admin — nouveau item {domain}", body)
|
|
||||||
|
|
||||||
|
|
||||||
@app.post("/life-noc/admin/domain/{domain}/new")
|
|
||||||
def admin_new_item_submit(
|
|
||||||
domain: str,
|
|
||||||
name: str = Form(...),
|
|
||||||
date: str = Form(default=""),
|
|
||||||
title: str = Form(default=""),
|
|
||||||
summary: str = Form(default=""),
|
|
||||||
notes: str = Form(default=""),
|
|
||||||
instructions: str = Form(default=""),
|
|
||||||
notes_url: str = Form(default=""),
|
|
||||||
instructions_url: str = Form(default=""),
|
|
||||||
action_url: str = Form(default=""),
|
|
||||||
probe_type: str = Form(default=""),
|
|
||||||
probe_source_type: str = Form(default=""),
|
|
||||||
probe_inputs_file: str = Form(default=""),
|
|
||||||
probe_item_key: str = Form(default=""),
|
|
||||||
metric_unit: str = Form(default=""),
|
|
||||||
policy_on_error: str = Form(default=""),
|
|
||||||
unknown_lt: str = Form(default=""),
|
|
||||||
ok_gte: str = Form(default=""),
|
|
||||||
warning_gte: str = Form(default=""),
|
|
||||||
critical_gte: str = Form(default=""),
|
|
||||||
unknown_gte: str = Form(default=""),
|
|
||||||
ok_lt: str = Form(default=""),
|
|
||||||
warning_lt: str = Form(default=""),
|
|
||||||
critical_lt: str = Form(default=""),
|
|
||||||
ui_form_mode: str = Form(default=""),
|
|
||||||
ui_allow_complete: str = Form(default=""),
|
|
||||||
ui_allow_manual_edit: str = Form(default=""),
|
|
||||||
) -> RedirectResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
form_values = {
|
|
||||||
key: value
|
|
||||||
for key, value in locals().items()
|
|
||||||
if key not in {"domain"}
|
|
||||||
}
|
|
||||||
try:
|
|
||||||
item = normalize_item_payload(form_values)
|
|
||||||
upsert_item(domain, item, original_item_key=None)
|
|
||||||
except (DomainsError, DomainsConflictError, KeyError) as exc:
|
|
||||||
return RedirectResponse(url=f"/life-noc/admin/domain/{domain}/new?error={quote(str(exc))}", status_code=303)
|
|
||||||
return RedirectResponse(url=f"/life-noc/admin/item/{domain}/{item['name']}", status_code=303)
|
|
||||||
|
|
||||||
|
|
||||||
@app.get("/life-noc/admin/item/{domain}/{item_key}/edit", response_class=HTMLResponse)
|
|
||||||
def admin_edit_item_form(domain: str, item_key: str, error: str = "") -> HTMLResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
try:
|
|
||||||
item = get_domain_item(domain, item_key)
|
|
||||||
except KeyError:
|
|
||||||
raise HTTPException(status_code=404, detail="item introuvable")
|
|
||||||
values = item_to_form_values(item, domain)
|
|
||||||
body = render_item_editor(domain, values, f"/life-noc/admin/item/{domain}/{item_key}/edit", f"Modifier {item_key}", error)
|
|
||||||
return page_shell(f"Life-NOC Admin — modifier {item_key}", body)
|
|
||||||
|
|
||||||
|
|
||||||
@app.post("/life-noc/admin/item/{domain}/{item_key}/edit")
|
|
||||||
def admin_edit_item_submit(
|
|
||||||
domain: str,
|
|
||||||
item_key: str,
|
|
||||||
name: str = Form(...),
|
|
||||||
date: str = Form(default=""),
|
|
||||||
title: str = Form(default=""),
|
|
||||||
summary: str = Form(default=""),
|
|
||||||
notes: str = Form(default=""),
|
|
||||||
instructions: str = Form(default=""),
|
|
||||||
notes_url: str = Form(default=""),
|
|
||||||
instructions_url: str = Form(default=""),
|
|
||||||
action_url: str = Form(default=""),
|
|
||||||
probe_type: str = Form(default=""),
|
|
||||||
probe_source_type: str = Form(default=""),
|
|
||||||
probe_inputs_file: str = Form(default=""),
|
|
||||||
probe_item_key: str = Form(default=""),
|
|
||||||
metric_unit: str = Form(default=""),
|
|
||||||
policy_on_error: str = Form(default=""),
|
|
||||||
unknown_lt: str = Form(default=""),
|
|
||||||
ok_gte: str = Form(default=""),
|
|
||||||
warning_gte: str = Form(default=""),
|
|
||||||
critical_gte: str = Form(default=""),
|
|
||||||
unknown_gte: str = Form(default=""),
|
|
||||||
ok_lt: str = Form(default=""),
|
|
||||||
warning_lt: str = Form(default=""),
|
|
||||||
critical_lt: str = Form(default=""),
|
|
||||||
ui_form_mode: str = Form(default=""),
|
|
||||||
ui_allow_complete: str = Form(default=""),
|
|
||||||
ui_allow_manual_edit: str = Form(default=""),
|
|
||||||
) -> RedirectResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
try:
|
|
||||||
existing = get_domain_item(domain, item_key)
|
|
||||||
except KeyError:
|
|
||||||
raise HTTPException(status_code=404, detail="item introuvable")
|
|
||||||
|
|
||||||
form_values = {
|
|
||||||
key: value
|
|
||||||
for key, value in locals().items()
|
|
||||||
if key not in {"domain", "item_key", "existing"}
|
|
||||||
}
|
|
||||||
try:
|
|
||||||
item = normalize_item_payload(form_values, existing_item=existing)
|
|
||||||
upsert_item(domain, item, original_item_key=item_key)
|
|
||||||
except (DomainsError, DomainsConflictError, KeyError) as exc:
|
|
||||||
return RedirectResponse(url=f"/life-noc/admin/item/{domain}/{item_key}/edit?error={quote(str(exc))}", status_code=303)
|
|
||||||
return RedirectResponse(url=f"/life-noc/admin/item/{domain}/{item['name']}", status_code=303)
|
|
||||||
|
|
||||||
|
|
||||||
@app.post("/life-noc/admin/item/{domain}/{item_key}/delete")
|
|
||||||
def admin_delete_item(domain: str, item_key: str) -> RedirectResponse:
|
|
||||||
require_admin_enabled()
|
|
||||||
try:
|
|
||||||
delete_item(domain, item_key)
|
|
||||||
except (DomainsError, KeyError) as exc:
|
|
||||||
return RedirectResponse(url=f"/life-noc/admin/domain/{domain}?error={quote(str(exc))}", status_code=303)
|
|
||||||
return RedirectResponse(url=f"/life-noc/admin/domain/{domain}", status_code=303)
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue