mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-24 19:31:26 -07:00
Applying ModuleHelper variable mgmt to xfconf -> improvements on MH (#2188)
* applying MH variable mgmt to xfconf - improvements on MH * added changelog fragment
This commit is contained in:
parent
9a5191d1f9
commit
9aec9b502e
4 changed files with 48 additions and 44 deletions
|
@ -143,10 +143,7 @@ def values_fmt(values, value_types):
|
|||
for value, value_type in zip(values, value_types):
|
||||
if value_type == 'bool':
|
||||
value = fix_bool(value)
|
||||
result.append('--type')
|
||||
result.append('{0}'.format(value_type))
|
||||
result.append('--set')
|
||||
result.append('{0}'.format(value))
|
||||
result.extend(['--type', '{0}'.format(value_type), '--set', '{0}'.format(value)])
|
||||
return result
|
||||
|
||||
|
||||
|
@ -155,6 +152,10 @@ class XFConfException(Exception):
|
|||
|
||||
|
||||
class XFConfProperty(CmdMixin, StateMixin, ModuleHelper):
|
||||
change_params = 'value',
|
||||
diff_params = 'value',
|
||||
output_params = ('property', 'channel', 'value')
|
||||
facts_params = ('property', 'channel', 'value')
|
||||
module = dict(
|
||||
argument_spec=dict(
|
||||
state=dict(default="present",
|
||||
|
@ -185,17 +186,15 @@ class XFConfProperty(CmdMixin, StateMixin, ModuleHelper):
|
|||
)
|
||||
|
||||
def update_xfconf_output(self, **kwargs):
|
||||
self.update_output(**kwargs)
|
||||
if not self.module.params['disable_facts']:
|
||||
self.update_facts(**kwargs)
|
||||
self.update_vars(meta={"output": True, "fact": True}, **kwargs)
|
||||
|
||||
def __init_module__(self):
|
||||
self.does_not = 'Property "{0}" does not exist on channel "{1}".'.format(self.module.params['property'],
|
||||
self.module.params['channel'])
|
||||
self.vars.previous_value = self._get()
|
||||
self.update_xfconf_output(property=self.module.params['property'],
|
||||
channel=self.module.params['channel'],
|
||||
previous_value=None)
|
||||
self.vars.set('previous_value', self._get(), fact=True)
|
||||
self.vars.set('type', self.vars.value_type, fact=True)
|
||||
self.vars.meta('value').set(initial_value=self.vars.previous_value)
|
||||
|
||||
if not self.module.params['disable_facts']:
|
||||
self.facts_name = "xfconf"
|
||||
self.module.deprecate(
|
||||
|
@ -220,34 +219,23 @@ class XFConfProperty(CmdMixin, StateMixin, ModuleHelper):
|
|||
|
||||
return result
|
||||
|
||||
@property
|
||||
def changed(self):
|
||||
if self.vars.previous_value is None:
|
||||
return self.vars.value is not None
|
||||
elif self.vars.value is None:
|
||||
return self.vars.previous_value is not None
|
||||
else:
|
||||
return set(self.vars.previous_value) != set(self.vars.value)
|
||||
|
||||
def _get(self):
|
||||
return self.run_command(params=('channel', 'property'))
|
||||
|
||||
def state_get(self):
|
||||
self.vars.value = self.vars.previous_value
|
||||
self.update_xfconf_output(value=self.vars.value)
|
||||
self.vars.previous_value = None
|
||||
|
||||
def state_absent(self):
|
||||
if not self.module.check_mode:
|
||||
self.run_command(params=('channel', 'property', {'reset': True}))
|
||||
self.vars.value = None
|
||||
self.update_xfconf_output(previous_value=self.vars.previous_value,
|
||||
value=None)
|
||||
|
||||
def state_present(self):
|
||||
# stringify all values - in the CLI they will all be happy strings anyway
|
||||
# and by doing this here the rest of the code can be agnostic to it
|
||||
self.vars.value = [str(v) for v in self.module.params['value']]
|
||||
value_type = self.module.params['value_type']
|
||||
self.vars.value = [str(v) for v in self.vars.value]
|
||||
value_type = self.vars.value_type
|
||||
|
||||
values_len = len(self.vars.value)
|
||||
types_len = len(value_type)
|
||||
|
@ -264,7 +252,7 @@ class XFConfProperty(CmdMixin, StateMixin, ModuleHelper):
|
|||
|
||||
# calculates if it is an array
|
||||
self.vars.is_array = \
|
||||
bool(self.module.params['force_array']) or \
|
||||
bool(self.vars.force_array) or \
|
||||
isinstance(self.vars.previous_value, list) or \
|
||||
values_len > 1
|
||||
|
||||
|
@ -278,11 +266,9 @@ class XFConfProperty(CmdMixin, StateMixin, ModuleHelper):
|
|||
|
||||
if not self.vars.is_array:
|
||||
self.vars.value = self.vars.value[0]
|
||||
value_type = value_type[0]
|
||||
|
||||
self.update_xfconf_output(previous_value=self.vars.previous_value,
|
||||
value=self.vars.value,
|
||||
type=value_type)
|
||||
self.vars.type = value_type[0]
|
||||
else:
|
||||
self.vars.type = value_type
|
||||
|
||||
|
||||
def main():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue