Commit Graph

213 Commits

Author SHA1 Message Date
Joshua Boniface 680c62a6e4 Fix schema path call and version check 2021-06-13 14:46:30 -04:00
Joshua Boniface 88a1d89501 Fix bad key name 2021-06-13 14:29:54 -04:00
Joshua Boniface 7110a42e5f Add final schema elements after refactoring 2021-06-13 14:26:17 -04:00
Joshua Boniface 01c82f5d19 Move backup and restore into common 2021-06-13 14:25:51 -04:00
Joshua Boniface 059230d369 Convert vm.py to new ZK schema handler 2021-06-13 13:41:21 -04:00
Joshua Boniface f6e37906a9 Convert node.py to new ZK schema handler 2021-06-13 13:18:34 -04:00
Joshua Boniface 0a162b304a Convert network.py to new ZK schema handler 2021-06-12 18:40:25 -04:00
Joshua Boniface f071343333 Add DHCP lease schema and temp workaround 2021-06-12 18:22:43 -04:00
Joshua Boniface 01c762a362 Convert common.py to new ZK schema handler 2021-06-12 17:59:09 -04:00
Joshua Boniface 9b1bd8476f Convert cluster.py to new ZK schema handler 2021-06-12 17:11:32 -04:00
Joshua Boniface 6d00ec07b5 Convert ceph.py to new ZK schema handler 2021-06-12 17:09:29 -04:00
Joshua Boniface 247ae4fe2d Fix pre-refactor path bug 2021-06-10 01:18:33 -04:00
Joshua Boniface b1c13c9fc1 Fix another bug with read call 2021-06-10 01:08:18 -04:00
Joshua Boniface 75fc40a1e8 Fix bug with nkipath 2021-06-10 01:00:40 -04:00
Joshua Boniface 2aa7f87ca9 Fix bug in creating child path keys 2021-06-10 00:55:54 -04:00
Joshua Boniface 5273c4ebfa Fix bug with encoding raw creates 2021-06-10 00:52:07 -04:00
Joshua Boniface 8dc9fd6dcb Fix bug with sub self command path/key 2021-06-10 00:49:01 -04:00
Joshua Boniface f030ed974c Correct schema and handling of network subkeys
Required a bit of refactoring in the validation code to ensure we have
direct access, without relying on the translations done in the normal
zkhandler functions.
2021-06-10 00:35:42 -04:00
Joshua Boniface 9985e1dadd Add support for 2-level dynamic keys 2021-06-09 23:52:21 -04:00
Joshua Boniface 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
Joshua Boniface 24663a3333 Add missing VM schema entry 2021-06-09 22:12:24 -04:00
Joshua Boniface a9a57533a7 Integrate schema handling within ZKHandler
Abstracts away the schema management, especially when doing actions, to
prevent duplication in other areas.
2021-06-09 13:23:57 -04:00
Joshua Boniface 76c37e6628 Tweak some field names slightly and add missing 2021-06-09 09:58:18 -04:00
Joshua Boniface 0a04adf8f9 Allow empty sub_paths 2021-06-09 01:54:29 -04:00
Joshua Boniface f2b55ba937 Fix some bugs with migrations 2021-06-09 00:04:16 -04:00
Joshua Boniface 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
Joshua Boniface 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
Joshua Boniface 602dd7b714 Update version 0 schema and add full validation
Addresses #129
2021-06-08 23:35:39 -04:00
Joshua Boniface 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
Joshua Boniface f0dc0fc782 Avoid duplicating maintenance state change
This makes no functional difference, but is technically more correct.
2021-06-05 01:36:40 -04:00
Joshua Boniface 5d88e92acc Avoid returning errors with duplicate router mode
Like the previous (new) flush change, these shouldn't be errors, but
simply information "what you want is already done" messages.
2021-06-05 01:14:31 -04:00
Joshua Boniface 505c109875 Avoid re-flush or re-ready nodes if unnecessary 2021-06-05 01:08:32 -04:00
Joshua Boniface 7dea5d2fac Move logger to common, fix buffering 2021-06-01 18:50:26 -04:00
Joshua Boniface 9764090d6d Merge node common with daemon common 2021-06-01 12:22:11 -04:00
Joshua Boniface f73c433fc7 Remove useless try and import 2021-06-01 12:05:17 -04:00
Joshua Boniface 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
Joshua Boniface 33a54cf7f2 Move configuration keys to /config tree 2021-06-01 10:48:55 -04:00
Joshua Boniface d3b5b5236a Remove transactional delete
This just doesn't work due to the darn limit on recursive deletes in
transactions.
2021-05-31 19:22:01 -04:00
Joshua Boniface 8625e9bd3e Update Delete to recursive method 2021-05-31 03:14:09 -04:00
Joshua Boniface ed4f84a3ec Add log handling and persistent listener 2021-05-31 03:14:09 -04:00
Joshua Boniface 9be426507a Fix erroneous lock calls 2021-05-30 15:31:17 -04:00
Joshua Boniface 58a5b00aa1 Remove extraneous zkhandler reference 2021-05-30 01:01:40 -04:00
Joshua Boniface b4f2cf879e Rework vm library for new zkhandler 2021-05-29 21:17:19 -04:00
Joshua Boniface 3603b782c0 Rework node library for new zkhandler 2021-05-29 20:56:21 -04:00
Joshua Boniface 62cb72b62f Rework network library for new zkhandler 2021-05-29 20:53:42 -04:00
Joshua Boniface b186a75b4e Rework common library for new zkhandler 2021-05-29 20:35:28 -04:00
Joshua Boniface 6205dba451 Rework cluster library for new zkhandler 2021-05-29 20:32:20 -04:00
Joshua Boniface 688d1a6ae2 Rework ceph library for new zkhandler 2021-05-29 20:29:51 -04:00
Joshua Boniface f82da03a62 Add first wrappers and exceptions 2021-05-28 00:19:39 -04:00
Joshua Boniface fef230ad98 Implement class-based version of zkhander 2021-05-27 22:50:00 -04:00
Joshua Boniface f46c2e7f6a Implement VM rename functionality
Closes #125
2021-05-23 17:21:19 -04:00
Joshua Boniface 0bf276fd51 Update copyright year in headers 2021-03-25 17:01:55 -04:00
Joshua Boniface f4ec161aa2 Update file copyright header.
Remove the option to select a later version of the GPL.
2021-03-25 16:58:02 -04:00
Joshua Boniface 8c4c1aba38 Revert "Add object-map to default RBD volume features"
This reverts commit 00e9cca6f0.

