Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MH CmdModuleHelper: deprecation #5370

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions changelogs/fragments/5370-mh-cmdmixin-deprecation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
deprecated_features:
- CmdMixin module utils - deprecated in favor of the ``CmdRunner`` module util (https://github.com/ansible-collections/community.general/pull/5370).
- CmdModuleHelper module utils - deprecated in favor of the ``CmdRunner`` module util (https://github.com/ansible-collections/community.general/pull/5370).
- CmdStateModuleHelper module utils - deprecated in favor of the ``CmdRunner`` module util (https://github.com/ansible-collections/community.general/pull/5370).
- ArgFormat module utils - deprecated along ``CmdMixin``, in favor of the ``cmd_runner_fmt`` module util (https://github.com/ansible-collections/community.general/pull/5370).
16 changes: 16 additions & 0 deletions plugins/module_utils/mh/mixins/cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ def deco(f):

def __init__(self, name, fmt=None, style=FORMAT, stars=0):
"""
THIS CLASS IS BEING DEPRECATED.
It was never meant to be used outside the scope of CmdMixin, and CmdMixin is being deprecated.
See the deprecation notice in ``CmdMixin.__init__()`` below.

Creates a CLI-formatter for one specific argument. The argument may be a module parameter or just a named parameter for
the CLI command execution.
:param name: Name of the argument to be formatted
Expand Down Expand Up @@ -88,6 +92,9 @@ def to_text(self, value):

class CmdMixin(object):
"""
THIS CLASS IS BEING DEPRECATED.
See the deprecation notice in ``CmdMixin.__init__()`` below.

Mixin for mapping module options to running a CLI command with its arguments.
"""
command = None
Expand All @@ -110,6 +117,15 @@ def custom_formats(self):
result[param] = ArgFormat(param, **fmt_spec)
return result

def __init__(self, *args, **kwargs):
super(CmdMixin, self).__init__(*args, **kwargs)
self.module.deprecate(
'The CmdMixin used in classes CmdModuleHelper and CmdStateModuleHelper is being deprecated. '
'Modules should use community.general.plugins.module_utils.cmd_runner.CmdRunner instead.',
version='8.0.0',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In case it turns out someone from outside this collection is relying on it, we should bump this up to 9.0.0. But as long as nobody is complaining, let's keep 8.0.0 :)

collection_name='community.general',
)

def _calculate_args(self, extra_params=None, params=None):
def add_arg_formatted_param(_cmd_args, arg_format, _value):
args = list(arg_format.to_text(_value))
Expand Down
8 changes: 8 additions & 0 deletions plugins/module_utils/mh/module_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,16 @@ class StateModuleHelper(StateMixin, ModuleHelper):


class CmdModuleHelper(CmdMixin, ModuleHelper):
"""
THIS CLASS IS BEING DEPRECATED.
See the deprecation notice in ``CmdMixin.__init__()``.
"""
pass


class CmdStateModuleHelper(CmdMixin, StateMixin, ModuleHelper):
"""
THIS CLASS IS BEING DEPRECATED.
See the deprecation notice in ``CmdMixin.__init__()``.
"""
pass