Add ability to create disperse volumes.
When having multiple interfaces on a gluster cluster.
It is now possible to probe each interface and facter will return the
other names as well.
Otherwise fater will probe each run
Fixes #124
Update default version from 7.3 to 7.9 the last in the 7.x line.
Updated documents to match default version.
This issue occurs during a creation of new gluster volume. You can try to create gluster volume with these options:
::gluster::volume { $name:
[ ...other options ommitted...]
options => [
"network.ping-timeout: 5",
"storage.owner-uid: 0",
"storage.owner-gid: 0",
],
}
It throws error that Gluster::Volume::Option expects String or Undef as a value:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Gluster::Volume::Option[data:network.ping-timeout]: parameter 'value' expects a value of type Undef or String, got Integer (file: /etc/puppetlabs/code/environments/production/modules/upstream/gluster/manifests/volume.pp, line: 266) on node gluster01.example.com
see #243
Fixes volume remove_options
option as currently it will create duplicated resources (code wants to remove and add one at the same time) and converts internal options handling to use hash instead arrays/yamls.
Currently code is based on #219 to not make rebases specially for indentation.
n/a
This PR provides 2 minor fixes. The first will fix #33 by parsing the xml output of the gluster command. The second one uses ;
instead of ,
as separator for the options in the gluster_volume_#{vol}_options
fact as the comma is already used by some gluster options (e.g. auth.ssl-allow
) as separator. Having such an option in use every puppet run will fail with the following error:
Evaluation Error: Error while evaluating a Function Call, (<unknown>): could not found expected ':' while scanning a simple key at line 13 column 46 at .../gluster/manifests/volume.pp:272:21
<!--
Thank you for contributing to this project!
-->
<!--
Replace this comment with a description of your pull request.
-->
<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->
Checks Gluster volume options against existing values to avoid repeatedly
setting values.
Also adds these types:
+ Gluster::VolumeName
+ Gluster::VolumeOption
And these functions:
+ gluster::cmd_volume_get_option
+ gluster::onoff
This PR converts all custom facts that contain array values from string to structured-facts.
Btw. this PR will conflict with #118 as both are touching line 31 of lib/facts/gluster.rb
. This PR just touches this line as the peer_list
fact is already joined within the "calculation" code and not like for the others in the Facter.add
section. If #118 will be merged first I'll rebase the PR and fix the merge conflict.
prior to this this commit 'release' atribute from 'main' class wasn't passed to sub-classes
construct '! defined Class' provides random results, parser dependable and shouldn't be used
Resolves upstream issue #147
<!--
Thank you for contributing to this project!
-->
Hello,
When creating a volume, existing volume bricks are checked against actual ones.
Problem happens when volume as found from facter is not in the same order as those defined in puppet. Final result is a notice stating that "Notice: unable to resolve brick changes for Gluster volume owncloud!".
This simple PR just changes brick comparison so that it no longer relies on brick order.
Cheers !
modulesync 5.1.0
Fixes #263
<!--
Thank you for contributing to this project!
-->
If the sequence in facts and settings is different exampe:
[ 'gst02:/opt/share', 'gst03:/opt/share', 'gst01:/opt/share'] != [ 'gst01:/opt/share', 'gst02:/opt/share', 'gst03:/opt/share']
but in fact they are equal
<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->
If the peer name in the facts is not the same as in the configuration: #gluster peer status --xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cliOutput>
.........
<peerStatus>
<peer>
.........
<hostname>192.168.0.10</hostname>
<hostnames>
<hostname>192.68.0.10</hostname>
<hostname>gst03</hostname>
</hostnames>
..........
</peer>
<peer>
.........
<hostname>gst02</hostname>
<hostnames>
<hostname>gst02</hostname>
</hostnames>
.........
</peer>
</peerStatus>
</cliOutput>
Then the gluster_peer_list
fact will contain the following line: 192.168.0.10,gst02
and due to the fact that the configuration says gst03 and not IP, the following will always be executed: Notice: /Stage[main]/myclass /Gluster::Peer[gst03]/Exec[gluster peer probe gst03]/returns: executed successfully (corrective)
My edit takes all names from peers /cliOutput/peerStatus/peer/hostnames/hostname the fact string will be:
192.168.0.10,gst03,gst02
and then in line 52 of the manifests/peer.pp file it will find the value. After this, the command gluster peer probe gst03
will not be executed every time
<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->
<!--
Thank you for contributing to this project!
-->
Volume options are stored as comma separated string, the only use from
the gluster module is in volume.pp, there it is converted back to an
array using split(). Some gluster volume options are using commas for
splitting values (e.g. auth.allow), this conflicts with this behaviour.
This change is BREAKING as it will change the output of the glustervolume#{vol}_options fact from a comma separated string to an actual array data type.
As the fact could be used by user implementations it should be marked in the release notes as ACTION REQUIRED.
Fixes #53
Fixes #165
The above issues are addressing this problem and should be solved by #186. We were waiting for #186 to make progress and therefore created this minor change for ourselves.
It seems #186 is a bigger effort to achieve and also has a big impact as it will introduce major changes to the API of the module. Maybe it would be helpful to fix #53 with minor impact and then go on with the bigger effort in #186.
<!--
Thank you for contributing to this project!
-->
<!--
Replace this comment with a description of your pull request.
-->
<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->
Adds support for RHEL 9 based oses-->
modulesync 9.1.0