Joshua Boniface
f6c009beac
Allow overriding stages in some commands
...
This allows them to be called by autobackup commands while still
preserving the current Celery report flow.
2024-08-23 11:21:02 -04:00
Joshua Boniface
fc89f4f2f5
Fix error message contents
2024-08-23 10:23:51 -04:00
Joshua Boniface
565011b277
Set snapshot name before start
2024-08-20 23:01:52 -04:00
Joshua Boniface
0bf9cc6b06
Improve stage handling
...
Run start() at the beginning, and leverage the new tweaks to the CLI to
update the total steps later. Allows errors to be handled gracefully
2024-08-20 17:50:27 -04:00
Joshua Boniface
f2dfada73e
Improve return handling for snapshot tasks
2024-08-20 17:40:44 -04:00
Joshua Boniface
9b3075be18
Add UUID check and fix wording
...
Don't suggest renaming any more as it's not enough.
2024-08-20 17:05:27 -04:00
Joshua Boniface
9a661d0173
Convert VM snapshots to worker tasks
...
Improves manageability and offloads these from the API context.
2024-08-20 16:50:41 -04:00
Joshua Boniface
4a0680b27f
Fix issues with snapshot imports
2024-08-20 13:59:05 -04:00
Joshua Boniface
f42a1bad0e
Allow passing zk_only into VM snapshot creation
2024-08-20 12:57:53 -04:00
Joshua Boniface
3fb52a13c2
Add missing VM states from snapshots
2024-08-20 11:53:57 -04:00
Joshua Boniface
8937ddf331
Simplify VM rename to preserve data
...
A rename is simply a change to two values, so instead of undefining and
re-defining the VM, just edit those two fields. This ensures things like
snapshots are preserved automatically.
2024-08-20 11:37:28 -04:00
Joshua Boniface
7cc354466f
Finish implementing snapshot import
2024-08-20 11:25:09 -04:00
Joshua Boniface
0a8bad3418
Add VM snapshot import
2024-08-20 10:53:56 -04:00
Joshua Boniface
f10d32987b
Fix up comments
2024-08-20 10:37:58 -04:00
Joshua Boniface
d060787503
Add initial implementation of snapshot export
2024-08-19 18:46:07 -04:00
Joshua Boniface
f1b4593367
Store current stats with snapshots
...
Allows getting info like size, etc. for the snapshot.
2024-08-19 14:07:27 -04:00
Joshua Boniface
33f905459a
Implement VM rollback
...
Closes #184
2024-08-16 10:47:18 -04:00
Joshua Boniface
359191c83f
Ensure snapshot name does not already exist
2024-08-16 10:46:25 -04:00
Joshua Boniface
3d0d5e63f6
Make default snap name just the datestring
2024-08-16 10:46:25 -04:00
Joshua Boniface
e6bfbb6d45
Actually fix incorrect naming bug
2024-08-16 10:46:25 -04:00
Joshua Boniface
b80f9e28dc
Add human-readable age to snapshots
...
This is parsed server-side for consistent timing and to simplify the API
consumers.
2024-08-16 10:46:25 -04:00
Joshua Boniface
fbd5b3cca3
Remove is_backup flag for snapshots
...
This won't be needed for anything.
2024-08-16 10:46:25 -04:00
Joshua Boniface
2b1082590e
Fix bug in snapshot removal
2024-08-16 10:46:25 -04:00
Joshua Boniface
6fc7f45027
Add snapshot lists and timestamp
...
Adds snapshots to the list of data in VM objects
2024-08-16 10:46:25 -04:00
Joshua Boniface
0c240a5129
Add VM snapshot removal
2024-08-16 10:46:25 -04:00
Joshua Boniface
553c1e670e
Add VM snapshots functionality
...
Adds the ability to create snapshots of an entire VM, including all its
RBD disks and the VM XML config, though not any PVC metadata.
2024-08-16 10:46:25 -04:00
Joshua Boniface
942de9f15b
Add better exception handling for XML configs
2024-08-16 10:46:04 -04:00
Joshua Boniface
c186015d6f
Add check for invalid profile
2024-07-13 17:13:40 -04:00
Joshua Boniface
7a99e0e524
Fix bugs listing snapshots by pool/volume
...
The logic of this didn't work, so reconfigure to use these like limits.
Also fixes a bug in the upper getCephVolumes for invalid pools.
2024-05-16 16:32:22 -04:00
Joshua Boniface
5d0e7931d1
Add support for rolling back snapshots
...
We supported creating snapshots, but not doing anything with them. This
removes the manual task of restoring a snapshot and replace it with a
PVC abstraction of rolling back to a snapshot.
While Ceph recommends cloning a snapshot instead of rolling back, due to
the time taken, in our usecase I don't think that is an optimal
strategy, as it will leave dangling clones that we'd then have to
manage.
Closes #183
2024-05-13 15:24:51 -04:00
Joshua Boniface
ab944f9b95
Add RBD snap purge during volume removal
...
Fixes #180
2024-04-19 10:31:11 -04:00
Joshua Boniface
9714ac20b2
Update formatting for Black 24.4.0
2024-04-19 10:26:06 -04:00
Joshua Boniface
a461791ce8
Fix bug cleaning up successful benchmark results
2024-03-08 14:22:07 -05:00
Joshua Boniface
9fdb6d8708
Fix bug with network stats
2024-03-07 15:44:35 -05:00
Joshua Boniface
2fb7c40497
Work around bad plugin data
2024-03-07 14:37:05 -05:00
Joshua Boniface
67ec41aaf9
Fix invalid memory errors for stopped VMs
2024-02-06 13:30:48 -05:00
Joshua Boniface
a95e72008e
Add size validations for volume clones
...
Adds the same validations as a volume add or resize to volume clones, to
ensure there is enough free space for them.
2024-02-02 11:37:29 -05:00
Joshua Boniface
efc7434143
Add safety check for 80% full size
...
Adds a check that a volume creation or resize won't violate the 80% full
rule for the storage cluster. This ensures a cluster won't get too full
if a storage volume fills up.
Also adds a force flag throughout the pipeline to override this check,
should an administrator really want to do so.
Closes #177
2024-02-02 11:37:00 -05:00
Joshua Boniface
8419659e1b
Ensure zkhandler is always cleaned up
...
Even if the subfunction of an API @ZKConnection call fails, the
zkhandler needs to terminate and clean up, or it leaves stuck threads
around.
2024-01-30 09:48:17 -05:00
Joshua Boniface
d28fb71f57
Fix incorrect variable set
2024-01-24 14:40:40 -05:00
Joshua Boniface
09269f182c
Add live migrate max downtime selector meta field
...
Adds a new flag to VM metadata to allow setting the VM live migration
max downtime. This will enable very busy VMs that hang live migration to
have this value changed.
2024-01-11 00:05:50 -05:00
Joshua Boniface
362edeed8c
Add backup reporting and improve metrics
...
Major improvements to autobackup and backups, including additional
information/fields in the backup JSON itself, improved error handling,
and the ability to email reports of autobackups using a local sendmail
utility.
2024-01-10 14:18:44 -05:00
Joshua Boniface
39c8367723
Add additional metainfo to VM backups
...
Adds additional information about failures, runtime, file sizes, etc. to
the JSON output of a VM backup.
This helps enable additional reporting and summary information for
autobackup runs.
2024-01-10 10:37:29 -05:00
Joshua Boniface
aac306c55b
Fix missing stats on old Debians
2024-01-09 12:10:16 -05:00
Joshua Boniface
c1ae571213
Add additional VM details to Prometheus
2023-12-29 14:09:39 -05:00
Joshua Boniface
123c7ce857
Update copyright header on all files for 2024
...
Last release of 2023 is probably the best time to do this.
2023-12-29 11:16:59 -05:00
Joshua Boniface
4969e90f8a
Allow enable/disable of Prometheus endpoints
...
Since these are unauthenticated, it might be the case that an
administrator wishes to completely disable these metrics endpoints.
Provide that option via pvc.conf through pvc-ansible's existing
enable_prometheus_exporters option and the new enable_prometheus
configuration flag.
Defaults to "yes" to provide all functionality unless explicitly
disabled, as the author assumes that the PVC API is secured in other
ways as well and that metric information is not completely sensitive.
2023-12-29 09:25:10 -05:00
Joshua Boniface
3346ce9bb0
Add missing shutdown state from combinations
2023-12-27 13:40:30 -05:00
Joshua Boniface
e654fbba08
Move debug condition handling to Logger
...
Avoids many dozens of conditionals sprinkled throughout the code by
centralizing this check into the main Logger instance.
2023-12-27 13:01:45 -05:00
Joshua Boniface
4375f66793
Use proper get() for invalid values
2023-12-27 12:03:48 -05:00