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.
pull/66366/head
Paul Belanger 6 years ago committed by GitHub
parent 637eed5a5c
commit c3635532d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -30,23 +30,12 @@ import json
from ansible.module_utils._text import to_text, to_native from ansible.module_utils._text import to_text, to_native
from ansible.module_utils.basic import AnsibleModule 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.connection import Connection, ConnectionError
from ansible.module_utils.network.common.netconf import NetconfConnection from ansible.module_utils.network.common.netconf import NetconfConnection
from ansible.module_utils.network.common.parsing import Cli from ansible.module_utils.network.common.parsing import Cli
from ansible.module_utils.six import iteritems 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( NET_TRANSPORT_ARGS = dict(
host=dict(required=True), host=dict(required=True),
@ -223,17 +212,7 @@ def get_resource_connection(module):
capabilities = get_capabilities(module) capabilities = get_capabilities(module)
network_api = capabilities.get('network_api') network_api = capabilities.get('network_api')
if network_api == 'eapi': if network_api in ('cliconf', 'nxapi', 'eapi', 'exosapi'):
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'):
module._connection = Connection(module._socket_path) module._connection = Connection(module._socket_path)
elif network_api == 'netconf': elif network_api == 'netconf':
module._connection = NetconfConnection(module._socket_path) module._connection = NetconfConnection(module._socket_path)

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

@ -130,13 +130,6 @@ class Interfaces(FactsBase):
self.facts['all_ipv6_addresses'] = list() self.facts['all_ipv6_addresses'] = list()
data = self.responses[0] 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) self.facts['interfaces'] = self.populate_interfaces(data)
data = self.responses[1] data = self.responses[1]

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

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

@ -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

@ -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

@ -1,3 +1,17 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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

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

@ -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"

@ -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"

@ -1,3 +1,22 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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"

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

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

@ -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

@ -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

@ -1,3 +1,17 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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

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

@ -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

@ -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

@ -1,3 +1,17 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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

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

@ -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

@ -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

@ -1,3 +1,17 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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

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

@ -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

@ -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

@ -1,3 +1,17 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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

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

@ -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

@ -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

@ -1,3 +1,17 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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

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

@ -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

@ -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

@ -1,3 +1,17 @@
--- ---
- { include: cli.yaml, tags: ['cli'] } - name: collect all cli test cases
- { include: eapi.yaml, tags: ['eapi'] } 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

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