- Rust 100%
|
|
||
|---|---|---|
| .config | ||
| src | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
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.