Commit Graph

1056 Commits

Author SHA1 Message Date
Joshua Boniface 8216125b02 Enable autostart of API client on Primary
Adds a config flag that turns on the API client following the Primary
coordinator. The retcode of the start/stop commands is ignore so this
can fail gracefully if e.g. the client isn't installed.
2019-07-06 02:42:56 -04:00
Joshua Boniface 837b47c366 Use coordinators list like node daemon 2019-07-06 02:35:37 -04:00
Joshua Boniface e6012965f1 Add YAML header to sample config files 2019-07-06 02:24:35 -04:00
Joshua Boniface 9d4acc91a5 Correct typo 2019-07-06 02:12:24 -04:00
Joshua Boniface 582a9f4f75 Make defaults nicer 2019-07-06 02:11:42 -04:00
Joshua Boniface b69754900f Mention WebUI is not done yet 2019-07-06 02:09:59 -04:00
Joshua Boniface c638bdeaee Add configuration file, authentication, pywsgi 2019-07-06 02:04:26 -04:00
Joshua Boniface 4f6d0baf6c Fix bad ZK node entry 2019-07-06 01:42:55 -04:00
Joshua Boniface e4576c016f Move API client filename 2019-07-05 23:26:41 -04:00
Joshua Boniface a480048d36 Add flask dependency to API client 2019-07-05 23:24:27 -04:00
Joshua Boniface f5644e53bf Add unit file for API client daemon 2019-07-05 22:25:07 -04:00
Joshua Boniface 0a96e26bc6 Clean up Debian control and add API package 2019-07-05 22:22:28 -04:00
Joshua Boniface 2ce08b6369 Implement API for Ceph functions 2019-07-05 22:14:58 -04:00
Joshua Boniface 4e94331d1a Implement API for network functions 2019-07-05 21:39:04 -04:00
Joshua Boniface 7d56ecb13d Apply tweak to rule direction handling 2019-07-05 21:38:47 -04:00
Joshua Boniface b7480b3bbc Implement all VM API functions 2019-07-05 18:24:14 -04:00
Joshua Boniface 5ac3d55b8d Always use the passed domain in messages
Don't ever output an ugly UUID unless that's what was actually sent to
the function. Makes output much much nicer, especially on errors.
2019-07-05 16:38:54 -04:00
Joshua Boniface 18520d6c77 Support disabling fuzzy limit matching
Used for the APIs when they filter by name but we don't want a fuzzy
limit since we specified an exact name.
2019-07-05 16:30:20 -04:00
Joshua Boniface dc16f51b2a Fix variable naming bug 2019-07-05 14:18:18 -04:00
Joshua Boniface 061b4eb61e Refactor API into separate files
Make it easier to separate the model (i.e. API endpoints) from the
controller (i.e. the actual functions which talk to ZK). Helps to keep
the main API file smaller and more regular.
2019-07-05 14:11:01 -04:00
Joshua Boniface 6ee3c91a63 Use None instead of all in ceph.py
Make it like other optional args (like direction in net ACLs) and use
None instead of 'all' when specifying any option
2019-07-05 13:59:29 -04:00
Joshua Boniface e31e1264e5 RESTify the API removing specific list endpoints 2019-07-05 13:20:06 -04:00
Joshua Boniface c7269a092e Use request.values instead of request.args 2019-07-05 13:05:33 -04:00
Joshua Boniface 193567f965 Further work on API client
Add list and info endpoints for all areas; add dummy endpoints for all
remaining endpoints.
2019-07-05 01:19:39 -04:00
Joshua Boniface d755a80fe8 Fix bugs with refactoring 2019-07-05 00:44:40 -04:00
Joshua Boniface 80ea54d40f Make bracketing and indenting consistent 2019-07-05 00:32:04 -04:00
Joshua Boniface 82bf8a8406 Remove superfluous comment 2019-07-05 00:30:11 -04:00
Joshua Boniface 84a905b7f0 Refactor ceph client for API 2019-07-05 00:30:03 -04:00
Joshua Boniface 6e2dfc1704 Reorganize file before refactoring
This is the largest of the function files, and unlike the others is
cleanly split into four types. Reorganize the file and function
definitions around those types to make it easier to navigate, and do so
separately before refactoring for API.
2019-07-04 23:09:16 -04:00
Joshua Boniface bcab11ee49 Refactor network.py for API usage 2019-07-04 23:01:22 -04:00
Joshua Boniface b195eb0668 Rename Information get function to match others 2019-07-04 23:00:53 -04:00
Joshua Boniface 8d5549c68f Implement better arg handling and lists 2019-07-04 12:56:41 -04:00
Joshua Boniface 10a0da6fdf Return strings only in extra details 2019-07-04 12:56:41 -04:00
Joshua Boniface 338af97a7a Handle message about wait locks a bit better 2019-06-27 16:20:30 -04:00
Joshua Boniface 1f4b5a6d65 Add little deploy script for testing purposes 2019-06-27 14:37:42 -04:00
Joshua Boniface 77e215b0eb Don't queue flushes without --wait
Don't try to queue up a flush when there is already a flush lock; direct
the user to use --wait (which will actually wait before triggering the
new action), or try again later.
2019-06-27 14:36:58 -04:00
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 3e591bd09e Remove extra whitespaces on blank lines 2019-06-25 22:33:23 -04:00
Joshua Boniface 08cb16bfbc Revamp VM migration handling
This was very old code that was hard to follow and quite fragile, with
failures and infinite loops occurring fairly frequently. These changes
make the code more robust, including the addition of timeouts, some code
cleanup, and some improvements to the logical flow.

Also forces the libvirt migration to occur on the cluster network, which
couples to changes in the libvirtd listen (via pvc-ansible) and in
Daemon.py via the previous commit.
2019-06-25 22:23:48 -04:00
Joshua Boniface d336fce253 Connect to actual IP not localhost for Libvirt 2019-06-25 22:09:32 -04:00
Joshua Boniface 75d0e7f989 Revert "Only perform fencing duties on primary"
This reverts commit 464c69aac6.

Actually, yea, this made sense - if the primary fails, it can't
fence itself.
2019-06-25 12:36:48 -04:00
Joshua Boniface 85a5a8a0c9 Disable tx offloading on bridge interfaces
Reference: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717215#68

Without this, DHCP fails when traversing only the local bridge, for
Debian Jessie or earlier (and possibly other OSes as well), due to the
missing UDP checksums. This disables the offload and hence reenables
the checksums even on the software-only bridge.

Also rearranged the steps and added comments arround this section to
better clarify what each command is doing.
2019-06-25 12:36:37 -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 464c69aac6 Only perform fencing duties on primary
There was really no need for this to be shared among all the
coordinators, which seemed more fragile. This way only the primary will
try to fence dead nodes.
2019-06-24 20:17:51 -04:00
Joshua Boniface 249611b161 Remove duplicate import 2019-06-24 20:14:43 -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