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
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
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
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
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
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
80de40252b
Add shutdown colour to output
2019-06-19 14:28:04 -04:00
Joshua Boniface
39a45a1e0f
Fix bug with daemon_state
2019-06-19 14:19:00 -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
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
98365b0fcf
Correct bugs around snapshots
2019-06-19 09:41:33 -04:00
Joshua Boniface
a4ab3075ab
Correct some bugs around new code
2019-06-19 00:23:25 -04:00
Joshua Boniface
01959cb9e3
Implementation of RBD volumes and snapshots
...
Adds the ability to manage RBD volumes (add/remove) and RBD
snapshots (add/remove). (Working) list functions to come.
2019-06-19 00:12:44 -04:00
Joshua Boniface
b50b2a827b
Add forced delays after pool add/remove
...
Prevents returning immediately to give the cluster some breathing
room before the admin can do other commands. Keep the write lock
as well to prevent other clients from attempting this as well.
2019-06-18 21:56:24 -04:00
Joshua Boniface
ee73676114
Fix bug with pool removal
2019-06-18 21:51:11 -04:00
Joshua Boniface
3ba3c339a7
Show vCPU count on CLI output
...
Showing the static, total number of CPUs was pointless. Instead,
show the number of allocated vCPUs. To preserve space, no longer
show the host CPU count in the list.
2019-06-02 22:30:26 -04:00
Joshua Boniface
b9774bdf03
Increase wait sleeps in node flush/unflush
2019-05-26 23:21:01 -04:00
Joshua Boniface
6fd4710f7f
Remove bad replacement
2019-05-21 19:51:23 -04:00
Joshua Boniface
79d0a2eafc
Handle raw sorting properly with new list format
2019-05-21 14:44:45 -04:00
Joshua Boniface
73443ecbaf
Update vm.py to allow API use
2019-05-20 22:15:28 -04:00
Joshua Boniface
91ea96b772
Actually send wait for unflush
2019-05-11 00:16:38 -04:00
Joshua Boniface
62a71af46e
Implement locking for unflush as well
...
References #32
2019-05-11 00:13:03 -04:00
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