Commit Graph

7 Commits

Author SHA1 Message Date
Joshua Boniface b6ecd36588 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-05-10 23:26:59 -04:00
Joshua Boniface 3e4a6086d5 Finish up Ceph OSD removal, add locking to commands 2018-10-30 22:41:44 -04:00
Joshua Boniface 2b115160a2 Use zkhandler for everything; add delete operation 2018-10-27 15:51:52 -04:00
Joshua Boniface 05af23064f Fix name of "ansiiprint" since it's "ANSI" 2018-10-20 15:28:25 -04:00
Joshua Boniface a3f7419124 Handle colouring of network lists when a network is invalid 2018-10-20 15:27:07 -04:00
Joshua Boniface d9d57c015f Remove implicit conversion of nontypes to '' and convert data to string 2018-10-16 23:17:09 -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