No description
Find a file
Tan Siewert b499a4403d Add placeholder test for CI to pass
Signed-off-by: Tan Siewert <tan.siewert@9elements.com>
2026-05-11 17:19:21 +02:00
.config Add placeholder test for CI to pass 2026-05-11 17:19:21 +02:00
src Add placeholder test for CI to pass 2026-05-11 17:19:21 +02:00
.gitignore Initial commit 2026-05-11 16:36:33 +02:00
.gitlab-ci.yml Initial commit 2026-05-11 16:36:33 +02:00
Cargo.lock Add placeholder test for CI to pass 2026-05-11 17:19:21 +02:00
Cargo.toml Add placeholder test for CI to pass 2026-05-11 17:19:21 +02:00
README.md Initial commit 2026-05-11 16:36:33 +02:00

FFDC Parser for OpenBMC

A basic FFDC / Dump Log parser with Web UI and API for OpenBMC-based systems, written in Rust.

Note: This project is written as my first project to learn Rust. Code may be buggy, incomplete or has anti-patterns with Rust.

As I use this project to learn Rust, I try to use as little to no LLM's for code completion or generation. If I use it, I'll declare the code as such.

The Web UI code however is mostly LLM generated (I'm not a web developer ^^).

API

The API is RESTful and accepts JSON as payload. It is available under /api/v1.

FFDC parse process

The tarball must be smaller than 8 MiB. If you have a tarball with a core-dump in there, then it'll be marked as such automatically. Parsing the core-dump automatically is not implemented at this time.

Upload the tarball using POST /api/v1/upload with PayloadFile=@your-file.tar as payload. If the tarball is being accepted, then you'll receive a response containing an UUID (which is unique per each upload), and a job ID (which shows the parse status).

The supported compressions for FFDCs are:

  • uncompressed
  • xz
  • zstd

The job status can be gathered from GET /api/v1/job/:id, which returns the type of job, and the progress status (failed/completed, percentage and so on).

Once the job is marked as completed, the parsed content can be acquired via GET /api/v1/ffdc/:uuid.

The content will be cached on the parser server in cache/:uuid. Upload to S3 is TBD.