This causes RBD mapping to fail on Debian 10. Reverting but keeping in
history for future reference.
2021-02-28 01:57:30 -05:00
Joshua Boniface 00e9cca6f0 Add object-map to default RBD volume features
This allows for much quicker image deletes especially for empty images.
2021-02-17 13:57:28 -05:00
Joshua Boniface ab05e0f3db Add B suffix back to bare bytes values 2021-02-17 11:37:36 -05:00
Joshua Boniface 9291ce6ffc Correct output of fromhuman and add size compare
Ensures that the bytes_tohuman returns an integer to avoid the hacky
workaround of stripping off the B.

Adds a verification on the size of a new volume, that it is not larger
than the free space of the pool to prevent errors/excessively-large
volumes from being created.

Closes #120
2021-02-17 11:27:26 -05:00
Joshua Boniface 0e4bece441 Add missing inc/dec of snapshot_count 2021-02-14 17:02:49 -05:00
Joshua Boniface b33c0ab0e2 Final final fix to snapshot ordering 2021-02-14 16:48:42 -05:00
Joshua Boniface 150c61d226 Actually fix sorting issue 2021-02-14 16:41:59 -05:00
Joshua Boniface 26b0a8b5c1 Fix sorting bug with snapshot list 2021-02-14 16:34:43 -05:00
Joshua Boniface 1b6613c280 Add live VNC information to domain output
Sets in the node daemon, returns via the API, and shows in the CLI,
information about the live VNC listen address and port for VNC-enabled
VMs.

