mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-11-01 18:47:48 +00:00
Add equipments and topolgies endpoints
- add POST, PUT, DELETE on equipments - add POST, PUT, GET, DELETE on topogies - path-computation request body can now have equipment id and/or topology id instead of full data - activate embedded https of Flask while waiting for real trusted certificate - update readme - add request payload samples in yang directory - equipment data are encrypted with Fernet Signed-off-by: manuedelf <59697943+edelfour@users.noreply.github.com>
This commit is contained in:

committed by
EstherLerouzic

parent
396020eeb5
commit
0c2bf58080
@@ -12,21 +12,20 @@ import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
import werkzeug
|
||||
from flask import Flask
|
||||
from flask_injector import FlaskInjector
|
||||
from injector import singleton
|
||||
from werkzeug.exceptions import InternalServerError
|
||||
|
||||
import gnpy.core.exceptions as exceptions
|
||||
from gnpy.api import app
|
||||
from gnpy.api.exception.exception_handler import bad_request_handler, common_error_handler
|
||||
from gnpy.api.exception.topology_error import TopologyError
|
||||
from gnpy.api.service import config_service
|
||||
from gnpy.api.service.encryption_service import EncryptionService
|
||||
from gnpy.api.service.equipment_service import EquipmentService
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
from gnpy.api import app
|
||||
|
||||
|
||||
@app.route('/api/v1/status', methods=['GET'])
|
||||
def api_status():
|
||||
return {"version": "v1", "status": "ok"}, 200
|
||||
|
||||
|
||||
def _init_logger():
|
||||
handler = RotatingFileHandler('api.log', maxBytes=1024 * 1024, backupCount=5, encoding='utf-8')
|
||||
@@ -36,7 +35,7 @@ def _init_logger():
|
||||
"message)s")
|
||||
|
||||
|
||||
def _init_app():
|
||||
def _init_app(key):
|
||||
app.register_error_handler(KeyError, bad_request_handler)
|
||||
app.register_error_handler(TypeError, bad_request_handler)
|
||||
app.register_error_handler(ValueError, bad_request_handler)
|
||||
@@ -49,14 +48,29 @@ def _init_app():
|
||||
app.register_error_handler(exceptions.ParametersError, bad_request_handler)
|
||||
app.register_error_handler(AssertionError, bad_request_handler)
|
||||
app.register_error_handler(InternalServerError, common_error_handler)
|
||||
app.register_error_handler(TopologyError, bad_request_handler)
|
||||
for error_code in werkzeug.exceptions.default_exceptions:
|
||||
app.register_error_handler(error_code, common_error_handler)
|
||||
config = config_service.init_config()
|
||||
config.add_section('SECRET')
|
||||
config.set('SECRET', 'equipment', key)
|
||||
app.config['properties'] = config
|
||||
|
||||
|
||||
def _configure(binder):
|
||||
binder.bind(EquipmentService,
|
||||
to=EquipmentService(EncryptionService(app.config['properties'].get('SECRET', 'equipment'))),
|
||||
scope=singleton)
|
||||
app.config['properties'].pop('SECRET', None)
|
||||
|
||||
|
||||
def main():
|
||||
key = input('Enter encryption/decryption key: ')
|
||||
_init_logger()
|
||||
_init_app()
|
||||
app.run(host='0.0.0.0', port=8080)
|
||||
_init_app(key)
|
||||
FlaskInjector(app=app, modules=[_configure])
|
||||
|
||||
app.run(host='0.0.0.0', port=8080, ssl_context='adhoc')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Reference in New Issue
Block a user