configuration de la socket AF_UNIX en tant que client pour la communication avec le process KineIntercom
This commit is contained in:
4
run.py
4
run.py
@@ -5,6 +5,6 @@
|
||||
|
||||
from src import app
|
||||
print("Launch Flask KineInterCOM Configurateur Backend ...")
|
||||
application = app.create_app()
|
||||
if application:
|
||||
ret, application = app.create_app()
|
||||
if application and ret:
|
||||
application.run(host="0.0.0.0", port=6000, use_reloader=False)
|
||||
|
||||
21
src/app.py
21
src/app.py
@@ -23,6 +23,7 @@ from src.account import account
|
||||
from src.params import params
|
||||
from src.schedule import schedule
|
||||
from src.log import log as logs
|
||||
from src.manager import sock
|
||||
from src.infos import info
|
||||
|
||||
#########################################################
|
||||
@@ -37,6 +38,7 @@ def create_app(config=None, app_name=None):
|
||||
:param app_name:
|
||||
application name
|
||||
'''
|
||||
ret = True
|
||||
if app_name is None:
|
||||
app_name = DefaultConfig.PROJECT
|
||||
|
||||
@@ -51,8 +53,9 @@ def create_app(config=None, app_name=None):
|
||||
|
||||
configure_log(app)
|
||||
configure_blueprints(app)
|
||||
ret = configure_connexion(app)
|
||||
|
||||
return app
|
||||
return ret, app
|
||||
|
||||
def configure_app(app=None, config=None):
|
||||
''' configure the application with configuration file and/or object
|
||||
@@ -136,3 +139,19 @@ def configure_blueprints(app=None):
|
||||
'''
|
||||
for bp in [auth, logs, account, params, schedule, info]:
|
||||
app.register_blueprint(bp)
|
||||
|
||||
def configure_connexion(app=None):
|
||||
''' Confgure AF_UNIX connexion with KineIntercom
|
||||
process
|
||||
'''
|
||||
ret = False
|
||||
try:
|
||||
sock.connect(app.config['UNIX_ADDR'])
|
||||
ret = True
|
||||
except TimeoutError as e:
|
||||
app.logger.error("Erreur de connexion avec le processus KineIntercom")
|
||||
ret = False
|
||||
except ConnectionRefusedError as e:
|
||||
app.logger.error("Connexion refusée avec le processus KineIntercom")
|
||||
ret = False
|
||||
return ret
|
||||
|
||||
@@ -42,6 +42,7 @@ class BaseConfig(object):
|
||||
MAX_CONTENT_LENGTH = 200 * 1024 * 1024 # 100 megabytes
|
||||
|
||||
DB_PATH = os.path.join(os.getcwd(), 'db.json')
|
||||
UNIX_ADDR = "/tmp/uds_socket"
|
||||
|
||||
class DefaultConfig(BaseConfig):
|
||||
DEBUG = True
|
||||
|
||||
21
src/manager.py
Normal file
21
src/manager.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
# @author : vincent.benoit@scle.fr
|
||||
# @brief : Client UNIX Socket Manager
|
||||
|
||||
#########################################################
|
||||
# Importation de modules externes #
|
||||
|
||||
import sys, re, os
|
||||
import socket
|
||||
|
||||
#########################################################
|
||||
# Corps principal du programme #
|
||||
|
||||
#########################################################
|
||||
# Decorators #
|
||||
|
||||
#########################################################
|
||||
# Instantiation #
|
||||
|
||||
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
@@ -24,6 +24,8 @@ import shutil
|
||||
import hashlib
|
||||
from werkzeug.exceptions import HTTPException
|
||||
|
||||
from src.manager import sock
|
||||
|
||||
#########################################################
|
||||
# Class et Methods #
|
||||
|
||||
@@ -133,6 +135,15 @@ def update_params():
|
||||
|
||||
with open(current_app.config['DB_PATH'], 'w') as f:
|
||||
json.dump(data, f)
|
||||
|
||||
try:
|
||||
# send order to KineIntercom process
|
||||
sock.send(b"RELOAD_DB\n")
|
||||
except:
|
||||
current_app.logger.error("Erreur d'envoi de l'ordre au processus KineIntercom")
|
||||
abort(status.HTTP_406_NOT_ACCEPTABLE, description="Erreur d'envoi de l'ordre au processus")
|
||||
|
||||
content = {'message':'maj parameters successful!'}
|
||||
|
||||
return content, status.HTTP_200_OK
|
||||
|
||||
|
||||
Reference in New Issue
Block a user