I am using the collection not the role.  So it looks like this at the top.
Had to add the interpreter variable because Ansible kept using Python 2

---
- name: Interface Descrpitions
  hosts: all
  gather_facts: no
  connection: network_cli
  collections:
    - clay584.genie
  vars:
    ansible_python_interpreter: "{{ ansible_playbook_python }}"

On Mon, Jun 22, 2020 at 2:44 PM Jason <[email protected]> wrote:

> Thanks alot.
>
> I have been getting this error for the past few days when trying to use
> genie:
>
> fatal: [SW1]: FAILED! => {
>     "msg": "template error while templating string: no filter named
> 'clay584.genie.parse_genie'. String: {{ neighbors['stdout'][0] |
> clay584.genie.parse_genie(command='show cdp neighbors', os='ios') }}"
> }
>
> *This is my playbook (what you sent but I needed to import the role
> first):*
> - hosts: uwioc-switches
>   gather_facts: no
>   tasks:
>     - name: Import role
>       include_role:
>         name: clay584.parse_genie
>
>     - name: Run show cdp neighbors
>       ios_command:
>         commands:
>           - show cdp neighbors
>       register: neighbors
>
> # Using the Genie Filter Plugin from the Genie Parse Role
> # Set pyats_neighbors as a dictionary
>     - name: Set fact with Genie
>     - name: Import role
>       include_role:
>         name: clay584.parse_genie
>
>     - name: Run show cdp neighbors
>       ios_command:
>         commands:
>           - show cdp neighbors
>       register: neighbors
>
> # Using the Genie Filter Plugin from the Genie Parse Role
> # Set pyats_neighbors as a dictionary
>     - name: Set fact with Genie Filter Plugin
>       set_fact:
>         pyats_neighbors: "{{ neighbors['stdout'][0] |
> clay584.genie.parse_genie(command='show cdp neighbors', os='ios') }}"
>
>
>     - name: Add interface description
>       ios_interfaces:
>         config:
>           - name: "{{ item.value.local_interface }}"
>             description: "{{ item.value.device_id }} - {{
> item.value.port_id }}"
>         state: merged
>       loop: "{{ q('dict', pyats_neighbors.index) }}"
>       when: item.value.port_id is "AIR-AP280"
>
> My python version is 3.6.8 and Ansible is 2.9.9
>
> I followed this guide to install the necessary libraries:
> https://developer.cisco.com/codeexchange/github/repo/clay584/parse_genie/
>
> The error still persists.  Also posted the issue on GitHub. Not sure if it
> is bug in the parsing library.
>
> Any assistance would greatly be appreciated.
>
> Thanks.
>
> On Monday, June 22, 2020 at 9:07:18 AM UTC-4, J C wrote:
>>
>> Something like that I suppose.
>>
>>
>> #Sets a varaiable for cdp neighbor detail
>>   - name: Run show cdp neighbors command
>>     ios_command:
>>       commands:
>>         - show cdp neighbors detail
>>     register: neighbors
>>
>> # Using the Genie Filter Plugin from the Genie Parse Role
>> # Set pyats_neighbors as a dictionary
>>   - name: Set fact with Genie Filter Plugin
>>     set_fact:
>>       pyats_neighbors: "
>> {{ neighbors['stdout'][0] | clay584.genie.parse_genie(command='show cdp 
>> neighbors detail', os='ios') }}
>> "
>>   - name: Add interface desription
>>     ios_interfaces:
>>       config:
>>         - name: "{{ item.value.local_interface }}"
>>           description: "
>> {{ item.value.device_id }} - {{ item.value.port_id }}"
>>       state: merged
>>     loop: "{{ q('dict', pyats_neighbors.index) }}"
>>     when: item.value.port_id is "AIR-AP280"
>>
>> On Sat, Jun 20, 2020 at 1:34 PM Jason <[email protected]> wrote:
>>
>>> Thanks. If you don't mind me asking because I am not familiar with this,
>>> can you give me an example of how to use the set fact and when statement
>>> for my case?
>>>
>>> On Friday, June 19, 2020 at 11:22:31 PM UTC-4, J C wrote:
>>>>
>>>> I would use the genie module and run the show cdp neighbor command.
>>>> Then set fact and use that with the when command.
>>>>
>>>> On Fri, Jun 19, 2020, 10:05 PM Jason <[email protected]> wrote:
>>>>
>>>>> I am working on a project that would require me to bump (shutdown and
>>>>> re-enable) switchports that are connected to an Access Point.
>>>>>
>>>>> I have created a playbook to run a command "show cdp neighbours" on
>>>>> the switch, and that output would look like:
>>>>> [image: sh cdp neighbours.JPG]
>>>>>
>>>>> What I want to do, is to use ansible to only run a command (ansible
>>>>> play) on Gig 1/0/19 in this case. For other switches, it may be more
>>>>> switchports and maybe in different format (eg. Gi 2/0/35).
>>>>>
>>>>> Is there a way to filter ansible output by looking for 'AIR-AP280' and
>>>>> then extract that corresponding Local Interface (switchport number)?
>>>>>
>>>>> Or if there is another way to get done what I want, then great.
>>>>>
>>>>> Any suggestions/recommendations?
>>>>>
>>>>> It is over 50 switches, so it would be great if ansible can do what I
>>>>> want to do.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Ansible Project" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/ansible-project/fd4b0f7a-85ba-4921-b252-9b760d1bd3d8o%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/ansible-project/fd4b0f7a-85ba-4921-b252-9b760d1bd3d8o%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Ansible Project" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/ansible-project/644c6f2a-5a02-49fd-b84a-1c74ad722daao%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/644c6f2a-5a02-49fd-b84a-1c74ad722daao%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/9a09ee0c-1184-4d74-a41f-b69a89fca04co%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/9a09ee0c-1184-4d74-a41f-b69a89fca04co%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAANJ-QRD42rhcPm90%2B2aGmMnxf8aYsJ_P3UV557ohYd2UEFjow%40mail.gmail.com.

Reply via email to