496 Commits

Author SHA1 Message Date
953e46055a Fix issue with loading None version schema 2021-06-14 21:09:55 -04:00
d2bcfe5cf7 Bump version to 0.9.20 2021-06-14 18:06:27 -04:00
ef1701b4c8 Handle an additional exception case 2021-06-14 17:15:40 -04:00
08dc756549 Actually disable the pvcapid service
Prevents it from trying to start itself during updates or reboots on
non-primary coordinators.
2021-06-14 17:13:22 -04:00
0a9c0c1ccb Use a nicer reload method on hot schema update
Instead of exiting and trusting systemd to restart us, instead leverage
the os.execv() call to reload the process in the current PID context.

Also improves the log messages so it's very clear what's going on.
2021-06-14 17:10:21 -04:00
e34a7d4d2a Handle hot reloads properly
A hot reload isn't possible due to DataWatch and ChildrenWatch
constructs, so we instead need to terminate the daemon to "apply" the
schema update. Thus we use exit code 150 (Application defined in LSB)
and reorder some of the elements of the schema validation to ensure
things happen in the right order.
2021-06-14 12:52:43 -04:00
1f49bfa1b2 Fix name of schema element 2021-06-13 20:56:17 -04:00
647bce2a22 Ensure we don't grab None data 2021-06-13 16:43:25 -04:00
26b1f531e9 Fix bad variable interpolation 2021-06-13 14:37:23 -04:00
be9f1e8636 Use more compatible is_alive in thread 2021-06-13 14:36:27 -04:00
b694945010 Fix incorrect name bug 2021-06-10 01:11:14 -04:00
058c2ceef3 Convert VXNetworkInstance to new ZK schema handler 2021-06-10 00:36:18 -04:00
e7d60260a0 Fix typo in CephInstance path 2021-06-10 00:36:02 -04:00
85aba7cc18 Convert VMInstance to new ZK schema handler 2021-06-09 23:15:08 -04:00
7e42118e6f Adjust lock schema in NodeInstance and VMInstance
Removes a superfluous lock and puts the sync_lock keys in more usable
places.
2021-06-09 22:51:00 -04:00
2704badfbe Convert VMConsole... to new ZK schema handler 2021-06-09 22:08:32 -04:00
450bf6b153 Convert NodeInstance to new ZK schema handler 2021-06-09 22:07:32 -04:00
b94fe88405 Convert fencing to new ZK schema handler 2021-06-09 21:29:01 -04:00
610f6e8f2c Convert CephInstance to new ZK schema handler 2021-06-09 21:17:09 -04:00
f913f42a6d Replace schema paths with updated zkhandler 2021-06-09 20:29:42 -04:00
e475552391 Fix some bugs with hot reload 2021-06-09 00:03:26 -04:00
5540bdc86b Add automatic schema upgrade to nodes
Performs an automatic schema upgrade when all nodes are updated to the
latest version.

Addresses #129
2021-06-08 23:35:39 -04:00
3c102b3769 Add per-node schema tracking
This will allow nodes to start with their own schema versions, and then
be updated simultaneously by the API.

References #129
2021-06-08 23:35:39 -04:00
a4aaf89681 Add ZKSchema loading and validation to Daemon
Also removes some previous hack migrations from pre-0.9.19.

Addresses #129
2021-06-08 23:35:39 -04:00
126f0742cd Add Zookeeper schema manager to zkhandler
Adds a new class, ZKSchema, to handle schema management in Zookeeper in
an automated and consistent way. This should solve several issues:

1. Pain in managing changes to ZK keys
2. Pain in handling those changes during live upgrades
3. Simplifying the codebase to remove hardcoded ZK paths

The current master schema for PVC 0.9.19 is committed as version 0.

Addresses #129
2021-06-08 23:35:39 -04:00
5843d8aff4 Fix fence call to findTargetNode 2021-06-08 23:34:49 -04:00
cf96bb009f Bump version to 0.9.19 2021-06-06 01:47:41 -04:00
719954b70b Fix missing list comma 2021-06-06 01:39:43 -04:00
7dea5d2fac Move logger to common, fix buffering 2021-06-01 18:50:26 -04:00
3a5226b893 Add missing flushed output 2021-06-01 18:30:18 -04:00
de2ff2e01b Fix removed function args 2021-06-01 17:02:36 -04:00
cd75413667 Increase initial lock timer
With the new library the reader seems to be a little too quick, so hold
the write lock for 1 second instead of 1/2 second to ensure it is
caught.
2021-06-01 17:00:11 -04:00
9764090d6d Merge node common with daemon common 2021-06-01 12:22:11 -04:00
12ac3686de Convert missed elements to new zkhandler 2021-06-01 11:57:21 -04:00
5740d0f2d5 Remove obsolete zkhandler.py 2021-06-01 11:55:44 -04:00
889f4cdf47 Convert common to new zkhandler 2021-06-01 11:55:32 -04:00
8f66a8d00e Fix missed zkhandler conversion 2021-06-01 11:53:33 -04:00
6beea0693c Convert fencing to new zkhandler 2021-06-01 11:53:21 -04:00
1c9a7a6479 Convert VXNetworkInstance to new zkhandler 2021-06-01 11:49:39 -04:00
790098f181 Convert VMInstance to new zkhandler 2021-06-01 11:46:27 -04:00
8a4a41e092 Convert NodeInstance to new zkhandler 2021-06-01 11:27:35 -04:00
a48bf2d71e More gracefully handle none selectors
Allow selection of "none" as the node selector, and handle this by
always using the cluster default instead of writing it in.
2021-06-01 11:13:13 -04:00
a0b9087167 Set Daemon migration selector in zookeeper 2021-06-01 10:52:41 -04:00
33a54cf7f2 Move configuration keys to /config tree 2021-06-01 10:48:55 -04:00
d6a8cf9780 Convert MetadataAPIInstance to new zkhandler 2021-05-31 19:55:09 -04:00
abd619a3c1 Convert DNSAggregatorInstance to new zkhandler 2021-05-31 19:55:01 -04:00
ef5fe78125 Convert CepnInstance to new zkhandler 2021-05-31 19:51:27 -04:00
f6d0e89568 Properly add absent node type 2021-05-31 19:26:27 -04:00
ede3e88cd7 Modify node daemon root to use updated zkhandler 2021-05-31 03:14:09 -04:00
c23a53d082 Add daemon_lib symlink to pvcnoded 2021-05-30 00:00:07 -04:00