Project

General

Profile

Feature #46501

Feature #40907: mgr/dashboard: REST API improvements

mgr/dashboard: evaluate FastAPI

Added by Ernesto Puerta about 2 years ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
General - Back-end
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

This recent framework, FastAPI, could well suit all the needs we have for Ceph API:

  • Typed (Python hints from Pydantic)
  • OpenAPI spec generation from Python type hints.
  • Lightweight.
  • Fully asynchronous (ASGI), vs. Synchronous Cherrypy (WSGI). It nativelly supports Websockets too.
  • Similar syntax to our custom implementation (Flask-like).
Cons:
  • Most distros don't package it or its major dependencies (Pydantic, Starlette).
    • A containerized deployment could work, but that would first require to change the way of interacting between ceph-mgr and mgr modules (containers IPC/shared memory?).

Related issues

Related to Dashboard - Feature #46423: mgr/dashboard: Python runtime typechecking framework New

History

#1 Updated by Ernesto Puerta about 2 years ago

  • Related to Feature #46423: mgr/dashboard: Python runtime typechecking framework added

#2 Updated by Ernesto Puerta about 2 years ago

  • Parent task set to #40907

#3 Updated by Ernesto Puerta over 1 year ago

  • Project changed from mgr to Dashboard
  • Category changed from 146 to General - Back-end

Also available in: Atom PDF