317 lines
8 KiB
Markdown
317 lines
8 KiB
Markdown
# Relations entre les modèles du module d'intégration UniFi
|
|
|
|
Ce document présente visuellement les relations entre les différents modèles du module d'intégration UniFi.
|
|
|
|
## Diagramme de relations principal
|
|
|
|
```
|
|
+-------------------+
|
|
| |
|
|
| udm.site |<-------------------+
|
|
| | |
|
|
+--------+----------+ |
|
|
| |
|
|
| |
|
|
v |
|
|
+--------+---------+ +---------------+--------------+
|
|
| | | |
|
|
| udm.auth.session | | udm.site.import.wizard |
|
|
| | | (TransientModel) |
|
|
+------------------+ | |
|
|
+---------------+--------------+
|
|
|
|
|
|
|
|
v
|
|
+---------------+--------------+
|
|
| |
|
|
| udm.site.discovery |
|
|
| (TransientModel) |
|
|
| |
|
|
+------------------------------+
|
|
```
|
|
|
|
## Hiérarchie des modèles avec le site comme entité centrale
|
|
|
|
```
|
|
+-------------------+
|
|
| |
|
|
| udm.site |
|
|
| |
|
|
+--+------+------+--+
|
|
| | |
|
|
| | |
|
|
| | |
|
|
| | |
|
|
v v v
|
|
+---------------+ +------------------+ +----------------+ +----------------+
|
|
| | | | | | | |
|
|
| udm.device | | udm.network | | udm.vlan | | udm.user |
|
|
| | | | | | | |
|
|
+---------------+ +------------------+ +----------------+ +----------------+
|
|
|
|
|
|
|
|
v
|
|
+----------+---------+
|
|
| |
|
|
| udm.firewall.rule |
|
|
| |
|
|
+--------------------+
|
|
```
|
|
|
|
## Modèles de support et leur relation avec udm.site
|
|
|
|
```
|
|
+-------------------+
|
|
| |
|
|
| udm.site |
|
|
| |
|
|
+--+------+------+--+
|
|
| | |
|
|
| | |
|
|
v v v
|
|
+--+------+ +---+----+ +---+----+
|
|
| | | | | |
|
|
| udm.api. | | udm. | | udm. |
|
|
| config | | api.log| | sync. |
|
|
| | | | | job |
|
|
+----------+ +--------+ +--------+
|
|
```
|
|
|
|
## Détail des relations entre les modèles principaux
|
|
|
|
```
|
|
+-------------------+
|
|
| udm.site |
|
|
|-------------------|
|
|
| name |
|
|
| api_type |<---+
|
|
| site_id | |
|
|
| ... | |
|
|
+-------------------+ |
|
|
^ |
|
|
| |
|
|
| |
|
|
+-------+-------+ |
|
|
| udm.network | |
|
|
|----------------| |
|
|
| site_id +------+
|
|
| name |
|
|
| subnet |
|
|
| ... |
|
|
+----------------+
|
|
^
|
|
|
|
|
|
|
|
+-------+-------+
|
|
| udm.device |
|
|
|----------------|
|
|
| site_id |
|
|
| network_id +------+
|
|
| name | |
|
|
| mac_address | |
|
|
| ... | |
|
|
+----------------+ |
|
|
^ |
|
|
| |
|
|
| |
|
|
+-------+-------+ |
|
|
| udm.user | |
|
|
|----------------| |
|
|
| site_id | |
|
|
| network_id +------+
|
|
| name |
|
|
| email |
|
|
| ... |
|
|
+----------------+
|
|
```
|
|
|
|
## Relations spécifiques à l'authentification
|
|
|
|
```
|
|
+-------------------+
|
|
| udm.site |
|
|
|-------------------|
|
|
| api_type |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+ +---------------+
|
|
| udm.auth.session | | udm.mfa |
|
|
|------------------| |---------------|
|
|
| site_id | | site_id |
|
|
| auth_type | | mfa_type |
|
|
| token | | mfa_code |
|
|
| expiry | | ... |
|
|
| ... | | |
|
|
+------------------+ +---------------+
|
|
```
|
|
|
|
## Modèles spécifiques à chaque type d'API
|
|
|
|
### API Site Manager (distante)
|
|
|
|
```
|
|
+-------------------+
|
|
| udm.site |
|
|
|-------------------|
|
|
| api_type='site_manager' |
|
|
| api_key |
|
|
| mfa_enabled |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.device |
|
|
|------------------|
|
|
| site_id |
|
|
| cloud_device_id |
|
|
| ... |
|
|
+------------------+
|
|
|
|
+-------------------+
|
|
| udm.site |
|
|
|-------------------|
|
|
| api_type='site_manager' |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.network |
|
|
|------------------|
|
|
| site_id |
|
|
| cloud_network_id |
|
|
| ... |
|
|
+------------------+
|
|
```
|
|
|
|
### API Controller (locale)
|
|
|
|
```
|
|
+-------------------+
|
|
| udm.site |
|
|
|-------------------|
|
|
| api_type='controller' |
|
|
| host |
|
|
| port |
|
|
| username |
|
|
| password |
|
|
| controller_type |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.device |
|
|
|------------------|
|
|
| site_id |
|
|
| device_id |
|
|
| adopted |
|
|
| ... |
|
|
+------------------+
|
|
|
|
+-------------------+
|
|
| udm.site |
|
|
|-------------------|
|
|
| api_type='controller' |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.network |
|
|
|------------------|
|
|
| site_id |
|
|
| network_id |
|
|
| ... |
|
|
+------------------+
|
|
```
|
|
|
|
## Flux de données pour la synchronisation
|
|
|
|
```
|
|
+-------------------+
|
|
| udm.site |
|
|
|-------------------|
|
|
| api_type |
|
|
| last_sync |
|
|
| sync_interval |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.sync.job |
|
|
|------------------|
|
|
| site_id |
|
|
| start_time |
|
|
| end_time |
|
|
| state |
|
|
| sync_type |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.api.log |
|
|
|------------------|
|
|
| site_id |
|
|
| sync_job_id |
|
|
| endpoint |
|
|
| method |
|
|
| status_code |
|
|
| ... |
|
|
+------------------+
|
|
```
|
|
|
|
## Assistant d'importation de site
|
|
|
|
```
|
|
+-------------------+
|
|
| udm.site.import. |
|
|
| wizard |
|
|
|-------------------|
|
|
| state |
|
|
| api_type |
|
|
| ... |
|
|
+--------+----------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.site.discovery|
|
|
|------------------|
|
|
| wizard_id |
|
|
| site_name |
|
|
| site_id |
|
|
| selected |
|
|
| ... |
|
|
+------------------+
|
|
|
|
|
|
|
|
v
|
|
+--------+---------+
|
|
| udm.site |
|
|
|------------------|
|
|
| (Créé par |
|
|
| l'assistant) |
|
|
+------------------+
|
|
```
|
|
|
|
## Légende
|
|
|
|
- Les flèches indiquent les relations entre les modèles
|
|
- Les relations Many2one sont représentées par des flèches simples
|
|
- Les relations One2many sont implicites dans la direction opposée aux flèches Many2one
|
|
- Les modèles TransientModel sont utilisés pour les assistants et ne sont pas persistants
|
|
|
|
Cette représentation visuelle montre comment les différents modèles sont liés entre eux, avec le modèle `udm.site` comme entité centrale autour de laquelle s'articulent tous les autres modèles.
|