Remove hardcoded Yeastar credentials
This commit is contained in:
parent
938b79a67e
commit
fc10d2ef8b
3 changed files with 40 additions and 11 deletions
|
|
@ -9,3 +9,10 @@ MARIADB_USER=gmao
|
||||||
MARIADB_PASSWORD=CHANGE_ME
|
MARIADB_PASSWORD=CHANGE_ME
|
||||||
DOCKER_GMAO_WORKDIR=/app
|
DOCKER_GMAO_WORKDIR=/app
|
||||||
DOCKER_GMAO_ENVFILE=/app/.env.docker
|
DOCKER_GMAO_ENVFILE=/app/.env.docker
|
||||||
|
YEASTAR_DND_ENABLED=0
|
||||||
|
YEASTAR_BASE_URL=https://votre-yeastar.example
|
||||||
|
YEASTAR_USERNAME=CHANGE_ME
|
||||||
|
YEASTAR_PASSWORD=CHANGE_ME
|
||||||
|
YEASTAR_DND_REFRESH_SECONDS=2
|
||||||
|
YEASTAR_DND_RESET_DELAY_SECONDS=3
|
||||||
|
YEASTAR_DND_EXCLUDED_EXTENSIONS=
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,15 @@ DATABASE_URL=mysql+pymysql://gmao:${MARIADB_PASSWORD}@mariadb/gmao_db?charset=ut
|
||||||
# Dossier des uploads (chemin absolu)
|
# Dossier des uploads (chemin absolu)
|
||||||
UPLOAD_FOLDER=/app/app_new/uploads
|
UPLOAD_FOLDER=/app/app_new/uploads
|
||||||
|
|
||||||
|
# Watchdog Yeastar DND (optionnel, desactive par defaut)
|
||||||
|
YEASTAR_DND_ENABLED=0
|
||||||
|
YEASTAR_BASE_URL=https://votre-yeastar.example
|
||||||
|
YEASTAR_USERNAME=CHANGE_ME
|
||||||
|
YEASTAR_PASSWORD=CHANGE_ME
|
||||||
|
YEASTAR_DND_REFRESH_SECONDS=2
|
||||||
|
YEASTAR_DND_RESET_DELAY_SECONDS=3
|
||||||
|
YEASTAR_DND_EXCLUDED_EXTENSIONS=
|
||||||
|
|
||||||
# Variables optionnelles pour Docker Compose
|
# Variables optionnelles pour Docker Compose
|
||||||
MARIADB_ROOT_PASSWORD=CHANGE_ME
|
MARIADB_ROOT_PASSWORD=CHANGE_ME
|
||||||
MARIADB_DATABASE=gmao_db
|
MARIADB_DATABASE=gmao_db
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,7 @@
|
||||||
"""Watchdog DND P520 - Surveillance continue - version autonome.
|
"""Watchdog DND P520 - Surveillance continue - version autonome."""
|
||||||
|
|
||||||
CONFIGURATION MANUELLE EN CLAIR (a remplacer):
|
|
||||||
YEASTAR_USERNAME = "admin"
|
|
||||||
YEASTAR_PASSWORD = "motdepasse"
|
|
||||||
"""
|
|
||||||
YEASTAR_USERNAME = '116'
|
|
||||||
YEASTAR_PASSWORD = '***REMOVED-YEASTAR-CREDENTIAL***'
|
|
||||||
import base64
|
import base64
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
|
|
@ -103,8 +97,24 @@ class YeastarClient:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def load_config():
|
def load_config():
|
||||||
"""Charge la config en clair."""
|
"""Charge la configuration depuis l'environnement, sans secret dans le code."""
|
||||||
return {'enabled': True, 'refresh_seconds': 2, 'reset_delay_seconds': 3, 'excluded_extensions': [], 'base_url': 'https://telclg.noellet.ovh', 'username': YEASTAR_USERNAME, 'password': YEASTAR_PASSWORD}
|
base_url = os.environ.get('YEASTAR_BASE_URL', '').strip()
|
||||||
|
username = os.environ.get('YEASTAR_USERNAME', '').strip()
|
||||||
|
password = os.environ.get('YEASTAR_PASSWORD', '')
|
||||||
|
explicitly_enabled = os.environ.get('YEASTAR_DND_ENABLED', '0') == '1'
|
||||||
|
return {
|
||||||
|
'enabled': explicitly_enabled and bool(base_url and username and password),
|
||||||
|
'refresh_seconds': int(os.environ.get('YEASTAR_DND_REFRESH_SECONDS', '2')),
|
||||||
|
'reset_delay_seconds': int(os.environ.get('YEASTAR_DND_RESET_DELAY_SECONDS', '3')),
|
||||||
|
'excluded_extensions': [
|
||||||
|
value.strip()
|
||||||
|
for value in os.environ.get('YEASTAR_DND_EXCLUDED_EXTENSIONS', '').split(',')
|
||||||
|
if value.strip()
|
||||||
|
],
|
||||||
|
'base_url': base_url,
|
||||||
|
'username': username,
|
||||||
|
'password': password,
|
||||||
|
}
|
||||||
|
|
||||||
def log_dnd(message, level='info'):
|
def log_dnd(message, level='info'):
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
@ -123,6 +133,9 @@ def run_watchdog():
|
||||||
"""Boucle principale du watchdog."""
|
"""Boucle principale du watchdog."""
|
||||||
log_dnd('[DND] Demarrage watchdog')
|
log_dnd('[DND] Demarrage watchdog')
|
||||||
config = load_config()
|
config = load_config()
|
||||||
|
if not config['enabled']:
|
||||||
|
log_dnd('[DND] Watchdog desactive ou configuration Yeastar incomplete')
|
||||||
|
return True
|
||||||
log_dnd(f"[DND] Config: enabled={config.get('enabled')}, url={config.get('base_url')}, user={config.get('username')}")
|
log_dnd(f"[DND] Config: enabled={config.get('enabled')}, url={config.get('base_url')}, user={config.get('username')}")
|
||||||
client = YeastarClient(config['base_url'], config['username'], config['password'])
|
client = YeastarClient(config['base_url'], config['username'], config['password'])
|
||||||
result = client.login()
|
result = client.login()
|
||||||
|
|
@ -201,4 +214,4 @@ def run_watchdog():
|
||||||
finally:
|
finally:
|
||||||
client.logout()
|
client.logout()
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
run_watchdog()
|
run_watchdog()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue