Commit 2bce9130 authored by Yakubov, Sergey's avatar Yakubov, Sergey
Browse files

added logging, use filename, not folder for output path

parent 31c954a6
Loading
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -58,9 +58,8 @@ class FilesysBroker(RemoteDataBroker):

    def download(self, data: DownloadData) -> None:
        user_info = self._authorize(data.token)
        fname = decode_filename(data.uid)
        copy_complete(
            user_info,
            settings.rdb_storage_path + "/" + data.uid,
            data.output_path + "/" + fname,
            data.output_path,
        )
+12 −3
Original line number Diff line number Diff line
"""This is the main app"""
import logging

import uvicorn  # type: ignore
from fastapi import FastAPI
from fastapi import Depends, FastAPI, Request

from app.auth.keycloak import KeycloakBroker
from app.brokers import FilesysBroker, RemoteDataBroker
@@ -8,15 +10,22 @@ from app.server.routers import download, upload
from app.settings import settings


async def log_json(request: Request) -> None:
    body = await request.body()
    logging.debug(f"\tRequest body: {str(body)}")


def app_factory(broker: RemoteDataBroker) -> FastAPI:
    new_app = FastAPI()
    new_app.include_router(upload.router)
    new_app.include_router(download.router)
    new_app.include_router(upload.router, dependencies=[Depends(log_json)])
    new_app.include_router(download.router, dependencies=[Depends(log_json)])
    new_app.extra = {"broker": broker}
    return new_app


if __name__ == "__main__":
    logging.basicConfig(level=settings.log_level.upper())
    auth = KeycloakBroker()
    app = app_factory(FilesysBroker(auth))

    uvicorn.run(app, host="0.0.0.0", port=settings.rdb_listen_port)
+7 −2
Original line number Diff line number Diff line
"""This module deals with download route"""

import logging

from fastapi import APIRouter, HTTPException, Request

from app.brokers import RemoteDataBroker
@@ -19,8 +21,11 @@ async def download_items(data: DownloadData, request: Request) -> None:
    try:
        broker.download(data=data)
    except AuthError:
        logging.debug(f"error: {AuthError}")
        raise HTTPException(status_code=401, detail="Unauthorized") from AuthError
    except Exception:
    except Exception as e:
        logging.debug(f"error: {e}")
        raise HTTPException(
            status_code=500, detail="Something went wrong, please try later"
        ) from Exception
        ) from e
    logging.debug(f"\tdownloaded: path={data.output_path}")
+7 −2
Original line number Diff line number Diff line
"""This module deals with upload route"""

import logging

from fastapi import APIRouter, HTTPException, Request

from app.brokers import RemoteDataBroker
@@ -18,10 +20,13 @@ async def upload_items(data: UploadData, request: Request) -> UploadResponse:
    try:
        uid: str = broker.upload(data=data)
    except AuthError:
        logging.debug(f"error: {AuthError}")
        raise HTTPException(status_code=401, detail="Unauthorized") from AuthError
    except Exception:
    except Exception as e:
        logging.debug(f"error: {e}")
        raise HTTPException(
            status_code=500, detail="Something went wrong, please try later"
        ) from Exception
        ) from e
    logging.debug(f"\tuploaded: uid={uid}")

    return UploadResponse(uid=uid)
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ class Settings(BaseSettings):
    keycloak_refresh_url: str = ""
    keycloak_client: str = ""
    keycloak_secret: str = ""
    log_level: str = "debug"

    class Config:
        """configuration"""
Loading