diff --git a/CHANGELOG.md b/CHANGELOG.md index 49c4fdd12be..ee073aeef7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -474,7 +474,6 @@ Ansible Changes By Release * net_static_route - system * net_banner - * net_command * net_logging * net_system * net_user diff --git a/lib/ansible/modules/network/system/net_command.py b/lib/ansible/modules/network/system/net_command.py deleted file mode 100644 index 3208d3c06a8..00000000000 --- a/lib/ansible/modules/network/system/net_command.py +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# (c) 2017, Ansible by Red Hat, inc -# 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 -__metaclass__ = type - - -ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], - 'supported_by': 'network'} - -DOCUMENTATION = """ ---- -module: net_command -version_added: "2.4" -author: "Trishna Guha (@trishnag)" -short_description: Run arbitrary commands on a network device -description: - - Sends an arbitrary set of commands to network node and returns the results - read from the device. This module includes an - argument that will cause the module to wait for a specific condition - before returning or timing out if the condition is not met. -options: - commands: - description: - - The commands to send to the remote network device over the - configured provider. The resulting output from the command - is returned. If the I(wait_for) argument is provided, the - module is not returned until the condition is satisfied or - the number of I(retries) has been exceeded. - required: true - wait_for: - description: - - Specifies what to evaluate from the output of the command - and what conditionals to apply. This argument will cause - the task to wait for a particular conditional to be true - before moving forward. If the conditional is not true - by the configured retries, the task fails. See examples. - required: false - default: null - aliases: ['waitfor'] - version_added: "2.2" - match: - description: - - The I(match) argument is used in conjunction with the - I(wait_for) argument to specify the match policy. Valid - values are C(all) or C(any). If the value is set to C(all) - then all conditionals in the I(wait_for) must be satisfied. If - the value is set to C(any) then only one of the values must be - satisfied. - required: false - default: all - choices: ['any', 'all'] - version_added: "2.2" - retries: - description: - - Specifies the number of retries a command should be tried - before it is considered failed. The command is run on the - target device every retry and evaluated against the I(wait_for) - conditionals. - required: false - default: 10 - interval: - description: - - Configures the interval in seconds to wait between retries - of the command. If the command does not pass the specified - conditional, the interval indicates how to long to wait before - trying the command again. - required: false - default: 1 -""" - -EXAMPLES = """ -- name: run show version on remote devices - net_command: - commands: show version -- name: run show version and check to see if output contains Network vendor name - net_command: - commands: show version - wait_for: result[0] contains Network vendor name -- name: run multiple commands on remote nodes - net_command: - commands: - - show version - - show interfaces -- name: run multiple commands and evaluate the output - net_command: - commands: - - show version - - show interfaces - wait_for: - - result[0] contains Network vendor name - - result[1] contains Loopback0 -- name: run commands and specify the output format - net_command: - commands: - - command: show version - output: json -""" - -RETURN = """ -stdout: - description: The set of responses from the commands - returned: always apart from low level errors (such as action plugin) - type: list - sample: ['...', '...'] -stdout_lines: - description: The value of stdout split into a list - returned: always apart from low level errors (such as action plugin) - type: list - sample: [['...', '...'], ['...'], ['...']] -failed_conditions: - description: The list of conditionals that have failed - returned: failed - type: list - sample: ['...', '...'] -""" diff --git a/lib/ansible/plugins/action/net_command.py b/lib/ansible/plugins/action/net_command.py deleted file mode 100644 index a4ee4db0b6e..00000000000 --- a/lib/ansible/plugins/action/net_command.py +++ /dev/null @@ -1,26 +0,0 @@ -# (c) 2017, Ansible Inc, -# -# This file is part of Ansible -# -# 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 . -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -from ansible.plugins.action.net_base import ActionModule as _ActionModule - - -class ActionModule(_ActionModule): - def run(self, tmp=None, task_vars=None): - result = super(ActionModule, self).run(tmp, task_vars) - return result diff --git a/test/integration/platform_agnostic.yaml b/test/integration/platform_agnostic.yaml index 72e1505fb54..b7f2c78f23e 100644 --- a/test/integration/platform_agnostic.yaml +++ b/test/integration/platform_agnostic.yaml @@ -29,13 +29,6 @@ rescue: - set_fact: test_failed=true - - block: - - include_role: - name: net_command - when: "limit_to in ['*', 'net_command']" - rescue: - - set_fact: test_failed=true - - block: - include_role: name: net_user diff --git a/test/integration/targets/net_command/aliases b/test/integration/targets/net_command/aliases deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/test/integration/targets/net_command/defaults/main.yaml b/test/integration/targets/net_command/defaults/main.yaml deleted file mode 100644 index 5f709c5aac1..00000000000 --- a/test/integration/targets/net_command/defaults/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -testcase: "*" diff --git a/test/integration/targets/net_command/tasks/cli.yaml b/test/integration/targets/net_command/tasks/cli.yaml deleted file mode 100644 index 46d86dd6988..00000000000 --- a/test/integration/targets/net_command/tasks/cli.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -- name: collect all cli test cases - find: - paths: "{{ role_path }}/tests/cli" - patterns: "{{ testcase }}.yaml" - register: test_cases - delegate_to: localhost - -- name: set test_items - set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" - -- name: run test case - include: "{{ test_case_to_run }}" - with_items: "{{ test_items }}" - loop_control: - loop_var: test_case_to_run diff --git a/test/integration/targets/net_command/tasks/main.yaml b/test/integration/targets/net_command/tasks/main.yaml deleted file mode 100644 index 415c99d8b12..00000000000 --- a/test/integration/targets/net_command/tasks/main.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -- { include: cli.yaml, tags: ['cli'] } diff --git a/test/integration/targets/net_command/tests/cli/contains.yaml b/test/integration/targets/net_command/tests/cli/contains.yaml deleted file mode 100644 index 8a6dfbb8c50..00000000000 --- a/test/integration/targets/net_command/tests/cli/contains.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- debug: msg="START cli/contains.yaml" - -- include: "{{ role_path }}/tests/ios/contains.yaml" - when: hostvars[inventory_hostname]['ansible_network_os'] == 'ios' - -- include: "{{ role_path }}/tests/iosxr/contains.yaml" - when: hostvars[inventory_hostname]['ansible_network_os'] == 'iosxr' - -- include: "{{ role_path }}/tests/nxos/contains.yaml" - when: hostvars[inventory_hostname]['ansible_network_os'] == 'nxos' - -- include: "{{ role_path }}/tests/eos/contains.yaml" - when: hostvars[inventory_hostname]['ansible_network_os'] == 'eos' - -- include: "{{ role_path }}/tests/vyos/contains.yaml" - when: hostvars[inventory_hostname]['ansible_network_os'] == 'vyos' - -- debug: msg="END cli/contains.yaml" diff --git a/test/integration/targets/net_command/tests/eos/contains.yaml b/test/integration/targets/net_command/tests/eos/contains.yaml deleted file mode 100644 index 8a55dd7a974..00000000000 --- a/test/integration/targets/net_command/tests/eos/contains.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- debug: msg="START eos/contains.yaml" - -- name: test contains operator - net_command: - commands: - - show version - - show interface Management1 | json - wait_for: - - "result[0] contains EOS" - - "result[1].interfaces.Management1.name contains Manage" - provider: "{{ cli }}" - register: result - -- assert: - that: - - "result.changed == false" - - "result.stdout is defined" - -- debug: msg="END eos/contains.yaml" diff --git a/test/integration/targets/net_command/tests/ios/contains.yaml b/test/integration/targets/net_command/tests/ios/contains.yaml deleted file mode 100644 index babe82a824f..00000000000 --- a/test/integration/targets/net_command/tests/ios/contains.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- debug: msg="START ios/contains.yaml" - -- name: test contains operator - net_command: - commands: - - show version - - show interface loopback 888 - wait_for: - - "result[0] contains Cisco" - - "result[1] contains Loopback888" - register: result - -- assert: - that: - - "result.changed == false" - - "result.stdout is defined" - -- debug: msg="END ios/contains.yaml" diff --git a/test/integration/targets/net_command/tests/iosxr/contains.yaml b/test/integration/targets/net_command/tests/iosxr/contains.yaml deleted file mode 100644 index eefe27b76fa..00000000000 --- a/test/integration/targets/net_command/tests/iosxr/contains.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- debug: msg="START iosxr/contains.yaml" - -- name: test contains operator - net_command: - commands: - - show version - - show interfaces Loopback 888 - wait_for: - - "result[0] contains 'Cisco IOS XR Software'" - - "result[1] contains 'Hardware is Loopback interface'" - register: result - -- assert: - that: - - "result.changed == false" - - "result.stdout is defined" - -- debug: msg="END iosxr/contains.yaml" diff --git a/test/integration/targets/net_command/tests/nxos/contains.yaml b/test/integration/targets/net_command/tests/nxos/contains.yaml deleted file mode 100644 index 9bd387d5b13..00000000000 --- a/test/integration/targets/net_command/tests/nxos/contains.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -- debug: msg="START nxos/contains.yaml" - -- name: test contains operator - net_command: - commands: - - show version - - show interface mgmt0 | json - wait_for: - - "result[0] contains NX-OS" - - "result[1].TABLE_interface.ROW_interface.interface contains mgmt" - provider: "{{ cli }}" - register: result - -- assert: - that: - - "result.changed == false" - -- debug: msg="END nxos/contains.yaml" diff --git a/test/integration/targets/net_command/tests/vyos/contains.yaml b/test/integration/targets/net_command/tests/vyos/contains.yaml deleted file mode 100644 index 21f6df8f266..00000000000 --- a/test/integration/targets/net_command/tests/vyos/contains.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- debug: msg="START vyos/contains.yaml" - -- name: test contains operator - net_command: - commands: - - show version - - show interface - wait_for: - - result[0] contains VyOS - - result[1] contains eth0 - provider: "{{ cli }}" - register: result - -- assert: - that: - - result.changed == false - - result.stdout is defined - - result.stdout_lines is defined - -- debug: msg="END vyos/contains.yaml"