[GH-ISSUE #10] Feature: Add ProxSnap alike functions to the web interface #5

Closed
opened 2026-03-02 15:47:07 +03:00 by kerem · 7 comments
Owner

Originally created by @gyptazy on GitHub (Jan 26, 2026).
Original GitHub issue: https://github.com/PegaProx/project-pegaprox/issues/10

General

I'd really like to see a snapshot cleanup management in PegaProx, which shows the oldest snapshots in a cluster (not on a VM/guest level, which requires an admin to click through all objects). This allows a quick identification of old and maybe forgotten snapshots that might get deleted safely. It should also provide a filter mechanism to only display snapshots that are older than a specific date (e.g., 2024-12-30).

Tasks

For the overview, it should provide a new API endpoint which allows post actions to provide a specific date for validate against a cutoff-date. While there's already a snapshot path, it doesn't make sense to re-use that one, because it's only in a VM scope, but it can be called from an outer function. The same should be done for the deletion part. While we're talking about a global cluster aware snapshot functionality, it might make sense to scope it directly to /api/snapshots/[...]

  • Create an API endpoint /api/snapshots/overview
    • Allow POST including a date
    • Filter for snapshot objects older than the given date
    • List objects (vmid, vm name, vm type, node, snapshot name, snapshot date, snapsnot age)
    • Provide option to delete snapshots from UI
  • Create an API endpoint /api/snapshots/delete
    • Delete (a) given snapshot(s) by invoking mgr.delete_snapshot

Ideas

This is pretty similar to the idea of my ProxSnap tool for Proxmox based clusters, which is currently only available as a cli tool in Rust.

I already adjusted the front/backend and will provide the PR asap. It currently looks like this - happy about feedback.

Image

Originally created by @gyptazy on GitHub (Jan 26, 2026). Original GitHub issue: https://github.com/PegaProx/project-pegaprox/issues/10 ## General I'd really like to see a snapshot cleanup management in PegaProx, which shows the oldest snapshots in a cluster (not on a VM/guest level, which requires an admin to click through all objects). This allows a quick identification of old and maybe forgotten snapshots that might get deleted safely. It should also provide a filter mechanism to only display snapshots that are older than a specific date (e.g., 2024-12-30). ## Tasks For the overview, it should provide a new API endpoint which allows post actions to provide a specific date for validate against a cutoff-date. While there's already a snapshot path, it doesn't make sense to re-use that one, because it's only in a VM scope, but it can be called from an outer function. The same should be done for the deletion part. While we're talking about a global cluster aware snapshot functionality, it might make sense to scope it directly to `/api/snapshots/[...]` * Create an API endpoint `/api/snapshots/overview` * Allow `POST` including a date * Filter for snapshot objects older than the given date * List objects (vmid, vm name, vm type, node, snapshot name, snapshot date, snapsnot age) * Provide option to delete snapshots from UI * Create an API endpoint `/api/snapshots/delete` * Delete (a) given snapshot(s) by invoking `mgr.delete_snapshot` ## Ideas This is pretty similar to the idea of my [ProxSnap](https://gyptazy.com/blog/snapshot-management-tool-proxmox/) tool for Proxmox based clusters, which is currently only available as a [cli tool](https://github.com/gyptazy/ProxSnap) in Rust. I already adjusted the front/backend and will provide the PR asap. It currently looks like this - happy about feedback. ![Image](https://github.com/user-attachments/assets/5ae9a968-c900-4d89-9fb4-dd9fa2ecff95)
kerem 2026-03-02 15:47:07 +03:00
  • closed this issue
  • added the
    Approved
    label
Author
Owner

@mkellermann97 commented on GitHub (Jan 26, 2026):

Hi @gyptazy ,
I can't currently add new features without checking with @MrMasterbay first, and he's currently unavailable for health reasons.
In the meantime, feel free to submit your pull request – we'll review it as soon as possible.

Regards,
Marcus

<!-- gh-comment-id:3800306665 --> @mkellermann97 commented on GitHub (Jan 26, 2026): Hi @gyptazy , I can't currently add new features without checking with @MrMasterbay first, and he's currently unavailable for health reasons. In the meantime, feel free to submit your pull request – we'll review it as soon as possible. Regards, Marcus
Author
Owner

@gyptazy commented on GitHub (Jan 27, 2026):

Hey @mkellermann97,

sure, take your time. I've linked the PR in #14.
@MrMasterbay, get well soon!

Cheers,
gyptazy

<!-- gh-comment-id:3803612236 --> @gyptazy commented on GitHub (Jan 27, 2026): Hey @mkellermann97, sure, take your time. I've linked the PR in #14. @MrMasterbay, get well soon! Cheers, gyptazy
Author
Owner

@mkellermann97 commented on GitHub (Jan 27, 2026):

Hi @gyptazy ,

We've now integrated your ProxSnap into our new version v0.6.2.
Thank you so much for your contribution!

Image

Please let us know if everything looks good to you.
Regards,
Marcus

<!-- gh-comment-id:3806646501 --> @mkellermann97 commented on GitHub (Jan 27, 2026): Hi @gyptazy , We've now integrated your ProxSnap into our new version v0.6.2. Thank you so much for your contribution! <img width="2272" height="1669" alt="Image" src="https://github.com/user-attachments/assets/6aefef53-d1e9-4272-b784-eef7673a6be3" /> Please let us know if everything looks good to you. Regards, Marcus
Author
Owner

@gyptazy commented on GitHub (Jan 27, 2026):

Hey Marcus (@mkellermann97),

looks great. Did you already push it? Couldn't find any new sources in branches or similar.

Cheers,
gyptazy

<!-- gh-comment-id:3806783654 --> @gyptazy commented on GitHub (Jan 27, 2026): Hey Marcus (@mkellermann97), looks great. Did you already push it? Couldn't find any new sources in branches or similar. Cheers, gyptazy
Author
Owner

@mkellermann97 commented on GitHub (Jan 27, 2026):

Hi @gyptazy,
We'll implement this once we've fixed the current bugs and included the other feature requests.

We're aiming to have it done by tomorrow and release it in the afternoon.

Regards,
Marcus

<!-- gh-comment-id:3807145036 --> @mkellermann97 commented on GitHub (Jan 27, 2026): Hi @gyptazy, We'll implement this once we've fixed the current bugs and included the other feature requests. We're aiming to have it done by tomorrow and release it in the afternoon. Regards, Marcus
Author
Owner

@mkellermann97 commented on GitHub (Jan 28, 2026):

Hi @gyptazy ,
Please check out the latest version and let us know what you think.
Regards,
Marcus

<!-- gh-comment-id:3813115541 --> @mkellermann97 commented on GitHub (Jan 28, 2026): Hi @gyptazy , Please check out the latest version and let us know what you think. Regards, Marcus
Author
Owner

@gyptazy commented on GitHub (Jan 28, 2026):

Hey @mkellermann97,

looks awesome and works perfectly - also thanks for the minor adjustments to it and the crediting!

Cheers,
gyptazy

Image

<!-- gh-comment-id:3813174021 --> @gyptazy commented on GitHub (Jan 28, 2026): Hey @mkellermann97, looks awesome and works perfectly - also thanks for the minor adjustments to it and the crediting! Cheers, gyptazy ![Image](https://github.com/user-attachments/assets/3627ce1e-1f06-4123-8a85-f1e878faa0c2)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/project-pegaprox-PegaProx#5
No description provided.