Usage of GlusterFS states did not change except the state 'created' was deprecated in favor of more descriptive name 'volume_present'.
- Improved separation of functionality in the execution module from the states. Module functions now return booleans instead of varying
strings. Parsing those strings in the states was very error-prone. In glusterfs.peer() function this problem was earlier solved by returning
a dict containing both the exit value and output string of the gluster call. This could be a good idea, although without calling the gluster
calls twice, and applied to other functios too.
- Calls to gluster are now logged more verbosely, while a failing call no longer raises an immediate exception.
- Improved checking and verbosity in the state level. Cleaned code a lot, removed some bugs and other odd behaviour.
- Updated tests to match the changes. Refactored some test code to be more readable. Added assertions to test that some functions are not
called when things are already in the desired state. Preferred changing behaviour of the mocked functions while proceeding instead of listing
all of the return values first.
- Replaced glusterfs.list_peers() with more informative peer_status() and deprecated the old name. The function now returns a dict with UUIDs as its keys.
- glusterfs.info() can now be called without volume name. It always returns a dictionary. Use this function instead of status() in sates.
- Functions glusterfs.delete() and glusterfs.create() were deprecated and renamed to delete_volume() and create_volume().
Reworked the test structure design for the gluster module and state so I
could create a test that mimiced the behavior difference between 3.7 and
prior versions when reverse probing by ip a server that already exists.
Added the additional data given by gluster 3.7 to the output of
glusterfs.list_peers to allow us to compare a requested peering against
a host's aliases.
Fixes#30932
The gluster cli has the option to produce xml output from most every
command, and to avoid pausing for questions when being run in script
mode. Make use of that capability and avoid scraping text output that is
often subject to change between versions.
This should help future-proof this module as any changes to the xml
output should be automatically integrated.
As part of this change, I added a glusterfs.info function and added the
force keywords to volume start and volume stop.
Fixes#30051