start / main.py
tmpexustreich's picture
Update main.py
c6d0ab0 verified
Raw
History Blame Contribute Delete
1.46 kB
import os
from fastapi import FastAPI
from lightning_sdk import Studio
import logging
from io import StringIO
app = FastAPI()
log_stream = StringIO()
logging.basicConfig(stream=log_stream, level=logging.INFO)
@app.post("/start-studio/")
def start_studio(userid: str, apikey: str, name: str, teamspace: str, user: str):
try:
os.environ["LIGHTNING_USER_ID"] = userid
os.environ["LIGHTNING_API_KEY"] = apikey
s = Studio(name=name, teamspace=teamspace, user=user)
s.start()
log_content = log_stream.getvalue().strip()
print(log_content)
os.environ.pop("LIGHTNING_USER_ID", None)
os.environ.pop("LIGHTNING_API_KEY", None)
return {"status": "success", "message": log_content}
except Exception as e:
return {"status": "error", "message": str(e)}
@app.post("/stop-studio/")
def stop_studio(userid: str, apikey: str, name: str, teamspace: str, user: str):
try:
os.environ["LIGHTNING_USER_ID"] = userid
os.environ["LIGHTNING_API_KEY"] = apikey
s = Studio(name=name, teamspace=teamspace, user=user)
s.stop()
log_content = log_stream.getvalue().strip()
print(log_content)
os.environ.pop("LIGHTNING_USER_ID", None)
os.environ.pop("LIGHTNING_API_KEY", None)
return {"status": "success", "message": log_content}
except Exception as e:
return {"status": "error", "message": str(e)}