Skip to content

Ghoust2142/lxc-container-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LXC Container Parser (TeskaLabs)

Jednoduchá Python aplikace pro parsování seznamu LXC kontejnerů (JSON) a ukládání dat do PostgreSQL databáze.

Součástí projektu je i základní dockerizace – PostgreSQL běží v Docker kontejenru.

Použité technologie:

Python 3.13 Pydantic – validace dat a DTO modely SQLAlchemy 2.0 – ORM vrstva pro práci s databází PostgreSQL 16 – relační databáze Docker / Docker Compose – spuštění databáze psycopg2-binary – PostgreSQL driver

Struktura projektu:

app/ parser.py # Parsování JSON → ContainerDTO schemas.py # Pydantic DTO modely models.py # SQLAlchemy tabulky (containers + container_ips) db.py # DB engine + session main.py # Uložení naparsovaných dat do PostgreSQL docker-compose.yml # Postgres databáze requirements.txt # Python závislosti sample-data.json # Vstupní data (LXC kontejnery)

Spuštění databáze v Dockeru

V kořenové složce projektu: bash přikaz: docker compose up -d db

Kontrola běžícího kontejneru: bash přikaz: docker ps

Spuštění parseru (bez databáze): bash přikaz: py -m app.parser

Parser vypíše počet naparsovaných kontejnerů a ukázková data. Uložení kontejnerů do PostgreSQL

S databází běžící v Dockeru: bash přikaz: py -m app.main

Asynchronní varianta

Projekt obsahuje i asynchronní verzi ukládání dat do PostgreSQL (SQLAlchemy asyncio + asyncpg).

Spuštění: py -m app.async_main

Async varianta využívá:

  • create_async_engine
  • async_sessionmaker
  • await session.flush()
  • await session.commit()

Docker deployment

Pro plně dockerizované spuštění aplikace (PostgreSQL + Python app) stačí:

docker compose up --build

About

Test task – parsing LXC containers JSON to DB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published