This series allows the API to handle all 8 possible links that corosync 3 supports. Additional verifications are added to support a smarter fallback behaviour and abort join if the current cluster config is invalid or unsupported.
verify_conf is not just nice-to-have, but required for patch 3 since it assumes all nodes to have the same links for the join verification to work. API/Backend only, frontend works with patched backend, but will not see any links other than 0 and 1. Last patch introduces a new join-API version concept, allowing to explicitly mark versions as incompatible during pre-join checks (roughly follows the storage plugin's API_AGE concept). This is also used to ensure compatibility between nodes that have this series applied, and ones that don't, in both directions (as joinee/cluster). v2 -> v3: * fix nits from Thomas' review (no more multi-line post-ifs ;) ) * fix fallback behaviour with single link specified and no new_node_ip * add helper for parsing ringX_addr entries * only add 'new_node_ip' parameters after introducing the join API to avoid breakage * improve error messages for verification and join API incompatibilities * document 'apiversion' return code better * add 'apiver' CLI call and use to verify version on SSH join * dropped 'IP check on cluster create' patch (previously 4/5) for now - was really tricky to rebase to the front, so I'll just send it seperately together with another semi-related minor change v1 -> v2: * improve verify_conf and related error/warning handling (changes from Fabians review) * rename MAX_LINK_COUNT -> MAX_LINK_INDEX * improve testing for verify_conf * fix \n usage in patch 4 (previously patch 5) * swapped path 4 <=> 5 to put API-version last, since technically optional and probably more discussion-worthy ;) * changed join-API concept to include two API ages (see patch 5 for more) - as discussed off-list with Thomas * rebase on master cluster: Stefan Reiter (4): corosync: add verify_conf Enable support for up to 8 corosync links Add verification and fallback to cluster join/addnode Add cluster join API version check data/PVE/API2/ClusterConfig.pm | 181 ++++++++++++++++++++++----- data/PVE/CLI/pvecm.pm | 48 +++++-- data/PVE/Cluster/Setup.pm | 71 +++++++++-- data/PVE/Corosync.pm | 200 ++++++++++++++++++++++++++---- data/test/corosync_parser_test.pl | 29 +++++ 5 files changed, 448 insertions(+), 81 deletions(-) -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel