diff options
author | John Estabrook <jestabro@vyos.io> | 2025-05-28 17:12:03 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-28 17:12:03 -0500 |
commit | e604e68a5a77718a25b60737dcb9699b84c8e34b (patch) | |
tree | 29dd08d4d3b65c0338b3183c79c42632670b5893 /src | |
parent | a81ab0c6808080f521bfb673c61f90a744c625ff (diff) | |
parent | 7b3ce52e3babdf3a17910ce5322e571d5c91bb38 (diff) | |
download | vyos-1x-e604e68a5a77718a25b60737dcb9699b84c8e34b.tar.gz vyos-1x-e604e68a5a77718a25b60737dcb9699b84c8e34b.zip |
Merge pull request #4529 from IDerr/current
T7395: Add support for renew in REST Server
Diffstat (limited to 'src')
-rw-r--r-- | src/services/api/rest/models.py | 14 | ||||
-rw-r--r-- | src/services/api/rest/routers.py | 21 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/services/api/rest/models.py b/src/services/api/rest/models.py index dda50010f..da60e1220 100644 --- a/src/services/api/rest/models.py +++ b/src/services/api/rest/models.py @@ -251,6 +251,20 @@ class RebootModel(ApiModel): } +class RenewModel(ApiModel): + op: StrictStr + path: List[StrictStr] + + class Config: + json_schema_extra = { + 'example': { + 'key': 'id_key', + 'op': 'renew', + 'path': ['op', 'mode', 'path'], + } + } + + class ResetModel(ApiModel): op: StrictStr path: List[StrictStr] diff --git a/src/services/api/rest/routers.py b/src/services/api/rest/routers.py index e52c77fda..d3df91ef5 100644 --- a/src/services/api/rest/routers.py +++ b/src/services/api/rest/routers.py @@ -66,6 +66,7 @@ from .models import GenerateModel from .models import ShowModel from .models import RebootModel from .models import ResetModel +from .models import RenewModel from .models import ImportPkiModel from .models import PoweroffModel from .models import TracerouteModel @@ -657,6 +658,26 @@ def reboot_op(data: RebootModel): return success(res) +@router.post('/renew') +def renew_op(data: RenewModel): + state = SessionState() + session = state.session + + op = data.op + path = data.path + + try: + if op == 'renew': + res = session.renew(path) + else: + return error(400, f"'{op}' is not a valid operation") + except ConfigSessionError as e: + return error(400, str(e)) + except Exception: + LOG.critical(traceback.format_exc()) + return error(500, 'An internal error occured. Check the logs for details.') + + return success(res) @router.post('/reset') def reset_op(data: ResetModel): |