From e15a821ef995829da6ad436de492645d8dfaa961 Mon Sep 17 00:00:00 2001 From: TurikRoma Date: Fri, 13 Feb 2026 13:38:32 +0300 Subject: [PATCH] feat: implement lab01 devops info service --- app_python/.gitignore | 12 +++ app_python/README.md | 74 ++++++++++++++++++ app_python/app.py | 42 ++++++++++ app_python/config.py | 5 ++ app_python/docs/LAB01.md | 67 ++++++++++++++++ .../docs/screenshots/01-main-endpoint.png | Bin 0 -> 30892 bytes .../docs/screenshots/02-health-check.png | Bin 0 -> 9590 bytes .../docs/screenshots/03-formatted-output.png | Bin 0 -> 64437 bytes app_python/requirements.txt | 2 + app_python/routes/system_info.py | 24 ++++++ app_python/services/system_info.py | 68 ++++++++++++++++ app_python/tests/__init__.py | 1 + 12 files changed, 295 insertions(+) create mode 100644 app_python/.gitignore create mode 100644 app_python/README.md create mode 100644 app_python/app.py create mode 100644 app_python/config.py create mode 100644 app_python/docs/LAB01.md create mode 100644 app_python/docs/screenshots/01-main-endpoint.png create mode 100644 app_python/docs/screenshots/02-health-check.png create mode 100644 app_python/docs/screenshots/03-formatted-output.png create mode 100644 app_python/requirements.txt create mode 100644 app_python/routes/system_info.py create mode 100644 app_python/services/system_info.py create mode 100644 app_python/tests/__init__.py diff --git a/app_python/.gitignore b/app_python/.gitignore new file mode 100644 index 0000000000..4de420a8f7 --- /dev/null +++ b/app_python/.gitignore @@ -0,0 +1,12 @@ +# Python +__pycache__/ +*.py[cod] +venv/ +*.log + +# IDE +.vscode/ +.idea/ + +# OS +.DS_Store \ No newline at end of file diff --git a/app_python/README.md b/app_python/README.md new file mode 100644 index 0000000000..cee4fcf5c0 --- /dev/null +++ b/app_python/README.md @@ -0,0 +1,74 @@ +# DevOps Info Service + +## Overview + +Web service that reports system information and health status. Provides API endpoints for service info, hostname, platform, uptime, and request details. + +## Prerequisites + +- Python 3.11+ +- pip + +## Installation + +```bash +python -m venv venv +venv\Scripts\activate +pip install -r requirements.txt +``` + +## Running + +```bash +python app.py +``` + +Default: `http://0.0.0.0:5000` + +**Custom config:** + +```bash +PORT=8080 python app.py +HOST=127.0.0.1 PORT=3000 python app.py +``` + +## API Endpoints + +### `GET /` + +Returns service and system information. + +```bash +curl http://localhost:5000/ +``` + +### `GET /health` + +Health check endpoint. + +```bash +curl http://localhost:5000/health +``` + +## Configuration + +| Variable | Default | Description | +| -------- | --------- | ------------ | +| `HOST` | `0.0.0.0` | Host address | +| `PORT` | `5000` | Port number | +| `DEBUG` | `False` | Debug mode | + +## Project Structure + +``` +app_python/ +├── app.py # Main app +├── config.py # Config +├── routes/ # API routes +├── services/ # Business logic +├── tests/ +├── docs/ # Lab docs, screenshots +├── requirements.txt +├── .gitignore +└── README.md +``` diff --git a/app_python/app.py b/app_python/app.py new file mode 100644 index 0000000000..4f29723835 --- /dev/null +++ b/app_python/app.py @@ -0,0 +1,42 @@ +import os +import logging +from fastapi import FastAPI, Request, HTTPException +from fastapi.responses import JSONResponse +from routes.system_info import router as system_info_router +from config import HOST, PORT, DEBUG +import uvicorn + +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger(__name__) + +app = FastAPI() + +app.include_router(system_info_router) + +@app.exception_handler(404) +async def not_found(request: Request, exc: HTTPException): + return JSONResponse( + status_code=404, + content={ + "error": "Not Found", + "message": "Endpoint does not exist" + } + ) + +@app.exception_handler(Exception) +async def internal_error(request: Request, exc: Exception): + return JSONResponse( + status_code=500, + content={ + "error": "Internal Server Error", + "message": "An unexpected error occurred" + } + ) + +if __name__ == "__main__": + logger.info(f"Application started on {HOST}:{PORT}") + uvicorn.run(app, host=HOST, port=PORT) + diff --git a/app_python/config.py b/app_python/config.py new file mode 100644 index 0000000000..6cb4e62bcd --- /dev/null +++ b/app_python/config.py @@ -0,0 +1,5 @@ +import os + +HOST = os.getenv('HOST', '0.0.0.0') +PORT = int(os.getenv('PORT', 5000)) +DEBUG = os.getenv('DEBUG', 'False').lower() == 'true' \ No newline at end of file diff --git a/app_python/docs/LAB01.md b/app_python/docs/LAB01.md new file mode 100644 index 0000000000..62bf8c4e7a --- /dev/null +++ b/app_python/docs/LAB01.md @@ -0,0 +1,67 @@ +# Lab 1 Submission + +## Framework Selection + +**FastAPI** - Modern, fast, has auto-docs and async support. + +| Criteria | FastAPI | Flask | Django | +| --------- | --------- | ---------- | ------ | +| Speed | Very Fast | Fast | Medium | +| Auto Docs | Yes | No | No | +| Async | Yes | Limited | Yes | +| Size | Small | Very Small | Large | + +**Why not Flask?** Flask is simpler but FastAPI has better async and auto-docs. + +**Why not Django?** Too big for this simple service. + +## Best Practices Applied + +1. **Code Organization** - Separated into routes/, services/, config.py +2. **Error Handling** - 404 and 500 handlers +3. **Logging** - Basic logging setup +4. **Environment Variables** - Config via env vars +5. **Clear Function Names** - get_system_info(), get_uptime(), etc. + +## API Documentation + +### `GET /` + +Returns service info, system info, runtime, request details, and endpoints list. + +```bash +curl http://localhost:5000/ +``` + +### `GET /health` + +Returns health status and uptime. + +```bash +curl http://localhost:5000/health +``` + +### Error Responses + +```bash +curl http://localhost:5000/something +# {"error": "Not Found", "message": "Endpoint does not exist"} +``` + +## Testing Evidence + +Screenshots in `docs/screenshots/`: + +- `01-main-endpoint.png` +- `02-health-check.png` +- `03-formatted-output.png` + +## Challenges & Solutions + +1. **Function name conflict** — Named the route handler `get_system_info()` which conflicted with the imported function from `services.system_info`. When calling `get_system_info()` inside the route handler, Python was calling the route handler itself instead of the imported function, causing recursion errors. Fixed by importing the entire module as `import services.system_info as system_info_service` and accessing functions via `system_info_service.get_system_info()`. + +2. **Timezone method call error** — Used `timezone.utc.tzname()` without arguments, but `tzname()` method requires a datetime object as parameter. This caused `TypeError: timezone.tzname() takes exactly one argument (0 given)`. Fixed by calling `tzname()` on a datetime object: `datetime.now(timezone.utc).tzname()`. + +## GitHub Community + +\*Starring repositories helps with discovery and bookmarking — it signals project quality to the community and encourages maintainers. Following developers builds professional connections and keeps you informed about relevant projects and industry trends. diff --git a/app_python/docs/screenshots/01-main-endpoint.png b/app_python/docs/screenshots/01-main-endpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0a41efdd19c3af5588dfc975a8420ba554d040 GIT binary patch literal 30892 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 literal 0 HcmV?d00001 diff --git a/app_python/docs/screenshots/02-health-check.png b/app_python/docs/screenshots/02-health-check.png new file mode 100644 index 0000000000000000000000000000000000000000..88f95b7b679e60d179ff22ee672699bbb21c2659 GIT binary patch literal 9590 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
-wHYrr*nrmf zW{;b!{qf#L)y)c71s+86~U!z zw9``n|r$J3{k9Zd@GUNsrVK&ZWVmRP_|cd)>3$s z`RZSrRwk7NNu^r`5;%1S!j2<&P<}k@wP-is;e@TQ({Y433MI;uqdT7hKdyXYT7hqB zG@pYI>UWsxCVAn($~I&$ZmMO!`r{=futA+GX19KHj2YU4NOsDzmH9)ByO=6A!Wqv& z_2LNMzH~?(qEU*1wW5&HzO0E~7+n({#RP(N&;cjd+u)Y*mx?wfG0$9VDZ8Aor>;uf z-b|DWammydco?-8dddgg4%U}#$Ccg6#aV(DJ&pGnga%}5-p_pVDr{2ti zD<2(4dnzM!KCkLk`AO!Efav|)VmSro7r&$a7QKCvUK*`4Ns1vT0Dpb?H-{0%vswBM za8(cR6{(rE`fzBzt`KTc+t{N;d{M!cBkYw}e&qOss<~0>b(|s1z zF_x5D;sQ+J5xx*1)96Lv2sosQ0OL2iMu2q~T>-sKq&B`!TpCSy5Pb9TUb=BFJLB`k zjbT{Ph79x(o2BjggkNP5G1E;?7y zA6)l@a$3hD=ch1>i*owZezDH z&SVP(&c`gyZ-b;WkjS-btFy4*>=zL67vKhiY0J_!LvTT2E(*6!!4e2kE@W*}bVqpE zji?+Zv}VhX)hS(UB%b?G3W$cMN3tJaU=VTso(qtq@xJSlc#?B)+K zWi&-do}MKb;jdP!$Fb;Pej?d6@mZ)YyLXOGv-V4!l_cR$_H8X^K=S0b)$*`X#tK4&PYYI!(EA?pLSC);ZY(? z5Q@dB(zWT#7P$q{0qf81Bp5>SX$|=A%#vHu4hui5; zaB;sAJzb+Ei*B-i0CDwLYd_4oJ1z4>%UT4EG2!nC%-=l6;j*#UFbwyTWAEH)Ko5)O z{wdlKEQ~M{xQ?;->I$v!_m}*P=)yJOSI%l(kGxU2yhy8-ZCq zGrv@&OZ}?Q|F^2g%SrlAgQ8bVm5{^ewb|0WIQDn+aSE~Z{{QA1-GLUb9RqmpJAlZZ zLIV1K$0!_)1RQw_lS_Y!zrTJewgT8T#DqQ|ruSF*|G<46!jx3_AkA}3)&Kx+wqCd1 zK-Oy9pE6?!nsPPm(O}MLx2Z2yeW%0*4{qVssX$Z;1{N2M%H*4k^cAIxj(Nl`*# z^?{_c6x+ki5^+>-n6yFPWYFGCrX}XR@U7Faej`H8tE!~Kjt3#Ge|&5vQBEB`DS-nM zrQSD!giT%|zYs@gy!Y46%!+7UVAl-?@ajKJ1yS=Lm`f8iS@eQF@#^`r*2q2eH_Yvx zsC^gHk?U$9{Za~TXqZz7<1Dt-8eh7c;bz&0m|c@1R%As&37&-e;suA}?h=fuV2G^> zlJdVTw$zHx|KwzGRr1>*qh3(aTp8z4%d(?!W57GfpZgsXj$%as%{Nr?RzYI|Kgq@A z&ernpdF2P}ZA^wH!xS(-d{zwqJYU0Cd!A;CPUycdfJC>cx&kJjr$$eI-KnYkHm+E? zslKndm{|=V)xu6tLCnYcYccrTzg-_j9CpfxuWcXnIO7H+EsG1d%PDS_$-Bta92A4_ zRKYfDq1cIhxw&l;@nni*NO`HZ9rBRSb<^9276={i=oCNZ7Uw09k?LK z^VgU(sMD01J^j$|Kne8CPJmy|d^W#qJ!(4^cAqxa)yw5ut7+G5R3WJ?bp4m;0PmSJ zfx>r{MoX=ypfdl%9oiHWf@CQtTrJDEhd+?Bngq#|GX5JS9^li+@lFO&SB_Q}@JO>5 zmm`Azc%bIHsJK(kg3@I=oe)uor_}*MeE^1w+ig!w`5v~CSI-v$12FJsv#dgChN6SUf18C4O8MlbIBfRxAIpUtqobTZvRG0pxOEhEDX%c m%gwkB_3P;=q`&Y853{xEstL@u-G6-oBP*>aRV`r@{Qm$DKZ6|r literal 0 HcmV?d00001 diff --git a/app_python/docs/screenshots/03-formatted-output.png b/app_python/docs/screenshots/03-formatted-output.png new file mode 100644 index 0000000000000000000000000000000000000000..0cca35f0bd7be7d2b2088508a7697913eece7d45 GIT binary patch literal 64437 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 Pghp9G