Joshua Boniface
c19902d952
Implement flush locking for nodes
...
Implements a locking mechanism to prevent clobbering of node
flushes. When a flush begins, a global cluster lock is placed
which is freed once the flush completes. While the lock is in place,
other flush events queue waiting for the lock to free before
proceeding.
Modifies the CLI output flow when the `--wait` option is specified.
First, if a lock exists when running the command, the message is
tweaked to indicate this, and the client will wait first for the
lock to free, and then for the flush as normal. Second, the wait
depends on the active lock rather than the domain_status for
consistency purposes.
Closes #32
2019-05-10 23:52:24 -04:00
Joshua Boniface
045ad131af
Update node.py to allow API use
...
Addresses #33
2019-05-10 23:27:34 -04:00
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
1126382ac9
Initial API including fixes to common functons
...
Some functions were doing `click.echo` inside themselves; don't
do that as it's not API compatible, just return everything.
2019-03-21 11:19:28 -04:00
Joshua Boniface
9f0d7c5bf8
Support VM list filtering by state
2019-03-20 11:31:54 -04:00
Joshua Boniface
eec14ff177
Don't set unmigrated VMs to start
2019-03-20 10:19:01 -04:00
Joshua Boniface
15c832650d
Don't block stopping on non-start state
2019-03-16 23:32:13 -04:00
Joshua Boniface
946442ae38
Add support for bridge-only VNIs
2019-03-15 13:54:11 -04:00
Joshua Boniface
318a2353ea
Fix missing format key on delete
2019-03-15 01:13:03 -04:00
Joshua Boniface
36ac20e5a7
Increase state length width
2019-03-13 20:28:33 -04:00
Joshua Boniface
df394c5c39
Handle regex in a more consistent way
2019-03-12 23:52:59 -04:00
Joshua Boniface
1180a4c88e
Remove debug
2019-03-12 21:46:30 -04:00
Joshua Boniface
abbc361520
Sort the names properly
2019-03-12 21:46:09 -04:00
Joshua Boniface
d6b554e88e
Move the output to a better place;
2019-03-12 21:40:52 -04:00
Joshua Boniface
eb087a26e7
Deleted the wrong line
2019-03-12 21:39:17 -04:00
Joshua Boniface
2e187ae032
But sort it right
2019-03-12 21:38:22 -04:00
Joshua Boniface
717e518deb
List names instead of UUIDs
2019-03-12 21:35:33 -04:00
Joshua Boniface
c4a97f04a7
Support raw VM listing
2019-03-12 21:30:01 -04:00
Joshua Boniface
081d855a03
Allow dumping of VMs
2019-03-12 21:09:54 -04:00
Joshua Boniface
a6806ad5e0
Change router state name to coordinator
2018-11-18 20:00:40 -05:00
Joshua Boniface
f0030ee5ed
Handle network printing with cluster net
2018-11-18 17:57:58 -05:00
Joshua Boniface
b1d0b6e62f
Fix up the remaining DHCPv6 setup
2018-11-18 00:55:34 -05:00
Joshua Boniface
4c1e1b4622
Make everything work with dual-stack
2018-11-14 00:26:52 -05:00
Joshua Boniface
6fe06c31bb
Support more IPv6 stuff including list and info updates
2018-11-13 01:45:18 -05:00
Joshua Boniface
720469d389
Standardize the layout of lists (dynamic fields)
2018-11-02 00:42:44 -04:00
Joshua Boniface
2c2208ab07
Tweak some output formatting in lists
2018-11-01 23:24:38 -04:00
Joshua Boniface
a2f4102cb5
Add crush weight and reweight output
2018-11-01 23:17:38 -04:00
Joshua Boniface
9fcce4b09a
Support setting a CRUSH weight on new OSDs
2018-11-01 23:03:27 -04:00
Joshua Boniface
2ea8a14ba4
Support OSD out/in and commands
2018-11-01 22:08:11 -04:00
Joshua Boniface
41bedbae3c
Verify the pool exists before removing it
2018-11-01 19:55:13 -04:00
Joshua Boniface
99fcb21e3b
Support adding and removing Ceph pools
2018-10-31 23:38:17 -04:00
Joshua Boniface
922a3a9ee1
Actually remove the command data
2018-10-30 22:44:41 -04:00
Joshua Boniface
3e4a6086d5
Finish up Ceph OSD removal, add locking to commands
2018-10-30 22:41:44 -04:00
Joshua Boniface
9a271bda0a
Add OSD list function
2018-10-30 09:17:32 -04:00
Joshua Boniface
bfbe9188ce
Finish setup of Ceph OSD addition and basic management
2018-10-29 17:51:25 -04:00
Joshua Boniface
7f18c99172
Add OSD add and OSD remove commands
2018-10-28 22:15:25 -04:00
Joshua Boniface
3025772e6d
Fix bug in vni lists
2018-10-28 18:13:28 -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
59219c4e97
Increase domain state length
2018-10-21 22:10:13 -04:00
Joshua Boniface
2de65e514f
Add missing common call
2018-10-21 22:10:05 -04:00
Joshua Boniface
d464bf74da
Increase width of daemon_state line
2018-10-21 15:19:24 -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
187a572c13
Make a whole bunch of things work
2018-10-17 20:05:22 -04:00
Joshua Boniface
c726865b89
Support writing ACLs
2018-10-17 00:23:27 -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
49d5b60f15
Remove superfluous Hypervisor mention
2018-10-14 02:47:30 -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
Joshua Boniface
d1ef073a8e
Correct deletion of reservations
2018-10-03 23:53:33 -04:00
Joshua Boniface
717d1a9045
Fix up handling of reservations in the client
2018-10-03 23:16:31 -04:00
Joshua Boniface
a6f7986b87
Update network modify with new add flags
2018-10-03 20:24:54 -04:00
Joshua Boniface
503680d5b2
Add better handling of listing leases and handling static reservations
2018-10-03 19:23:46 -04:00
Joshua Boniface
15ded04680
Make that wording more consistent
2018-10-02 00:14:08 -04:00
Joshua Boniface
3302088f34
Add nicer client handling of DHCP leases
2018-10-02 00:02:23 -04:00
Joshua Boniface
1483db3c2d
Allow secondary routers again and handle them better
...
This reverts commit 07a6ef0fba
.
2018-09-30 18:16:27 -04:00
Joshua Boniface
07a6ef0fba
Remove ability for client to set router secondary (must always set
...
primary)
2018-09-30 16:35:57 -04:00
Joshua Boniface
4d350ced7e
Some major tweaks to make DHCP reservations work with the server
2018-09-30 12:43:56 -04:00
Joshua Boniface
3775edf415
Fold reservations into leases DB
2018-09-30 11:22:25 -04:00
Joshua Boniface
ec868b50f4
Another slight client tweak
2018-09-29 02:59:00 -04:00
Joshua Boniface
46446f11fc
Slight output tweak
2018-09-29 02:56:36 -04:00
Joshua Boniface
15f26f9fa3
Support adding the DHCP range with the client
2018-09-29 02:54:48 -04:00
Joshua Boniface
560fa57176
Make use of router primary write key in client too
2018-09-29 02:00:07 -04:00
Joshua Boniface
63d48a3821
Support domain names in networks
2018-09-28 20:50:55 -04:00
Joshua Boniface
5d35adb4fc
Support DHCP reservations in networks on client side
2018-09-28 20:32:15 -04:00
Joshua Boniface
c66a83e6c5
Fix bug obtaining VM list
2018-09-28 20:31:45 -04:00
Joshua Boniface
b6eeb5c264
Fix up some bugs in kv handling
2018-09-28 19:34:35 -04:00
Joshua Boniface
2fda346f9b
Improved rewrite of zkhandler.writedata to allow for creation
2018-09-28 16:14:31 -04:00
Joshua Boniface
2d5078cbd6
Add a bit of colour to network output
2018-09-25 13:58:52 -04:00
Joshua Boniface
1c9c63db92
Fix some problems with modify command after split
2018-09-25 02:32:08 -04:00
Joshua Boniface
9107e16c33
Add getDomainName to vm functions
2018-09-25 02:26:37 -04:00
Joshua Boniface
7daed1b0d8
Improve limit handling
2018-09-25 02:20:32 -04:00
Joshua Boniface
615169cd69
Properly support limit
2018-09-25 01:52:05 -04:00
Joshua Boniface
e5f81b26bf
Remove spurious ZKConnection call
2018-09-25 01:47:18 -04:00
Joshua Boniface
2813fda06c
Fix up call
2018-09-25 01:32:52 -04:00
Joshua Boniface
98d9c4d70b
Revert "Remove gratuitous long_output"
...
This reverts commit 97cd90ce88
.
2018-09-25 01:32:03 -04:00
Joshua Boniface
97cd90ce88
Remove gratuitous long_output
2018-09-25 01:23:57 -04:00
Joshua Boniface
54541c991c
Remove routers config from networks as not needed
2018-09-25 01:19:56 -04:00
Joshua Boniface
bc3cdd67c9
Fix output in router.py
2018-09-24 15:22:46 -04:00
Joshua Boniface
744e9cab4d
Support handling routers
2018-09-24 15:10:12 -04:00
Joshua Boniface
efc8cf3cef
Fix up some small bugs
2018-09-24 14:50:54 -04:00
Joshua Boniface
93b25ddd5b
Finish up network interface
2018-09-23 15:26:20 -04:00
Joshua Boniface
85d6e02ed2
Fix some bugs
2018-09-23 01:05:54 -04:00
Joshua Boniface
6dfb9d8539
Import verifyNode properly
2018-09-23 00:58:58 -04:00
Joshua Boniface
6aa1693de2
Missing module from function call
2018-09-21 23:46:07 -04:00
Joshua Boniface
8f59995af4
Simplify VM delete with recursive operation
2018-09-21 01:52:51 -04:00
Joshua Boniface
fc0465d112
Correct several bugs from refactor
2018-09-20 11:20:23 -04:00
Joshua Boniface
461183a371
Fix changed variable name
2018-09-20 03:46:05 -04:00
Joshua Boniface
513de96626
Major refactor to separate out and standardize libraries
2018-09-20 03:43:34 -04:00
Joshua Boniface
c9258edcad
Refactor CLI client to split out actual functions for reuse
2018-09-20 03:25:58 -04:00