30 Commits

Author SHA1 Message Date
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
b52cf01ecc Make conditionals more Pythonic 2019-06-25 12:36:37 -04:00
93be983b39 Properly verify node inputs 2019-06-25 12:36:37 -04:00
4922e973c7 Functionize duplicate code and fix net length bug 2019-06-24 10:10:07 -04:00
1316b9ed59 Fix refactoring bugs 2019-06-24 09:56:06 -04:00
6fd4710f7f Remove bad replacement 2019-05-21 19:51:23 -04:00
79d0a2eafc Handle raw sorting properly with new list format 2019-05-21 14:44:45 -04:00
73443ecbaf Update vm.py to allow API use 2019-05-20 22:15:28 -04:00
31f252ad9b Implement domain log watching
Implements the ability for a client to watch almost-live domain
console logs from the hypervisors. It does this using a deque-based
"tail -f" mechanism (with a configurable buffer per-VM) that watches
the domain console logfile in the (configurable) directory every
half-second. It then stores the current buffer in Zookeeper when
changed, where a client can then request it, either as a static piece
of text in the `less` pager, or via a similar "tail -f" functionality
implemented using fixed line splitting and comparison to provide a
generally-seamless output.

Enabling this feature requires each guest VM to implement a Libvirt
serial log and write its (text) console to it, for example using the
default logging directory:

```
<serial type='pty'>
    <log file='/var/log/libvirt/vmname.log' append='off'/>
<serial>
```

The append mode can be either on or off; on grows files unbounded,
off causes the log (and hence the PVC log data) to be truncated on
initial VM startup from offline. The administrator must choose how
they best want to handle this until Libvirt implements their own
clog-type logging format.
2019-04-12 11:15:32 -04:00
9f0d7c5bf8 Support VM list filtering by state 2019-03-20 11:31:54 -04:00
eec14ff177 Don't set unmigrated VMs to start 2019-03-20 10:19:01 -04:00
15c832650d Don't block stopping on non-start state 2019-03-16 23:32:13 -04:00
318a2353ea Fix missing format key on delete 2019-03-15 01:13:03 -04:00
df394c5c39 Handle regex in a more consistent way 2019-03-12 23:52:59 -04:00
1180a4c88e Remove debug 2019-03-12 21:46:30 -04:00
abbc361520 Sort the names properly 2019-03-12 21:46:09 -04:00
d6b554e88e Move the output to a better place; 2019-03-12 21:40:52 -04:00
eb087a26e7 Deleted the wrong line 2019-03-12 21:39:17 -04:00
2e187ae032 But sort it right 2019-03-12 21:38:22 -04:00
717e518deb List names instead of UUIDs 2019-03-12 21:35:33 -04:00
c4a97f04a7 Support raw VM listing 2019-03-12 21:30:01 -04:00
081d855a03 Allow dumping of VMs 2019-03-12 21:09:54 -04:00
f0030ee5ed Handle network printing with cluster net 2018-11-18 17:57:58 -05:00
720469d389 Standardize the layout of lists (dynamic fields) 2018-11-02 00:42:44 -04:00
2c2208ab07 Tweak some output formatting in lists 2018-11-01 23:24:38 -04:00
2b115160a2 Use zkhandler for everything; add delete operation 2018-10-27 15:51:52 -04:00
2de65e514f Add missing common call 2018-10-21 22:10:05 -04:00
05af23064f Fix name of "ansiiprint" since it's "ANSI" 2018-10-20 15:28:25 -04:00
a3f7419124 Handle colouring of network lists when a network is invalid 2018-10-20 15:27:07 -04:00
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