1305 Commits

Author SHA1 Message Date
60ffe534a1 Add proper (local) URL to swagger docs 2019-12-23 21:06:08 -05:00
05f08a714a Update link to API reference document 2019-12-23 20:59:46 -05:00
14b811e3c7 Rename API reference page 2019-12-23 20:59:24 -05:00
1d59453252 API documentation page cleanup 2019-12-23 20:58:20 -05:00
57127d2fa8 Move gen-doc helper script 2019-12-23 20:51:44 -05:00
fd4f033a04 Update return from initialize 2019-12-23 20:51:18 -05:00
9076208a92 Fix missing code end block 2019-12-23 20:47:01 -05:00
e6a8ed0734 Replace in-markdown API docs with Swagger 2019-12-23 20:45:30 -05:00
a6683d5b17 Rebuild API using Flask-RESTful and Swagger docs 2019-12-23 20:43:20 -05:00
91cb542e37 Make sure ACLs are name-unique in both directions 2019-12-22 22:33:26 -05:00
66078223a4 Fix several bugs 2019-12-22 22:28:34 -05:00
de8c79755b Add documentation about the provisioner API 2019-12-19 23:44:10 -05:00
eecc07b731 Depend daemons on systemd
Numerous parts of PVC call systemctl commands or otherwise require a
functioning systemd-based system. Make the dependencies explicitly
reflect this.
2019-12-19 19:04:25 -05:00
a66b834ae4 Fix several small bugs 2019-12-19 18:58:53 -05:00
b17b7bf22b Add black magic to minimize ping losses
This particular arping interval/count, along with forcing it to run in
the foreground, seems to minimize the packet loss when the primary
coordinator transitions. Through extensive testing, this value results
in the, consistently, least amount of loss: 1-2 pings, at an 0.025s ping
interval, return "TTL exceeded", with no other loss, and only when the
node the test VM is on is the one switching to secondary state. No other
combination of values here, nor tweaks to other parts of the code, seem
able to reduce this further, therefore this is likely the best
configuration possible.
2019-12-19 18:57:32 -05:00
2fe808f812 Make this even nicer 2019-12-19 13:29:15 -05:00
7901ffb5e3 Handle the list of node_limits even better 2019-12-19 13:22:38 -05:00
684499cce3 Better handle list elements when defining VM 2019-12-19 12:08:44 -05:00
796fa4692f Pass remaining required args to vm_define 2019-12-19 11:53:24 -05:00
78089afb4e Remove spurious argument to vm_define 2019-12-19 11:43:59 -05:00
2d14fabe62 Don't throw exception while defining new VM
This would throw an exception since we tried to find the current host of
a VM that did not exist yet. If this happens, just get None.
2019-12-19 11:30:13 -05:00
8c252aeecc Implemented coordinated locked node transitions
The previous method was a "throw it in the sea"-type migration with some
(very arbitrary) sleep statements thrown in for good measure.
Reimplement this with some hard locking. During each phase of the
transition, the nodes acquire read/write shared locks to a Zookeeper key
so that they can tightly coordinate the actions of transferring each
part of the primary state between them. This is done in a subthread to
prevent strange blocking issues that were encountered, likely due to
business in the existing main thread.
2019-12-19 10:56:34 -05:00
0841ddf8b0 Handle integrity errors in DNS aggregator 2019-12-19 10:45:06 -05:00
98764f1edd Clean up some aspects of node switchover 2019-12-18 21:39:40 -05:00
23188199cb Handle failing Patroni events more gracefully 2019-12-18 21:12:22 -05:00
669a8fbacd Clean up pycache files before (re)installing 2019-12-18 18:39:03 -05:00
2b1b78622e Fix invalid arping option
It made little difference and didn't error, but was incorrect.
2019-12-18 12:06:40 -05:00
5eec3e99f8 Lower delay during build-and-deploy 2019-12-18 11:56:50 -05:00
355e16e23a Add missing dependencies 2019-12-18 11:56:22 -05:00
364ab10673 Add slight delay when stopping the metadata API 2019-12-18 11:56:04 -05:00
39c9f911cc Increase arping interval to 0.2s 2019-12-15 14:55:34 -05:00
2b5c134970 Add missing distutils dep 2019-12-15 13:53:22 -05:00
686af31c08 Reduce arping interval to 0.1s 2019-12-15 12:30:45 -05:00
0a94fac407 Fix bugs around passing master
Was not passing properly and getting stuck sometimes, so modify the
checking and route creation a bit to prevent it. Seems to work.
2019-12-15 00:08:18 -05:00
8202d7e64b Make output a little nicer 2019-12-14 16:56:33 -05:00
292c2d9a44 Install newly moved schema file 2019-12-14 16:52:09 -05:00
41479edc3d Remove separated provisioner 2019-12-14 16:47:46 -05:00
a2b30158f8 Move schema file 2019-12-14 16:47:32 -05:00
b3e21a5bf8 Integrate metadata API into node daemon 2019-12-14 16:41:01 -05:00
8c36e7618a Modify node daemon to follow API 2019-12-14 14:13:26 -05:00
0727a7f6ed Move all provisioner API functionality into main 2019-12-14 14:12:55 -05:00
45dbc0eef8 Merge branch 'provisioner' into 'master'
Implement Provisioner daemon

Closes #56 and #22

See merge request parallelvirtualcluster/pvc!1
2019-12-13 15:05:57 -05:00
c0757405bc Increase delay in deploy 2019-12-13 00:06:37 -05:00
78f053d81f Recreate network in aggregator if DNS changes 2019-12-13 00:03:47 -05:00
0a8dd30a48 Restart dnsmasq when network details change 2019-12-12 23:51:22 -05:00
6fa828e721 Don't stop the provisioner worker
It should probably just be running on all nodes all the time already,
but is started when a node first becomes primary.
2019-12-12 23:08:02 -05:00
c1b6ce0ff7 Reorder starting clients 2019-12-12 23:03:34 -05:00
b854d53fab Add API management to node daemon 2019-12-12 22:59:07 -05:00
22ae087836 Add examples to deb install 2019-12-12 22:52:12 -05:00
f5fb741dad Unify the APIs 2019-12-12 22:50:42 -05:00