Revert "Allow httpapi for EOS resource modules (#66871)" (#67131)

This looks to be causing issues for our new ansible.netcommon
collection. Revert for now, until we can properly address.

This reverts commit 53c7f8cbde.
This commit is contained in:
Paul Belanger 2020-02-06 10:20:08 -05:00 committed by GitHub
parent 637eed5a5c
commit c3635532d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
70 changed files with 159 additions and 359 deletions

View file

@ -30,23 +30,12 @@ import json
from ansible.module_utils._text import to_text, to_native
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.basic import env_fallback, missing_required_lib
from ansible.module_utils.basic import env_fallback
from ansible.module_utils.connection import Connection, ConnectionError
from ansible.module_utils.network.common.netconf import NetconfConnection
from ansible.module_utils.network.common.parsing import Cli
from ansible.module_utils.six import iteritems
try:
from ansible.module_utils.network.eos import eos
HAS_EOS = True
except ImportError:
HAS_EOS = False
try:
from ansible.module_utils.network.nxos import nxos
HAS_NXOS = True
except ImportError:
HAS_NXOS = False
NET_TRANSPORT_ARGS = dict(
host=dict(required=True),
@ -223,17 +212,7 @@ def get_resource_connection(module):
capabilities = get_capabilities(module)
network_api = capabilities.get('network_api')
if network_api == 'eapi':
if HAS_EOS:
module._connection = eos.get_connection(module)
else:
module.fail_json(msg=missing_required_lib("collection arista.eos"))
elif network_api == 'nxapi':
if HAS_NXOS:
module._connection = nxos.get_connection(module)
else:
module.fail_json(msg=missing_required_lib("collection cisco.nxos"))
elif network_api in ('cliconf', 'exosapi'):
if network_api in ('cliconf', 'nxapi', 'eapi', 'exosapi'):
module._connection = Connection(module._socket_path)
elif network_api == 'netconf':
module._connection = NetconfConnection(module._socket_path)

View file

@ -418,9 +418,6 @@ class HttpApi:
self._session_support = self._connection.supports_sessions()
return self._session_support
def get(self, command, **kwargs):
return self._connection.send_request(command)
def run_commands(self, commands, check_rc=True):
"""Runs list of commands on remote device and returns results
"""
@ -514,7 +511,7 @@ class HttpApi:
"""
return self.edit_config(config, commit, replace)
def edit_config(self, config, commit=True, replace=False):
def edit_config(self, config, commit=False, replace=False):
"""Loads the configuration onto the remote devices
If the device doesn't support configuration sessions, this will

View file

@ -130,13 +130,6 @@ class Interfaces(FactsBase):
self.facts['all_ipv6_addresses'] = list()
data = self.responses[0]
if not isinstance(data, dict):
# EAPI kills the whole request on an error.
self.COMMANDS.pop()
super(Interfaces, self).populate()
self.responses.append(None)
data = self.responses[0]
self.facts['interfaces'] = self.populate_interfaces(data)
data = self.responses[1]

View file

@ -63,7 +63,8 @@ class VlansFacts(object):
if obj:
objs.extend(obj)
facts = {'vlans': []}
ansible_facts['ansible_network_resources'].pop('vlans', None)
facts = {}
if objs:
params = utils.validate_config(self.argument_spec, {'config': objs})
facts['vlans'] = [utils.remove_empties(cfg) for cfg in params['config']]

View file

@ -39,7 +39,7 @@ class JsonRpcServer(object):
break
if not rpc_method:
error = self.method_not_found(rpc_method)
error = self.method_not_found()
response = json.dumps(error)
else:
try:

View file

@ -1,17 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_httpapi

View file

@ -1,3 +1,17 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,7 +1,7 @@
---
- name: Reset initial config
eos_config:
lines: |
cli_config:
config: |
interface Ethernet1
description "Interface 1"
no shutdown

View file

@ -1,22 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- block:
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli
always:
- name: Clean up test state
include: "{{ role_path }}/tests/common/cleanup.yml ansible_connection=network_cli"

View file

@ -1,22 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- block:
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_httpapi
always:
- name: Clean up test state
include: "{{ role_path }}/tests/common/cleanup.yml ansible_connection=httpapi"

View file

@ -1,3 +1,22 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- block:
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli
always:
- name: Clean up test state
include: "{{ role_path }}/tests/cli/cleanup.yml ansible_connection=network_cli"

View file

@ -1,12 +1,12 @@
---
- name: Remove all vlans
eos_config:
lines: no vlan 1-4094
cli_config:
config: no vlan 1-4094
become: yes
- name: Completely remove vlans from interfaces
eos_config:
lines: |
cli_config:
config: |
interface {{ item }}
no switchport mode
no switchport access vlan

View file

@ -1,7 +1,7 @@
---
- name: Reset state
eos_config:
lines: |
cli_config:
config: |
interface Ethernet1
switchport access vlan 20
no switchport trunk native vlan

View file

@ -1,17 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,3 +1,17 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- 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 cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,7 +1,7 @@
---
- name: Reset state
eos_config:
lines: |
cli_config:
config: |
interface Ethernet1
ip address 192.0.2.12/24
ip address 203.0.113.27/31 secondary

View file

@ -1,17 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_httpapi

View file

@ -1,3 +1,17 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,7 +1,7 @@
---
- name: Reset initial config
eos_config:
lines: |
cli_config:
config: |
interface Ethernet1
lacp port-priority 30
lacp rate normal

View file

@ -1,17 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_httpapi

View file

@ -1,3 +1,17 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- 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 cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,7 +1,7 @@
---
- name: Reset state
eos_config:
lines: |
cli_config:
config: |
interface Ethernet1
channel-group 5 mode on
interface Ethernet2

View file

@ -1,17 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_httpapi

View file

@ -1,3 +1,17 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,7 +1,7 @@
---
- name: Reset initial config
eos_config:
lines: |
cli_config:
config: |
lldp timer 3000
lldp holdtime 100
lldp reinit 5

View file

@ -1,17 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_httpapi

View file

@ -1,3 +1,17 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,7 +1,7 @@
---
- name: Reset initial config
eos_config:
lines: |
cli_config:
config: |
interface Ethernet1
no lldp receive
lldp transmit

View file

@ -1,17 +0,0 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +0,0 @@
---
- name: collect all eapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=httpapi)
include: "{{ test_case_to_run }} ansible_connection=httpapi"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_httpapi

View file

@ -1,3 +1,17 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: eapi.yaml, tags: ['eapi'] }
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
delegate_to: localhost
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test cases (connection=network_cli)
include: "{{ test_case_to_run }} ansible_connection=network_cli"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
tags: connection_network_cli

View file

@ -1,17 +1,12 @@
---
- name: Reset initial config
eos_config:
before:
cli_config:
config: |
no vlan 1-4094
defaults: yes
match: exact
lines: |
vlan 10
name ten
state active
vlan 20
name twenty
state active
become: yes
- eos_facts: