Hi all,

I need to try to map multiple attributes from an ACI vrf query output.

---

- name: Test Play
  hosts: mgtapic
  gather_facts: no


  tasks:

    - name: Query all VRFs
      aci_vrf:
        host: "{{ ansible_host }}"
        username: "{{ ansible_user }}"
        password: "{{ ansible_password }}"
        validate_certs: no
        ###################
        state: query
      delegate_to: localhost
      register: vrf_query

    - debug:
        msg:
          - "{{ vrf_query }}"
          - "{{ vrf_query.current[:] | 
map(attribute='fvCtx.attributes.name') | list }}"
          - "{{ vrf_query.current[:] | map(attribute='fvCtx.attributes.dn') 
| list }}"

I can get the single requested output for <vrf_query>, <name> & <dn>,

[root@localhost ]# ansible-playbook aci_test.yml

PLAY [Test Play] 
***********************************************************************************************************************************************************************************************************************

TASK [Query all VRFs] 
******************************************************************************************************************************************************************************************************************
Thursday 02 July 2020  13:08:42 +0100 (0:00:00.026)       0:00:00.026 
*********
ok: [mgtapic01 -> localhost]

TASK [debug] 
***************************************************************************************************************************************************************************************************************************
Thursday 02 July 2020  13:08:43 +0100 (0:00:00.694)       0:00:00.721 
*********
ok: [mgtapic01] =>
  msg:
  - changed: false
    current:
    - fvCtx:
        attributes:
          annotation: ''
          bdEnforcedEnable: 'no'
          childAction: ''
          descr: ''
          dn: uni/tn-mgmt/ctx-oob
          extMngdBy: ''
          ipDataPlaneLearning: enabled
          knwMcastAct: permit
          lcOwn: local
          modTs: '2020-06-29T08:53:32.087+00:00'
          monPolDn: uni/tn-common/monepg-default
          name: oob
          nameAlias: ''
          ownerKey: ''
          ownerTag: ''
          pcEnfDir: ingress
          pcEnfDirUpdated: 'yes'
          pcEnfPref: enforced
          pcTag: '32770'
          scope: '2981888'
          seg: '2981888'
          status: ''
          uid: '0'
    - fvCtx:
        attributes:
          annotation: ''
          bdEnforcedEnable: 'no'
          childAction: ''
          descr: ''
          dn: uni/tn-mgmt/ctx-inb
          extMngdBy: ''
          ipDataPlaneLearning: enabled
          knwMcastAct: permit
          lcOwn: local
          modTs: '2020-06-29T08:53:32.087+00:00'
          monPolDn: uni/tn-common/monepg-default
          name: inb
          nameAlias: ''
          ownerKey: ''
          ownerTag: ''
          pcEnfDir: ingress
          pcEnfDirUpdated: 'yes'
          pcEnfPref: enforced
          pcTag: '32770'
          scope: '2686976'
          seg: '2686976'
          status: ''
          uid: '0'
    - fvCtx:
        attributes:
          annotation: ''
          bdEnforcedEnable: 'no'
          childAction: ''
          descr: ''
          dn: uni/tn-common/ctx-default
          extMngdBy: ''
          ipDataPlaneLearning: enabled
          knwMcastAct: permit
          lcOwn: local
          modTs: '2020-06-29T08:53:31.783+00:00'
          monPolDn: uni/tn-common/monepg-default
          name: default
          nameAlias: ''
          ownerKey: ''
          ownerTag: ''
          pcEnfDir: ingress
          pcEnfDirUpdated: 'yes'
          pcEnfPref: enforced
          pcTag: '49153'
          scope: '2883584'
          seg: '2883584'
          status: ''
          uid: '0'
    - fvCtx:
        attributes:
          annotation: ''
          bdEnforcedEnable: 'no'
          childAction: ''
          descr: ''
          dn: uni/tn-infra/ctx-overlay-1
          extMngdBy: ''
          ipDataPlaneLearning: enabled
          knwMcastAct: permit
          lcOwn: local
          modTs: '2020-06-29T08:53:30.437+00:00'
          monPolDn: uni/tn-common/monepg-default
          name: overlay-1
          nameAlias: ''
          ownerKey: ''
          ownerTag: ''
          pcEnfDir: ingress
          pcEnfDirUpdated: 'yes'
          pcEnfPref: enforced
          pcTag: '49153'
          scope: '16777199'
          seg: '16777199'
          status: ''
          uid: '0'
    - fvCtx:
        attributes:
          annotation: ''
          bdEnforcedEnable: 'no'
          childAction: ''
          descr: ''
          dn: uni/tn-common/ctx-copy
          extMngdBy: ''
          ipDataPlaneLearning: enabled
          knwMcastAct: permit
          lcOwn: local
          modTs: '2020-06-29T08:53:31.783+00:00'
          monPolDn: uni/tn-common/monepg-default
          name: copy
          nameAlias: ''
          ownerKey: ''
          ownerTag: ''
          pcEnfDir: ingress
          pcEnfDirUpdated: 'yes'
          pcEnfPref: enforced
          pcTag: '16386'
          scope: '3047424'
          seg: '3047424'
          status: ''
          uid: '0'
    - fvCtx:
        attributes:
          annotation: orchestrator:msc
          bdEnforcedEnable: 'no'
          childAction: ''
          descr: ''
          dn: uni/tn-tn-ncsd/ctx-v38-aci
          extMngdBy: ''
          ipDataPlaneLearning: enabled
          knwMcastAct: permit
          lcOwn: local
          modTs: '2020-06-29T08:58:27.856+00:00'
          monPolDn: uni/tn-common/monepg-default
          name: v38-aci
          nameAlias: ''
          ownerKey: ''
          ownerTag: ''
          pcEnfDir: ingress
          pcEnfDirUpdated: 'yes'
          pcEnfPref: enforced
          pcTag: '32770'
          scope: '2916352'
          seg: '2916352'
          status: ''
          uid: '15374'
     - - oob
    - inb
    - ave-ctrl
    - default
    - overlay-1
    - copy
    - v38-aci
    
  - - uni/tn-mgmt/ctx-oob
    - uni/tn-mgmt/ctx-inb
    - uni/tn-infra/ctx-ave-ctrl
    - uni/tn-common/ctx-default
    - uni/tn-infra/ctx-overlay-1
    - uni/tn-common/ctx-copy
    - uni/tn-tn-ncsd/ctx-v38-aci
    

PLAY RECAP 
*****************************************************************************************************************************************************************************************************************************
mgtapic01             : ok=2    changed=0    unreachable=0    failed=0    
skipped=0    rescued=0    ignored=0

Thursday 02 July 2020  13:08:43 +0100 (0:00:00.154)       0:00:00.875 
*********
===============================================================================
Query all VRFs 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
0.70s
debug 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
0.15s



 but would like to try & capture the output as

<name>:
  tenant: <dn>   (removing the "uni/tn-" & the "/ctx...."

v38-aci:
  tenant: tn-ncsd

Still learning here so any advise would be great. Would it be using Jinja2 
filters or creating a new python script to filter?

Thanks in Advance

Albert Short

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/36d5f9b9-d13d-4ba5-a73b-f420efeaad55o%40googlegroups.com.

Reply via email to