Commit Graph

3374 Commits

Author SHA1 Message Date
Joshua Boniface d7f40ba1aa Move snapshot age conversion to client and round
Moves the age human conversion logic to the client so that this value
can be used by API consumers programatically.

Rounding ensures recent snapshots are not showing as "older" than they
actually are, which is important for accuracy especially with
automirror snapshots and ages above half the next rounding value.
2024-11-16 13:50:55 -05:00
Joshua Boniface 08227ba0f4 Ensure snapshots are removed if none succeed
Avoids having lingering automirror snapshots that will never be cleaned
up.
2024-11-15 12:02:02 -05:00
Joshua Boniface ba4349d289 Fix issues if one is disabled 2024-11-15 11:53:26 -05:00
Joshua Boniface b525bbe81d Improve celery logging by including calling def 2024-11-15 11:49:32 -05:00
Joshua Boniface 078d48a50b Add VM automirror support
Allows shipping snapshots automatically to remote clusters on a cron,
identically to how autobackup handles local snapshot exports.

VMs are selected based on configured tags, and individual destination
clusters can be specified based on a colon-separated suffix to the
tag(s).

Automirror snapshots use the prefix "am" (analogous to "ab" for
autobackups) to differentiate them from normal "mr" mirrors.
2024-11-15 11:34:39 -05:00
Joshua Boniface cebc660fb0 Allow image uploads if file_size is None 2024-11-14 10:05:35 -05:00
Joshua Boniface 9441cb3b2e Bump version to 0.9.103 2024-11-01 17:23:24 -04:00
Joshua Boniface b16542c8fc Fix double-appending domain bug
Since storage_hosts now includes the storage domain as FQDNs, don't
re-append it within vmbuilder.
2024-11-01 17:18:51 -04:00
Joshua Boniface de0c7e37f2 Allow environment setting for Munin 2024-10-30 13:12:08 -04:00
Joshua Boniface ae26a071c7 Fix bugs with Munin plugin 2024-10-30 12:53:29 -04:00
Joshua Boniface 49a34acd14 Fix README images 2024-10-25 23:51:08 -04:00
Joshua Boniface 82365ea539 Update README badge order 2024-10-25 23:47:33 -04:00
Joshua Boniface 86f0c5c3ae Update README 2024-10-25 23:43:57 -04:00
Joshua Boniface 83294298e1 Update README to match GitHub 2024-10-25 23:37:32 -04:00
Joshua Boniface 4187aacc5b Correct formatting of OpenAPI Swagger specs 2024-10-19 02:23:46 -04:00
Joshua Boniface 35c82b5249 Bump version to 0.9.102 2024-10-17 10:48:31 -04:00
Joshua Boniface e80b797e3a Add missing sorter for detail parser 2024-10-17 10:09:49 -04:00
Joshua Boniface 7c8c71dff7 Improve handling of local connections in CLI
1. Ensure the local connection is actually always present if it exists,
and stored in the store file.

2. Remove any invalid "local" store entries if present (i.e.
pvcapid.yaml entries from legacy versions).

3. Order the connection lists such that "local" is always first.

4. Improve pretty list output format such that all fields are wider if
needed
2024-10-17 09:56:54 -04:00
Joshua Boniface 861fef91e3 Add modification of Monitor hosts on XML import
Missing this means clusters with different storage hosts would fail to
start silently. Ensure these are updated like the secret UUID is as
well.
2024-10-16 16:00:54 -04:00
Joshua Boniface d1fcac1f0a Bump version to 0.9.101 2024-10-15 11:39:11 -04:00
Joshua Boniface 6ace2ebf6a Set expected PVC version for mirroring 2024-10-15 11:31:50 -04:00
Joshua Boniface 962fba7621 Bump up startup waits slightly
Ensures there's more time for daemons (specifically Zookeeper) to start
up and synchronize between nodes.
2024-10-15 11:10:23 -04:00
Joshua Boniface 49bf51da38 Fix indentation of previous fix 2024-10-15 10:57:33 -04:00
Joshua Boniface 1293e8ae7e Fix bugs in lock freeing function
1. The destination state on an error was invalid; should be "stop".

