Not sure it seems like it is looking for the filter.  Have you used a
collection before?  Is the collections_path defined in the ansible.cfg?

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

> This error shows:
> 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 the full playbook I am using:
> ---
> - name: Interface Descrpitions
>   hosts: uwioc-switches
>   gather_facts: no
>   connection: network_cli
>   collections:
>     - clay584.genie
>   vars:
>     ansible_python_interpreter: "{{ ansible_playbook_python }}"
>   tasks:
>     - 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') }}"
>
>
> Tried changing vars to set_facts too, but didn't work.
>
> On Monday, June 22, 2020 at 4:16:54 PM UTC-4, J C wrote:
>>
>> 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/36cda932-fe68-499b-a70b-acf81cd693cfo%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/36cda932-fe68-499b-a70b-acf81cd693cfo%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-QT7a5HoWKGAhnKugGSUwcPRY0ZyP6MRJTtpRR2t9pQh8A%40mail.gmail.com.

Reply via email to