aboutsummaryrefslogtreecommitdiffstats
path: root/src/python/netconf_server/netconf_rest_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/python/netconf_server/netconf_rest_server.py')
-rw-r--r--src/python/netconf_server/netconf_rest_server.py15
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'}),