diff options
Diffstat (limited to 'src/python/netconf_server/netconf_rest_server.py')
-rw-r--r-- | src/python/netconf_server/netconf_rest_server.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/python/netconf_server/netconf_rest_server.py b/src/python/netconf_server/netconf_rest_server.py index 2c44029..dce4f82 100644 --- a/src/python/netconf_server/netconf_rest_server.py +++ b/src/python/netconf_server/netconf_rest_server.py @@ -19,19 +19,21 @@ ### import logging as sys_logging -from flask import Flask, logging, make_response, Response +from flask import Flask, logging, make_response, Response, request +from netconf_server.sysrepo_configuration.sysrepo_configuration_manager import SysrepoConfigurationManager class NetconfRestServer: _rest_server: Flask = Flask("server") - sys_logging.basicConfig(level=sys_logging.DEBUG) logger = logging.create_logger(_rest_server) + _configuration_manager: SysrepoConfigurationManager def __init__(self, host='0.0.0.0', port=6555): self._host = host self._port = port - def start(self): + def start(self, configuration_manager: SysrepoConfigurationManager): + NetconfRestServer._configuration_manager = configuration_manager Flask.run( NetconfRestServer._rest_server, host=self._host, @@ -44,6 +46,13 @@ class NetconfRestServer: return "UP" @staticmethod + @_rest_server.route("/change_config/<path:module_name>", methods=['POST']) + def __change_config(module_name): + config_data = request.data.decode("utf-8") + NetconfRestServer._configuration_manager.change_configuration(config_data, module_name) + return NetconfRestServer.__create_http_response(202, "Accepted") + + @staticmethod def __create_http_response(code, message): return make_response( Response(message, headers={'Content-Type': 'application/json'}), |