Closes #115
2020-12-20 16:00:55 -05:00
Joshua Boniface f58e95e4c1 Fix bugs in modifying networks
1. Use a consistent "is not None" to verify records are changing.
2. Fix bug where IPv6 network had no remove setter (it is now a blank
string, the first thing I would expect).
3. 1 fixes a bug whereby it was impossible to unset DHCPv4 status.
2020-12-04 04:15:04 -05:00
Joshua Boniface 0f8e5c6536 Add VNI to VM network API list
Saves some processing on API clients.
2020-12-01 04:44:33 -05:00
Joshua Boniface 593810e53e Add volume_count to pool API data 2020-12-01 03:40:41 -05:00
Joshua Boniface 6912bd7a2a Add missing return statement for vm_modify 2020-11-08 00:57:13 -05:00
Joshua Boniface 0bf130077c Lint: W605 invalid escape sequence '<char>'
The previous attempt to correct these with character classes failed.
Instead, use the proper `r'blah'` regex formatting.
2020-11-07 17:41:09 -05:00
Joshua Boniface 3ed97d209f Revert "Lint: W605 invalid escape sequence '\^'"
This reverts commit 639937f9c2.
2020-11-07 17:39:34 -05:00
Joshua Boniface f33398458e Revert "Lint: W605 invalid escape sequence '\$'"
This reverts commit 76b1cafdcc.
2020-11-07 17:38:03 -05:00
Joshua Boniface 78eedf0d2e Remove more dead code 2020-11-07 15:20:36 -05:00
Joshua Boniface 6f66b77a00 Lint: E121/E126 continuation line under/over-indented for hanging indent 2020-11-07 15:06:21 -05:00
Joshua Boniface 9dd2a24ce9 Lint: E226 missing whitespace around arithmetic operator 2020-11-07 14:50:57 -05:00
Joshua Boniface 260b39ebf2 Lint: E302 expected 2 blank lines, found X 2020-11-07 14:45:24 -05:00
Joshua Boniface e9643651f7 Lint: F401 'daemon_lib.ansiprint' imported but unused
Removing further obsolete code from daemon-lib
2020-11-07 13:50:27 -05:00
Joshua Boniface 449f766a2c Lint: F821 undefined name 'zk_conn'
Actually removes these entire sections of dead code; the daemon-common
library does no formatting at all since it is no longer used by the CLI.
2020-11-07 13:45:26 -05:00
Joshua Boniface 99d723dd8b Lint: F821 undefined name 'count' 2020-11-07 13:39:51 -05:00
Joshua Boniface 6cf7f178a6 Lint: F821 undefined name 'time' 2020-11-07 13:38:54 -05:00
Joshua Boniface 145b1531a4 Lint: F821 undefined name 'name' 2020-11-07 13:38:16 -05:00
Joshua Boniface a4823bbb9c Lint: F821 undefined name 'volume' 2020-11-07 13:37:55 -05:00
Joshua Boniface 516e36686c Lint: F821 undefined name 'name' 2020-11-07 13:37:24 -05:00
Joshua Boniface dc1269ffc2 Lint: F821 undefined name 'new_name' 2020-11-07 13:36:56 -05:00
Joshua Boniface 146c969ef7 Lint: F821 undefined name 'logger' 2020-11-07 13:36:28 -05:00
Joshua Boniface f304547ad5 Lint: F821 undefined name 'time' 2020-11-07 13:35:12 -05:00
Joshua Boniface 961ebb4c01 Lint: E305 expected 2 blank lines after class or function definition, found X 2020-11-07 13:17:49 -05:00
Joshua Boniface d2490419c5 Lint: E202 whitespace before ']' 2020-11-07 13:02:54 -05:00
Joshua Boniface d2e5ede399 Lint: E202 whitespace before ')' 2020-11-07 12:58:54 -05:00
Joshua Boniface 3f242cd437 Lint: E202 whitespace before '}' 2020-11-07 12:57:42 -05:00
Joshua Boniface b7daa8e1f6 E201 whitespace after '[' 2020-11-07 12:39:59 -05:00
Joshua Boniface c88965e898 Lint: E201 whitespace after '(' 2020-11-07 12:39:27 -05:00
Joshua Boniface e333f2b935 Lint: E201 whitespace after '{' 2020-11-07 12:38:31 -05:00
Joshua Boniface 6ab261f4cb Lint: E251 unexpected spaces around keyword / parameter equals 2020-11-07 12:11:53 -05:00
Joshua Boniface 5b3ee363b2 Lint: E222 multiple spaces after operator 2020-11-07 12:10:24 -05:00
Joshua Boniface fad27a7f4d Lint: E131 continuation line unaligned for hanging indent 2020-11-06 22:29:49 -05:00
Joshua Boniface 69858788c1 Lint: E227 missing whitespace around bitwise or shift operator 2020-11-06 21:41:10 -05:00
Joshua Boniface 2eef6a1c21 Lint: E265 block comment should start with '# ' 2020-11-06 21:32:17 -05:00
Joshua Boniface 4b47a2424c Lint: E303 too many blank lines (2) 2020-11-06 21:16:52 -05:00
Joshua Boniface cb2defbde9 Lint: W391 blank line at end of file 2020-11-06 21:14:19 -05:00
Joshua Boniface 5da314902f Lint: F841 local variable '<variable>' is assigned to but never used 2020-11-06 21:13:13 -05:00
Joshua Boniface aecb845d6a Lint: E713 test for membership should be 'not in' 2020-11-06 20:37:52 -05:00
Joshua Boniface 72ae149cf1 Lint: E712 comparison to True should be 'if cond is True:' or 'if cond:' 2020-11-06 19:35:19 -05:00