|
|
|
@ -114,6 +114,19 @@ options:
|
|
|
|
|
- "If I(True) enables fencing on the cluster."
|
|
|
|
|
- "Fencing is enabled by default."
|
|
|
|
|
type: bool
|
|
|
|
|
fence_skip_if_gluster_bricks_up:
|
|
|
|
|
description:
|
|
|
|
|
- "A flag indicating if fencing should be skipped if Gluster bricks are up and running in the host being fenced."
|
|
|
|
|
- "This flag is optional, and the default value is `false`."
|
|
|
|
|
type: bool
|
|
|
|
|
version_added: "2.8"
|
|
|
|
|
fence_skip_if_gluster_quorum_not_met:
|
|
|
|
|
description:
|
|
|
|
|
- "A flag indicating if fencing should be skipped if Gluster bricks are up and running and Gluster quorum will not
|
|
|
|
|
be met without those bricks."
|
|
|
|
|
- "This flag is optional, and the default value is `false`."
|
|
|
|
|
type: bool
|
|
|
|
|
version_added: "2.8"
|
|
|
|
|
fence_skip_if_sd_active:
|
|
|
|
|
description:
|
|
|
|
|
- "If I(True) any hosts in the cluster that are Non Responsive
|
|
|
|
@ -458,6 +471,8 @@ class ClustersModule(BaseModule):
|
|
|
|
|
) if self.param('resilience_policy') else None,
|
|
|
|
|
fencing_policy=otypes.FencingPolicy(
|
|
|
|
|
enabled=self.param('fence_enabled'),
|
|
|
|
|
skip_if_gluster_bricks_up=self.param('fence_skip_if_gluster_bricks_up'),
|
|
|
|
|
skip_if_gluster_quorum_not_met=self.param('fence_skip_if_gluster_quorum_not_met'),
|
|
|
|
|
skip_if_connectivity_broken=otypes.SkipIfConnectivityBroken(
|
|
|
|
|
enabled=self.param('fence_skip_if_connectivity_broken'),
|
|
|
|
|
threshold=self.param('fence_connectivity_threshold'),
|
|
|
|
@ -472,6 +487,8 @@ class ClustersModule(BaseModule):
|
|
|
|
|
self.param('fence_enabled') is not None or
|
|
|
|
|
self.param('fence_skip_if_sd_active') is not None or
|
|
|
|
|
self.param('fence_skip_if_connectivity_broken') is not None or
|
|
|
|
|
self.param('fence_skip_if_gluster_bricks_up') is not None or
|
|
|
|
|
self.param('fence_skip_if_gluster_quorum_not_met') is not None or
|
|
|
|
|
self.param('fence_connectivity_threshold') is not None
|
|
|
|
|
) else None,
|
|
|
|
|
display=otypes.Display(
|
|
|
|
@ -584,6 +601,8 @@ class ClustersModule(BaseModule):
|
|
|
|
|
equal(self.param('vm_reason'), entity.optional_reason) and
|
|
|
|
|
equal(self.param('spice_proxy'), getattr(entity.display, 'proxy', None)) and
|
|
|
|
|
equal(self.param('fence_enabled'), entity.fencing_policy.enabled) and
|
|
|
|
|
equal(self.param('fence_skip_if_gluster_bricks_up'), entity.fencing_policy.skip_if_gluster_bricks_up) and
|
|
|
|
|
equal(self.param('fence_skip_if_gluster_quorum_not_met'), entity.fencing_policy.skip_if_gluster_quorum_not_met) and
|
|
|
|
|
equal(self.param('fence_skip_if_sd_active'), entity.fencing_policy.skip_if_sd_active.enabled) and
|
|
|
|
|
equal(self.param('fence_skip_if_connectivity_broken'), entity.fencing_policy.skip_if_connectivity_broken.enabled) and
|
|
|
|
|
equal(self.param('fence_connectivity_threshold'), entity.fencing_policy.skip_if_connectivity_broken.threshold) and
|
|
|
|
@ -638,6 +657,8 @@ def main():
|
|
|
|
|
rng_sources=dict(default=None, type='list'),
|
|
|
|
|
spice_proxy=dict(default=None),
|
|
|
|
|
fence_enabled=dict(default=None, type='bool'),
|
|
|
|
|
fence_skip_if_gluster_bricks_up=dict(default=None, type='bool'),
|
|
|
|
|
fence_skip_if_gluster_quorum_not_met=dict(default=None, type='bool'),
|
|
|
|
|
fence_skip_if_sd_active=dict(default=None, type='bool'),
|
|
|
|
|
fence_skip_if_connectivity_broken=dict(default=None, type='bool'),
|
|
|
|
|
fence_connectivity_threshold=dict(default=None, type='int'),
|
|
|
|
|