MH DeprecateAttrsMixin (#3727)

* initial commit for deprecate_attrs

* completed tests

* added spaces

* test now works when tehre is more than one deprecation

* trying == instead of eq in jinja

* new approach to testing

* removed extraneous debug message
This commit is contained in:
Alexei Znamensky 2021-11-26 19:13:55 +13:00 committed by GitHub
commit 887b3882dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 163 additions and 0 deletions

View file

@ -0,0 +1,64 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# (c) 2021, Alexei Znamensky <russoz@gmail.com>
#
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
import collections
__metaclass__ = type
DOCUMENTATION = '''
module: msimpleda
author: "Alexei Znamensky (@russoz)"
short_description: Simple module for testing DeprecationAttrsMixin
description:
- Simple module test description.
options:
a:
description: aaaa
type: int
'''
EXAMPLES = ""
RETURN = ""
from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper
from ansible_collections.community.general.plugins.module_utils.mh.mixins.deprecate_attrs import DeprecateAttrsMixin
class MSimpleDA(DeprecateAttrsMixin, ModuleHelper):
output_params = ('a',)
module = dict(
argument_spec=dict(
a=dict(type='int'),
),
)
attr1 = "abc"
attr2 = "def"
def __init_module__(self):
self._deprecate_attr(
"attr2",
msg="Attribute attr2 is deprecated",
version="9.9.9",
collection_name="community.general",
target=self.__class__,
module=self.module,
)
def __run__(self):
if self.vars.a == 1:
self.vars.attr1 = self.attr1
if self.vars.a == 2:
self.vars.attr2 = self.attr2
def main():
MSimpleDA.execute()
if __name__ == '__main__':
main()

View file

@ -4,3 +4,4 @@
- include_tasks: msimple.yml
- include_tasks: mdepfail.yml
- include_tasks: mstate.yml
- include_tasks: msimpleda.yml

View file

@ -0,0 +1,37 @@
# (c) 2021, Alexei Znamensky
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
- name: test msimpleda 1
msimpleda:
a: 1
register: simple1
- name: assert simple1
assert:
that:
- simple1.a == 1
- simple1.attr1 == "abc"
- name: test msimpleda 2
msimpleda:
a: 2
register: simple2
- set_fact:
attr2_d:
msg: Attribute attr2 is deprecated
version: 9.9.9
collection_name: community.general
attr2_d_29:
msg: Attribute attr2 is deprecated
version: 9.9.9
- name: assert simple2
assert:
that:
- simple2.a == 2
- simple2.attr2 == "def"
- '"deprecations" in simple2'
- attr2_depr_dict in simple2.deprecations
vars:
attr2_depr_dict: "{{ ((ansible_version.major, ansible_version.minor) < (2, 10))|ternary(attr2_d_29, attr2_d) }}"