Commit Graph

22 Commits

Author SHA1 Message Date
Joshua Boniface 75d95bbef7 Fix minor bugs 2019-10-12 02:03:23 -04:00
Joshua Boniface 18fc49fc6c Use node instead of hypervisor consistently 2019-10-12 01:59:08 -04:00
Joshua Boniface e5393082b6 Use build-in selector and respect limits in client
Use the new built-in selector option, as well as respecting node limits,
when performing migrate or move actions on a VM via the clients.
2019-10-12 01:45:44 -04:00
Joshua Boniface 8dc0c8f0ac Fix minor bugs 2019-10-12 01:36:50 -04:00
Joshua Boniface 5995353597 Implement VM metadata and use it
Implements the storing of three VM metadata attributes:
1. Node limits - allows specifying a list of hosts on which the VM must
run. This limit influences the migration behaviour of VMs.
2. Per-VM node selectors - allows each VM to have its migration
autoselection method specified, to automatically allow different methods
per VM based on the administrator's preferences.
3. VM autorestart - allows a VM to be automatically restarted from a
stopped state, presumably due to a failure to find a target node (either
due to limits or otherwise) during a flush/fence recovery, on the next
node unflush/ready state of its home hypervisor. Useful mostly in
conjunction with limits to ensure that VMs which were shut down due to
there being no valid migration targets are started back up when their
node becomes ready again.

Includes the full client interaction with these metadata options,
including printing, as well as defining a new function to modify this
metadata. For the CLI it is set/modified either on `vm define` or via the
`vm meta` command. For the API it is set/modified either on a POST to
the `/vm` endpoint (during VM definition) or on POST to the `/vm/<vm>`
endpoint. For the API this replaces the previous reserved word for VM
creation from scratch as this will no longer be implemented in-daemon
(see #22).

Closes #52
2019-10-12 01:17:39 -04:00
Joshua Boniface 8071fb87d7 Include XML in domain information 2019-07-25 16:29:29 -04:00
Joshua Boniface 75f80fa4bd Include XML output in VM information 2019-07-25 15:44:29 -04:00
Joshua Boniface e765ec7f49 Handle client connection falures gracefully 2019-07-12 00:55:06 -04:00
Joshua Boniface e263a05237 Reorganize client functions
Move some functions to the common file for future usage.
2019-07-09 09:29:47 -04:00
Joshua Boniface 10a0da6fdf Return strings only in extra details 2019-07-04 12:56:41 -04:00
Joshua Boniface c63b5a8056 Handle a no-valid-nodes situation 2019-06-21 11:37:35 -04:00
Joshua Boniface 99fcb21e3b Support adding and removing Ceph pools 2018-10-31 23:38:17 -04:00
Joshua Boniface 3e4a6086d5 Finish up Ceph OSD removal, add locking to commands 2018-10-30 22:41:44 -04:00
Joshua Boniface 103ae95fb9 Add Ceph commands and status handling 2018-10-27 18:11:58 -04:00
Joshua Boniface b65472aa83 Add remote SSH-based command handling 2018-10-27 17:51:03 -04:00
Joshua Boniface 9f87321f10 Remove ending newline 2018-10-27 16:33:50 -04:00
Joshua Boniface a5be42908d Handle verifyNode properly 2018-10-27 16:19:07 -04:00
Joshua Boniface 4b924e54d9 Fix children list typo 2018-10-27 16:03:01 -04:00
Joshua Boniface 2b115160a2 Use zkhandler for everything; add delete operation 2018-10-27 15:51:52 -04:00
Joshua Boniface 29d44444e5 Add function to get primary node 2018-10-27 15:24:42 -04:00
Joshua Boniface d69cb72439 Modify alloc memory check to just look at alloc 2018-10-22 00:43:58 -04:00
Joshua Boniface f198f62563 Massive rejigger into single daemon
Completely restructure the daemon code to move the 4 discrete daemons
into a single daemon that can be run on every hypervisor. Introduce the
idea of a static list of "coordinator" nodes which are configured at
install time to run Zookeeper and FRR in router mode, and which are
allowed to take on client network management duties (gateway, DHCP, DNS,
etc.) while also allowing them to run VMs (i.e. no dedicated "router"
nodes required).
2018-10-14 02:40:54 -04:00