Loop Not Able to Parse After First iteration

25 views
Skip to first unread message

javed khan Siddque

unread,
Jun 12, 2023, 2:52:43 PM6/12/23
to Ansible Project
i required to create a list of paths but it is failing after first iteration


=====================================
  vars:
    isilon_cluster_name_p: "server"
    primary_data_center: "SSDC"
    region: "SC"
    division: "HOS"
    app_id: "1234"
    env: "D"
    my_app_id: "{{ '{:>05}'.format(app_id) }}"
    my_seq_id: "{{ '%02d' | format(item) }}"
    list_of_sequence: "{{ range(1, 10) | list }}"
  tasks:
    - name: "Module Loading Create List Of FileSystem Path For Looping - DEV && PROD"
      when: list_of_sequence is iterable
      block:
        - name: "Print with_sequence"
          ansible.builtin.set_fact:
            my_list: "{{ my_list | default([]) + ['/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}%02d' | format(item)] }}"
          loop: "{{ list_of_sequence }}"


        - name: "Print my_path_list_prod"
          ansible.builtin.debug:
            msg:
             - "{{ my_list }}"



expectation
=================================================================
TASK [Print  my_list   ] ***************************************************************************
ok: [localhost] => {
    "msg": [
        [
            "/ifs/SSDC/server/HOSSCD0123401",
            "/ifs/SSDC/server/HOSSCD0123402",
            "/ifs/SSDC/server/HOSSCD0123403",
            "/ifs/SSDC/server/HOSSCD0123404",
            "/ifs/SSDC/server/HOSSCD0123405",
            "/ifs/SSDC/server/HOSSCD0123406",
            "/ifs/SSDC/server/HOSSCD0123407",
            "/ifs/SSDC/server/HOSSCD0123408",
            "/ifs/SSDC/server/HOSSCD0123409"
        ]
    ]
}
=================================================================



getting
=================================================================
    " my_list": [
            "/ifs/SSDC/server/HOSSCD0123401",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}02",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}03",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}04",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}05",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}06",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}07",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}08",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}09",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}10",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}11",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}12",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}13",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}14",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}15",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}16",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}17",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}18",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}19",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}20",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}21",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}22",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}23",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}24",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}25",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}26",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}27",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}28",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}29",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}30",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}31",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}32",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}33",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}34",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}35",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}36",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}37",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}38",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}39",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}40",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}41",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}42",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}43",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}44",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}45",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}46",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}47",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}48",
            "/ifs/{{ primary_data_center }}/{{ isilon_cluster_name_p }}/{{ division | upper }}{{ region | upper }}{{ env | upper }}{{ my_app_id }}49"
        ],
=================================================================

Vladimir Botka

unread,
Jun 12, 2023, 6:11:59 PM6/12/23
to javed khan Siddque, ansible...@googlegroups.com
On Mon, 12 Jun 2023 11:52:43 -0700 (PDT)
javed khan Siddque <javedkha...@gmail.com> wrote:

> vars:
> isilon_cluster_name_p: "server"
> primary_data_center: "SSDC"
> region: "SC"
> division: "HOS"
> app_id: "1234"
> env: "D"
> my_app_id: "{{ '{:>05}'.format(app_id) }}"
> my_seq_id: "{{ '%02d' | format(item) }}"
> list_of_sequence: "{{ range(1, 10) | list }}"
> ...
> "msg": [
> [
> "/ifs/SSDC/server/HOSSCD0123401",
> "/ifs/SSDC/server/HOSSCD0123402",
> "/ifs/SSDC/server/HOSSCD0123403",
> "/ifs/SSDC/server/HOSSCD0123404",
> "/ifs/SSDC/server/HOSSCD0123405",
> "/ifs/SSDC/server/HOSSCD0123406",
> "/ifs/SSDC/server/HOSSCD0123407",
> "/ifs/SSDC/server/HOSSCD0123408",
> "/ifs/SSDC/server/HOSSCD0123409"
> ]
> ]

Given the variables for testing

center: "SSDC"
cluster: "server"
division: "div"
region: "reg"
env: "env"
app_id: "1234"
list_of_sequence: "{{ range(1, 10) }}"

Declare *path*, *prefix*, and *app*. You have to convert *app_id*
from string to integer because you quotes the number

path: "/ifs/{{ center }}/{{ cluster }}"
prefix: "{{ division }}{{ region }}{{ env }}"
app: "{{ '%05d' % (app_id|int) }}"

Use Jinja template to create the list

my_list: |
{% filter from_yaml %}
{% for i in list_of_sequence %}
- {{ path }}/{{ prefix|upper }}{{ app }}{{ '%02d' % (i) }}
{% endfor %}
{% endfilter %}

gives

my_list:
- /ifs/SSDC/server/DIVREGENV0123401
- /ifs/SSDC/server/DIVREGENV0123402
- /ifs/SSDC/server/DIVREGENV0123403
- /ifs/SSDC/server/DIVREGENV0123404
- /ifs/SSDC/server/DIVREGENV0123405
- /ifs/SSDC/server/DIVREGENV0123406
- /ifs/SSDC/server/DIVREGENV0123407
- /ifs/SSDC/server/DIVREGENV0123408
- /ifs/SSDC/server/DIVREGENV0123409


--
Vladimir Botka
Reply all
Reply to author
Forward
0 new messages