1405 Commits

Author SHA1 Message Date
75d95bbef7 Fix minor bugs 2019-10-12 02:03:23 -04:00
18fc49fc6c Use node instead of hypervisor consistently 2019-10-12 01:59:08 -04:00
0763bd2d51 Fix minor bugs 2019-10-12 01:55:37 -04:00
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
8dc0c8f0ac Fix minor bugs 2019-10-12 01:36:50 -04:00
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
94501f400f Remove vm add command
This is likely not going to be used with the planned implementation of
the automatic provisioning daemon, which will be either an API client or
direct Python binding client.
2019-10-11 23:52:20 -04:00
aaf9f5e43b Add clone volume to API 2019-10-10 14:37:35 -04:00
6c9b49d7cd Add clone volume command to CLI 2019-10-10 14:11:13 -04:00
f6b40911f8 Revert "Add base CLI for deploy section"
This reverts commit ed43c70f61b6c2de4cd1b3b4c33a99ff8c9e2ee0.
2019-10-10 14:09:40 -04:00
1c44a1a26e Revert "Add base CLI for deploy image section"
This reverts commit f918058e6ec3dd72a2a2f1857d013de1aaac751a.
2019-10-10 14:09:33 -04:00
76e6b42389 Add clone_volume backend command 2019-10-10 14:09:07 -04:00
b0175eafcb Fix bug in output 2019-09-27 11:25:36 -04:00
63cf90b23d Add Python header to ceph.py 2019-09-26 14:07:52 -04:00
f918058e6e Add base CLI for deploy image section 2019-09-09 10:57:36 -04:00
3942f21f11 Build with sudo too, if needed 2019-09-07 12:32:21 -04:00
0c9d6db14f Gracefully handle log following output
If the Zookeeper node goes away (e.g. VM is deleted), return a
reasonable error message instead of a stack trace.
2019-09-07 12:30:31 -04:00
983daceaed Fix shutdown abort during restart
Restart state, being different from shutdown, would trigger an abort of
the shutdown. Fix this by including restart in the valid states to
continue.
2019-09-07 12:08:31 -04:00
ed43c70f61 Add base CLI for deploy section 2019-08-25 21:18:33 -04:00
5158cec0ec Implement configurable replcfg (documentation)
Implements administrator-selectable replication configurations for new
pools in PVC clusters, overriding the default of copies=3,mincopies=2.
2019-08-23 22:14:28 -04:00
7c4d18691a Implement configurable replcfg (node-side)
Implements administrator-selectable replication configurations for new
pools in PVC clusters, overriding the default of copies=3,mincopies=2.
2019-08-23 21:58:54 -04:00
3b7c1adf71 Implement configurable replcfg (client-side)
Implements administrator-selectable replication configurations for new
pools in PVC clusters, overriding the default of copies=3,mincopies=2.
2019-08-23 14:12:15 -04:00
0bacae21d7 Correct artifact location 2019-08-20 09:40:18 -04:00
9bee1ac94c Correct typo 2019-08-20 09:37:36 -04:00
268fbd10e7 Fix call to build-deb.sh 2019-08-20 09:36:38 -04:00
d938bcd44c Use in-repo build-deb script in CI 2019-08-20 09:24:47 -04:00
5876f4589b Add little easter egg to the init command
Because who doesn't like David Wilcox?
2019-08-20 09:19:56 -04:00
53ab6969a4 Update CI to 0.5 2019-08-13 11:31:15 -04:00
267a3d16e5 Bump version to 0.5 v0.5 2019-08-08 20:56:27 -04:00
795ca0777c Update README badges 2019-08-08 20:48:28 -04:00
48764f2e70 Correct spelling in all documentation 2019-08-08 20:36:25 -04:00
427ef9454a Use dash in flush-locks command 2019-08-07 17:50:25 -04:00
2880a761c0 Move Ceph command pipe to new location
Matching the new /cmd/domain pipe, move Ceph pipe to /cmd/ceph.
2019-08-07 14:47:27 -04:00
ea2426fa73 Implement additional functions
1. VM state
2. VM node
3. Lock flush
2019-08-07 14:46:20 -04:00
b7546e3711 Fix bugs in command pipeline for VMs 2019-08-07 14:13:01 -04:00
0ff2d7d537 Use shlex for command splitting
This will preserve quoted strings, required for the rbd lock commands.
2019-08-07 14:02:57 -04:00
a2a630f6a0 Add pipeline for VM lock flush cmd 2019-08-07 13:49:33 -04:00
d63d9637a5 Add flush_locks command to CLI client 2019-08-07 13:42:01 -04:00
43756fc62b Implement lock flush function for clients
Uses a similar command pathway as the Ceph commands do, but in a
different location (pending move of the Ceph commands to a similar
location).
2019-08-07 13:38:49 -04:00
496216321e Move lock flushing to VMInstance
Prepares for reuse of this function via client commands.
2019-08-07 13:36:56 -04:00
fac02f8520 Add hosts element to Ansible doc 2019-08-07 12:50:03 -04:00
0446b2db02 Catch exceptions if Patroni is not up 2019-08-07 11:46:58 -04:00
7e77752ce5 Add limit to Patroni switchover attempts 2019-08-07 11:46:42 -04:00
33a963c2af Improve fence output on failure and increase delay 2019-08-07 11:35:49 -04:00
e92a57606d Use better forceful arping command
Send ARP responses with the source IP in it to force update even if the
old primary did not cleanly terminate (during fencing for instance).
2019-08-07 11:29:38 -04:00
ef3b6b3723 Arping 3 times instead of 2
During fence 2 is not always enough for the network to recognize the
change in primary coordinator.
2019-08-07 11:15:36 -04:00
b8d336423e Add basic testing procedures to manual 2019-08-07 11:07:05 -04:00
3b27a88128 Allow abort of shutdown state
Adds some logic to allow an active shutdown state to be aborted by
changing the VM to another state. Useful mostly if a VM is doing funky
things and not responding to the shutdown, but the administrator either
doesn't want to wait for the timer to expire (forcing an immediate
termination) or wishes to abort the shutdown attempt.

Fixes #49
2019-08-07 10:58:18 -04:00
e2ae58b62c Add the missing newline to the string compare 2019-08-04 17:00:33 -04:00
d0d5ab4425 Fix bug if the switchover target is the same 2019-08-04 16:51:11 -04:00