Commit Graph

971 Commits

Author SHA1 Message Date
Joshua Boniface 77e215b0eb Don't queue flushes without --wait
Don't try to queue up a flush when there is already a flush lock; direct
the user to use --wait (which will actually wait before triggering the
new action), or try again later.
2019-06-27 14:36:58 -04:00
Joshua Boniface d28b1ba133 Support removing VMs (and disks) from PVC clients
Adds full support for removing a VM entirely, including its RBD disks,
via the PVC client(s). Avoids needing an undefine + manual removal.
2019-06-27 11:19:48 -04:00
Joshua Boniface 3e591bd09e Remove extra whitespaces on blank lines 2019-06-25 22:33:23 -04:00
Joshua Boniface 08cb16bfbc Revamp VM migration handling
This was very old code that was hard to follow and quite fragile, with
failures and infinite loops occurring fairly frequently. These changes
make the code more robust, including the addition of timeouts, some code
cleanup, and some improvements to the logical flow.

Also forces the libvirt migration to occur on the cluster network, which
couples to changes in the libvirtd listen (via pvc-ansible) and in
Daemon.py via the previous commit.
2019-06-25 22:23:48 -04:00
Joshua Boniface d336fce253 Connect to actual IP not localhost for Libvirt 2019-06-25 22:09:32 -04:00
Joshua Boniface 75d0e7f989 Revert "Only perform fencing duties on primary"
This reverts commit 464c69aac6.

Actually, yea, this made sense - if the primary fails, it can't
fence itself.
2019-06-25 12:36:48 -04:00
Joshua Boniface 85a5a8a0c9 Disable tx offloading on bridge interfaces
Reference: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717215#68

Without this, DHCP fails when traversing only the local bridge, for
Debian Jessie or earlier (and possibly other OSes as well), due to the
missing UDP checksums. This disables the offload and hence reenables
the checksums even on the software-only bridge.

Also rearranged the steps and added comments arround this section to
better clarify what each command is doing.
2019-06-25 12:36:37 -04:00
Joshua Boniface b52cf01ecc Make conditionals more Pythonic 2019-06-25 12:36:37 -04:00
Joshua Boniface 93be983b39 Properly verify node inputs 2019-06-25 12:36:37 -04:00
Joshua Boniface 464c69aac6 Only perform fencing duties on primary
There was really no need for this to be shared among all the
coordinators, which seemed more fragile. This way only the primary will
try to fence dead nodes.
2019-06-24 20:17:51 -04:00
Joshua Boniface 249611b161 Remove duplicate import 2019-06-24 20:14:43 -04:00
Joshua Boniface d8dca50af4 Ensure domain is always set 2019-06-24 12:59:32 -04:00
Joshua Boniface 4922e973c7 Functionize duplicate code and fix net length bug 2019-06-24 10:10:07 -04:00
Joshua Boniface 1316b9ed59 Fix refactoring bugs 2019-06-24 09:56:06 -04:00
Joshua Boniface e097e9e8af Fix up status call 2019-06-21 16:40:12 -04:00
Joshua Boniface 60e6df4416 Increase wait on OSD add/remove a bit more 2019-06-21 16:01:08 -04:00
Joshua Boniface 9cec0c5b43 Remove extra bolding in lists 2019-06-21 15:57:50 -04:00
Joshua Boniface 808e53fe29 Increase wait on OSD add/remove 2019-06-21 15:56:37 -04:00
Joshua Boniface d5e5ed4b69 Add hostname into confirmation 2019-06-21 15:54:54 -04:00
Joshua Boniface ef272b0b7d Add removal confirmations and zap disk before add 2019-06-21 15:52:28 -04:00
Joshua Boniface 26a4b3b757 Fix logic error in init 2019-06-21 15:38:32 -04:00
Joshua Boniface 519203d7fd Fix bad flag value 2019-06-21 15:09:15 -04:00
Joshua Boniface 93d2e0da6f Improve handling of init 2019-06-21 14:16:32 -04:00
Joshua Boniface c63b5a8056 Handle a no-valid-nodes situation 2019-06-21 11:37:35 -04:00
Joshua Boniface f3e9082376 Simplify fromhuman byte formatting 2019-06-21 10:18:35 -04:00
Joshua Boniface 867ad1fc1b Support human-readable biconversion and in volumes 2019-06-21 09:23:52 -04:00
Joshua Boniface 3d3fa1b99f Add write-lock-wait to all other Ceph commands 2019-06-21 09:05:00 -04:00
Joshua Boniface 33bf3ee3cf Add confirmation to cluster init 2019-06-21 09:02:58 -04:00
Joshua Boniface 3dd56c55c0 Fix a few more bugs 2019-06-19 15:32:32 -04:00
Joshua Boniface 97a3dafa3b Fix bug in regex match for snapshots 2019-06-19 15:24:04 -04:00
Joshua Boniface 822cf53a49 Nicer list handling for snapshots 2019-06-19 15:22:44 -04:00
Joshua Boniface ddedb1a992 Set image features to supported values 2019-06-19 15:19:36 -04:00
Joshua Boniface 51256b4f0f Fix bad bolding in lists 2019-06-19 15:16:22 -04:00
Joshua Boniface 5d4ecafb03 Support listing of snapshots 2019-06-19 15:15:17 -04:00
Joshua Boniface 0f15e7cda5 Set shutdown state after final keepalive 2019-06-19 14:52:47 -04:00
Joshua Boniface 80de40252b Add shutdown colour to output 2019-06-19 14:28:04 -04:00
Joshua Boniface 0060c0313b Put daemonstate to shutdown when stopping
This way it isn't "run" all the way until it shuts down.
2019-06-19 14:23:07 -04:00
Joshua Boniface 39a45a1e0f Fix bug with daemon_state 2019-06-19 14:19:00 -04:00
Joshua Boniface 4ca0fe8f6f Handle per-pool lists better 2019-06-19 14:11:03 -04:00
Joshua Boniface bc38af774e Check that node is in run state before primary
Fixes #37
2019-06-19 12:49:34 -04:00
Joshua Boniface 9a0554fdbe Remove all volumes from pool on removal
Technically not needed, but otherwise random errors may be thrown,
so best to be explicit.
2019-06-19 12:49:03 -04:00
Joshua Boniface 5e211837ad Fix bug in output 2019-06-19 11:24:25 -04:00
Joshua Boniface e6a458f38c Support listing volumes 2019-06-19 11:22:49 -04:00
Joshua Boniface 87907d4ce8 Remove size field from volume objects
This data is just in the stats anyways.
2019-06-19 10:45:14 -04:00
Joshua Boniface 09562fdc06 Output in json format instead 2019-06-19 10:32:01 -04:00
Joshua Boniface a940d03959 Fix some bugs and add RBD volume stats 2019-06-19 10:25:22 -04:00
Joshua Boniface db0b382b3d Don't bother with snapshot management by Daemon
This is *definitely* not needed in the end, and just uses RAM for
no conceivable purpose. Snapshots are fully client-managed.
2019-06-19 09:43:04 -04:00
Joshua Boniface 98365b0fcf Correct bugs around snapshots 2019-06-19 09:41:33 -04:00
Joshua Boniface 1c9f606480 Implement volume and snapshot handling by daemon
This seems like a super-gross way to do this, but at the moment
I don't have a better way. Maybe just remove this component since
none of the volume/snapshot stuff is dynamic; will see as this
progresses.
2019-06-19 09:40:32 -04:00
Joshua Boniface 784b428ed0 Add creation of volume and snapshot lists 2019-06-19 09:29:36 -04:00