10 KiB
Modèles actuels du module d'intégration UniFi
Ce document décrit les modèles de données actuellement implémentés dans le module d'intégration UniFi pour Odoo.
Structure générale
Les modèles du module sont organisés de manière hiérarchique, avec le modèle udm.site comme entité centrale. Tous les autres modèles sont liés à un site spécifique et sont supprimés automatiquement lorsque le site est supprimé (via le mécanisme ondelete='cascade').
Modèles principaux
1. udm.site
Fichier : udm_site.py
Description : Représente un site UniFi géré par un ou plusieurs contrôleurs UniFi.
Champs principaux :
name(Char) : Nom du sitesite_id(Char) : Identifiant du site dans UniFi (généralement 'default')description(Text) : Description du sitehost(Char) : Adresse IP ou nom d'hôte du contrôleurport(Integer) : Port du contrôleur (par défaut 443)username(Char) : Nom d'utilisateur pour l'authentificationpassword(Char) : Mot de passe pour l'authentification (stocké de manière sécurisée)verify_ssl(Boolean) : Indique si la vérification SSL doit être effectuéelast_sync(Datetime) : Date et heure de la dernière synchronisationsync_interval(Integer) : Intervalle de synchronisation en minutes
Relations :
network_ids(One2many) : Réseaux associés au sitedevice_ids(One2many) : Appareils associés au siteuser_ids(One2many) : Utilisateurs associés au sitevlan_ids(One2many) : VLANs associés au sitefirewall_rule_ids(One2many) : Règles de pare-feu associées au siteport_forward_ids(One2many) : Règles de redirection de port associées au sitesystem_info_id(One2many) : Informations système associées au site
Fonctionnalités :
- Authentification au contrôleur UniFi
- Récupération et synchronisation des données
- Gestion des sessions et des cookies
- Journalisation des activités et des erreurs
2. udm.device
Fichier : udm_device.py
Description : Représente un appareil réseau dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel l'appareil appartientname(Char) : Nom ou hostname de l'appareilmac_address(Char) : Adresse MAC de l'appareilip_address(Char) : Adresse IP actuelledevice_type(Selection) : Type d'appareil (point d'accès, switch, passerelle, etc.)model(Char) : Modèle de l'appareilfirmware(Char) : Version du firmwarelast_seen(Datetime) : Dernière fois que l'appareil a été vu en ligneuptime(Integer) : Temps de fonctionnement en secondesstatus(Selection) : État de l'appareil (en ligne, hors ligne, provisionnement)adopted(Boolean) : Indique si l'appareil a été adopté par le contrôleur
3. udm.network
Fichier : udm_network.py
Description : Représente un réseau dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel le réseau appartientname(Char) : Nom du réseaupurpose(Selection) : Objectif du réseau (entreprise, invité, IoT, autre)subnet(Char) : Sous-réseau au format CIDRvlan_id_number(Integer) : Identifiant VLANvlan_id(Many2one) : Relation avec le modèle VLANdhcp_enabled(Boolean) : Indique si DHCP est activédhcp_start(Char) : Adresse de début de la plage DHCPdhcp_stop(Char) : Adresse de fin de la plage DHCPdhcp_lease_time(Integer) : Durée du bail DHCP en secondesdomain_name(Char) : Nom de domaine pour le réseaudns_servers(Char) : Serveurs DNS (séparés par des virgules)enabled(Boolean) : Indique si le réseau est activé
4. udm.user
Fichier : udm_user.py
Description : Représente un utilisateur dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel l'utilisateur appartientname(Char) : Nom complet de l'utilisateuremail(Char) : Adresse email de l'utilisateurmac_address(Char) : Adresse MAC de l'appareilip_address(Char) : Adresse IP actuellenetwork_id(Many2one) : Réseau auquel l'utilisateur est connectédevice_id(Many2one) : Appareil associé à l'utilisateurrole(Selection) : Rôle de l'utilisateur (admin, opérateur, visualiseur)blocked(Boolean) : Indique si l'utilisateur est bloquélast_seen(Datetime) : Dernière fois que l'utilisateur a été vu en ligneupload_usage(Float) : Utilisation de la bande passante en uploaddownload_usage(Float) : Utilisation de la bande passante en downloadtotal_usage(Float) : Utilisation totale de la bande passante
5. udm.vlan
Fichier : udm_vlan.py
Description : Représente un VLAN dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel le VLAN appartientname(Char) : Nom du VLANvlan_id(Integer) : Identifiant du VLANdescription(Text) : Description du VLANenabled(Boolean) : Indique si le VLAN est activénetwork_ids(One2many) : Réseaux associés à ce VLAN
6. udm.firewall.rule
Fichier : udm_firewall.py
Description : Représente une règle de pare-feu dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel la règle appartientname(Char) : Nom de la règledescription(Text) : Description détaillée de l'objectif de la règleenabled(Boolean) : Indique si la règle est activesequence(Integer) : Ordre dans lequel les règles sont évaluéesaction(Selection) : Action à effectuer (accepter, rejeter, abandonner)protocol(Selection) : Protocole concerné (TCP, UDP, ICMP, tous)source_type(Selection) : Type de source (adresse, réseau, groupe)source_address(Char) : Adresse sourcesource_port(Char) : Port sourcedestination_type(Selection) : Type de destination (adresse, réseau, groupe)destination_address(Char) : Adresse de destinationdestination_port(Char) : Port de destinationdirection(Selection) : Direction du trafic (entrant, sortant, les deux)logging(Boolean) : Indique si la journalisation est activée pour cette règle
Modèles de configuration
7. udm.port_forward
Fichier : udm_port_forward.py
Description : Représente une règle de redirection de port dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel la règle appartientname(Char) : Nom de la règleenabled(Boolean) : Indique si la règle est activesource_port(Integer) : Port sourcedestination_port(Integer) : Port de destinationforward_ip(Char) : Adresse IP de destinationprotocol(Selection) : Protocole (TCP, UDP, TCP et UDP)log(Boolean) : Indique si la journalisation est activée
8. udm.system_info
Fichier : udm_system_info.py
Description : Représente les informations système du contrôleur UniFi.
Champs principaux :
site_id(Many2one) : Site auquel les informations appartiennentversion(Char) : Version du logicielhardware_model(Char) : Modèle matérielhostname(Char) : Nom d'hôte du systèmeuptime(Integer) : Temps de fonctionnement en secondescpu_usage(Float) : Utilisation du CPU en pourcentagememory_usage(Float) : Utilisation de la mémoire en pourcentagedisk_usage(Float) : Utilisation du disque en pourcentagetemperature(Float) : Température du système
9. udm.dns et udm.dns_config
Fichiers : udm_dns.py et udm_dns_config.py
Description : Représentent les configurations DNS dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel la configuration appartienthostname(Char) : Nom d'hôteip_address(Char) : Adresse IP associéedescription(Text) : Description de l'entrée DNSenabled(Boolean) : Indique si l'entrée est active
10. udm.routing et udm.routing_config
Fichiers : udm_routing.py et udm_routing_config.py
Description : Représentent les configurations de routage dans le système UniFi.
Champs principaux :
site_id(Many2one) : Site auquel la configuration appartientname(Char) : Nom de la routedestination(Char) : Destination de la routegateway(Char) : Passerelleinterface(Char) : Interface réseauenabled(Boolean) : Indique si la route est active
Modèles de tableau de bord
11. udm.dashboard_metric, udm.dashboard_stat, udm.dashboard_data_point
Fichiers : udm_dashboard_metric.py, udm_dashboard_stat.py, udm_dashboard_data_point.py
Description : Représentent les métriques et statistiques pour le tableau de bord.
Champs principaux :
site_id(Many2one) : Site auquel les données appartiennentname(Char) : Nom de la métriquevalue(Float) : Valeur de la métriqueunit(Char) : Unité de mesuretimestamp(Datetime) : Horodatage de la mesurecategory(Selection) : Catégorie de la métrique (réseau, système, sécurité)
Modèle de configuration du site
12. udm.site_configuration
Fichier : udm_site_configuration.py
Description : Représente la configuration d'un site UniFi.
Champs principaux :
site_id(Many2one) : Site auquel la configuration appartientconfig_type(Selection) : Type de configurationconfig_data(Text) : Données de configuration au format JSONversion(Char) : Version de la configurationtimestamp(Datetime) : Horodatage de la configuration
Relations entre les modèles
Le modèle udm.site est au centre de l'architecture et toutes les autres entités lui sont liées. Les relations principales sont :
- Site → Réseaux : Un site peut avoir plusieurs réseaux
- Site → Appareils : Un site peut avoir plusieurs appareils
- Site → Utilisateurs : Un site peut avoir plusieurs utilisateurs
- Site → VLANs : Un site peut avoir plusieurs VLANs
- Réseau → VLAN : Un réseau peut être associé à un VLAN
- Utilisateur → Réseau : Un utilisateur peut être connecté à un réseau
- Utilisateur → Appareil : Un utilisateur peut être associé à un appareil
Cette architecture permet une gestion complète et cohérente des environnements UniFi dans Odoo, avec une séparation claire des différentes composantes du système.