2. If a lock was listed but removing it fails (because it was already
cleared somehow, this would error. In turn this would cause the VM to
not migrate and be left in an undefined state. Fix that when unlocking
is forced.
2024-10-15 10:43:52 -04:00
Joshua Boniface ae2cf8a070 Add some time for Zookeeper to synchronize 2024-10-15 10:43:44 -04:00
Joshua Boniface ab5bd3c57d Fix handling of invalid nets in list
Ensure we add the difference in length between the visual output and the
ANSI-coded output to avoid the format handler mishandling the length.
2024-10-14 12:51:02 -04:00
Joshua Boniface 35153cd6b6 Fix path handling for zkhandler
Using full paths broke the local schema generator, so convert these to
proper class instance methods and use them along with a new default +
settable override.
2024-10-11 16:03:40 -04:00
Joshua Boniface 7f7047dd52 Add one more instance of mirror as purple 2024-10-11 14:44:14 -04:00
Joshua Boniface 9a91767405 Add proper return codes to API handlers 2024-10-11 14:43:44 -04:00
Joshua Boniface bcfa6851e1 Use purple for mirror state colour 2024-10-11 10:44:39 -04:00
Joshua Boniface 28b8b3bb44 Use proper response parsing instead of raise_for 2024-10-11 10:32:15 -04:00
Joshua Boniface 02425159ef Update Grafana graphs 2024-10-11 09:47:19 -04:00
Joshua Boniface a6f8500309 Improve fence handling to prevent anomalies
1. Move fence monitoring to its own thread rather than doing the listing
and triggering within the main keepalive thread.
2. Add a global lock key at /config/fence_lock and use this lock key to
prevent multiple nodes from trying to run fences simultaneously.
3. Run the fencing monitor for each node sequentially within the context
of the main fence monitoring thread, to ensure that fences of multiple
nodes happen sequentially rather than in parallel.

All of these should help to prevent any anomalies where one node can try
to fence multiple nodes at once without recourse.
2024-10-10 16:42:57 -04:00
Joshua Boniface ebec1332e9 Return to relative paths for SCHEMA_ROOT_PATH 2024-10-10 16:20:02 -04:00
Joshua Boniface c08c3b2d7d Improve thread timeouts in keepalive
Avoids various parts of the keepalive deadlocking waiting on data that
will never come when various internal processes fail. This should ensure
based on testing that the keepalive will always finish in <5 seconds.
2024-10-10 15:33:47 -04:00
Joshua Boniface 4c0d90b517 Add read lock timeouts to prevent deadlocks 2024-10-10 15:19:05 -04:00
Joshua Boniface 70c588d3a8 Add confirmation option for mirror promote 2024-10-10 01:57:06 -04:00
Joshua Boniface 214e7f835a Properly preserve state on promotion
Ensure if the state is start, stop, or disable, that state is preserved;
if it's anything else, the remote side will be started.
2024-10-10 01:21:05 -04:00
Joshua Boniface 96cebfb42a Handle cross-cluster Ceph storage secrets 2024-10-10 00:47:50 -04:00
Joshua Boniface c4763ac596 Fix invalid responses during promote 2024-10-09 01:14:19 -04:00
Joshua Boniface ea5512e3d8 Only shut down VM if it is running 2024-10-09 01:10:42 -04:00
Joshua Boniface ac00f7c4c8 Fix boolean state of remove_on_source 2024-10-09 01:04:08 -04:00
Joshua Boniface 6d31bf439e Update error text 2024-10-09 01:00:51 -04:00
Joshua Boniface c714093a2e Ensure VM start is forced 2024-10-09 00:58:43 -04:00
Joshua Boniface 04a09b9269 Fix invalid data in state change 2024-10-09 00:55:13 -04:00
Joshua Boniface 3ede0c7d38 Name mirror snapshots like autobackup snapshots 2024-10-09 00:49:22 -04:00
Joshua Boniface ab9390fdb8 Fix another bad stage counting instance 2024-10-09 00:44:20 -04:00
Joshua Boniface 1c83584788 Set correct verbage 2024-10-09 00:38:59 -04:00
Joshua Boniface 7f3ab4e119 Fix stage counting in tasks 2024-10-09 00:37:13 -04:00
Joshua Boniface 16eb09dc22 Fix ordering bug with vm_detail 2024-10-09 00:33:00 -04:00