2023-02-21 14:21:53 +08:00
|
|
|
from typing import Optional, List
|
|
|
|
|
|
|
|
from fastapi import APIRouter, status, Depends
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from starlette.responses import JSONResponse
|
2023-02-22 17:19:27 +08:00
|
|
|
import os, io, sys, platform, shutil, time, subprocess, json, datetime
|
2023-02-21 14:21:53 +08:00
|
|
|
|
|
|
|
from api.model.app import App
|
|
|
|
from api.service import manage
|
2023-02-22 17:19:27 +08:00
|
|
|
from api.utils import shell_execute
|
2023-02-21 14:21:53 +08:00
|
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
2023-02-22 17:19:27 +08:00
|
|
|
@router.get("")
|
|
|
|
def list_my_apps():
|
|
|
|
list = manage.get_my_app()
|
|
|
|
return JSONResponse(content=list)
|
2023-02-21 14:21:53 +08:00
|
|
|
|
2023-02-22 17:43:32 +08:00
|
|
|
@router.get("/install")
|
2023-03-14 11:52:26 +08:00
|
|
|
def install_app(app_name: Optional[str] = None, customer_app_name: Optional[str] = None, app_version: Optional[str] = None):
|
|
|
|
ret = manage.install_app(app_name, customer_app_name, app_version)
|
2023-02-23 16:19:55 +08:00
|
|
|
return JSONResponse(content=ret)
|
2023-02-22 17:43:09 +08:00
|
|
|
|
2023-03-09 10:29:11 +08:00
|
|
|
@router.get("/process")
|
|
|
|
def install_app_process(app_name: Optional[str] = None):
|
|
|
|
ret = manage.install_app_process(app_name)
|
|
|
|
return JSONResponse(content=ret)
|
|
|
|
|
2023-02-22 17:19:27 +08:00
|
|
|
@router.get("/start")
|
|
|
|
def start_app(app_name: Optional[str] = None):
|
2023-02-28 17:44:04 +08:00
|
|
|
ret = manage.start_app(app_name)
|
|
|
|
return JSONResponse(content=ret)
|
2023-02-25 11:37:39 +08:00
|
|
|
|
|
|
|
@router.get("/stop")
|
|
|
|
def stop_app(app_name: Optional[str] = None):
|
2023-02-28 17:44:04 +08:00
|
|
|
ret = manage.stop_app(app_name)
|
|
|
|
return JSONResponse(content=ret)
|
2023-02-25 11:37:39 +08:00
|
|
|
|
|
|
|
@router.get("/restart")
|
|
|
|
def restart_app(app_name: Optional[str] = None):
|
2023-02-28 17:44:04 +08:00
|
|
|
ret = manage.restart(app_name)
|
|
|
|
return JSONResponse(content=ret)
|
2023-02-25 11:37:39 +08:00
|
|
|
|
|
|
|
@router.get("/delete")
|
|
|
|
def delete_app(app_name: Optional[str] = None):
|
2023-02-28 17:44:04 +08:00
|
|
|
ret = manage.delete_app(app_name)
|
|
|
|
return JSONResponse(content=ret)
|