mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-06-20 07:10:23 -07:00
Windows module: win_optional_feature for Windows workstations (#53709)
* initial commit * fix execute and \r\n * \r attempt 2 * updated with integration tests and using new csharp import * Apply suggestions from code review Co-Authored-By: rcanderson23 <rcanderson23@gmail.com> * fixed small docuement inaccuracies wrt returns * removal of state in feature result * removal of rc * small fixes suggested in code review * fixed variable assigning to result * addition of comments on conditionals for clarity on matching * swap logic of check_mode * set $reboot_required so it is always returned * removal of extraneous return information * addition of integration tests * set installation of parent features to true * remove 2008 from tests * changed test for TelnetClient from NetFx3 * change of tabs to spaces * Add test check for OS version
This commit is contained in:
parent
f5f4948480
commit
31ceba7fd8
5 changed files with 270 additions and 0 deletions
3
test/integration/targets/win_optional_feature/aliases
Normal file
3
test/integration/targets/win_optional_feature/aliases
Normal file
|
@ -0,0 +1,3 @@
|
|||
shippable/windows/group2
|
||||
skip/windows/2008
|
||||
skip/windows/2008-R2
|
25
test/integration/targets/win_optional_feature/tasks/main.yml
Normal file
25
test/integration/targets/win_optional_feature/tasks/main.yml
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Test code for win_optional_feature module
|
||||
# Copyright: (c) 2019, Carson Anderson <rcanderson23@gmail.com>
|
||||
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
- name: check if host supports module
|
||||
win_shell: if (Get-Command -Name Enable-WindowsOptionalFeature -ErrorAction SilentlyContinue) { $true } else { $false }
|
||||
register: run_tests
|
||||
|
||||
- name: run tests
|
||||
include_tasks: tests.yml
|
||||
when: run_tests.stdout | trim | bool
|
|
@ -0,0 +1,88 @@
|
|||
# Test code for win_optional_feature module
|
||||
# Copyright: (c) 2019, Carson Anderson <rcanderson23@gmail.com>
|
||||
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
#
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
- name: run with check_mode
|
||||
win_optional_feature:
|
||||
name: TelnetClient
|
||||
state: present
|
||||
include_parent: true
|
||||
check_mode: yes
|
||||
register: feature_check
|
||||
|
||||
- name: assert check_mode
|
||||
assert:
|
||||
that:
|
||||
- feature_check.changed
|
||||
|
||||
- name: run without check_mode
|
||||
win_optional_feature:
|
||||
name: TelnetClient
|
||||
state: present
|
||||
include_parent: true
|
||||
register: real_feature_check
|
||||
|
||||
- name: assert feature installed
|
||||
assert:
|
||||
that:
|
||||
- real_feature_check.changed
|
||||
|
||||
- name: test idempotence for install
|
||||
win_optional_feature:
|
||||
name: TelnetClient
|
||||
state: present
|
||||
include_parent: true
|
||||
register: real_feature_check
|
||||
|
||||
- name: assert idempotence
|
||||
assert:
|
||||
that:
|
||||
- not real_feature_check.changed
|
||||
|
||||
- name: removal run with check_mode
|
||||
win_optional_feature:
|
||||
name: TelnetClient
|
||||
state: absent
|
||||
check_mode: yes
|
||||
register: feature_check
|
||||
|
||||
- name: assert removal check_mode
|
||||
assert:
|
||||
that:
|
||||
- feature_check.changed
|
||||
|
||||
- name: remove feature
|
||||
win_optional_feature:
|
||||
name: TelnetClient
|
||||
state: absent
|
||||
register: real_feature_check
|
||||
|
||||
- name: assert feature removed
|
||||
assert:
|
||||
that:
|
||||
- real_feature_check.changed
|
||||
|
||||
- name: test idempotence for removal
|
||||
win_optional_feature:
|
||||
name: TelnetClient
|
||||
state: absent
|
||||
register: real_feature_check
|
||||
|
||||
- name: assert idempotence
|
||||
assert:
|
||||
that:
|
||||
- not real_feature_check.changed
|
Loading…
Add table
Add a link
Reference in a new issue