*Thank you Todd for your time and help.*

Hi All,

I have tested in my environment. It is working good.

i have one item to update for conditions. Could anyone please do me a favor
. Thank you

[ how to add one condition like vol_name != '_test' or vol_name !='Test*' ] (
this way working in Python looking help of playbook as i tried and not
working)
    - name: Copy csv where status == 'online' and work_status == 'not_used'
      ansible.builtin.copy:
        content: |
          cluster_name,log_cluster,vol_name,status,work_status
          {% for line in csv %}
          {%     set (cluster_name,log_cluster,vol_name,status,work_status)
= line.split(',', maxsplit=4) %}
          {%     if status == 'online' and work_status == 'not_used'  %}
          {{ line }}
          {%     endif %}
          {% endfor %}
        dest: aharonu-online-not_used.csv
[ How dow we include instead of endswith('Test'), i have to include like
vol_name contains 'Test', 'test'..etc]
    - name: Copy csv where status == 'offline' and vol_name.endswith('Test')
      # Note: there are none of these in the test data.
      ansible.builtin.copy:
        content: |
          cluster_name,log_cluster,vol_name,status,work_status
          {% for line in csv %}
          {%     set (cluster_name,log_cluster,vol_name,status,work_status)
= line.split(',', maxsplit=4) %}
          {%     if status == 'offline' or status == 'online' and
vol_name.endswith('Test') %}
          {{ line }}
          {%     endif %}
          {% endfor %}
        dest: aharonu-offline-test.csv
    - name: Copy csv where status == 'online' and work_status == 'used'
      ansible.builtin.copy:
        content: |
          cluster_name,log_cluster,vol_name,status,work_status
          {% for line in csv %}
          {%     set (cluster_name,log_cluster,vol_name,status,work_status)
= line.split(',', maxsplit=4) %}
          {%     if status == 'online' and work_status == 'used' %}
          {{ line }}
          {%     endif %}
          {% endfor %}
        dest: aharonu-online-used.csv





On Tue, 7 Mar 2023, 09:36 Todd Lewis, <[email protected]> wrote:

> ---
> - name: Creating CSVs from subsets of data
>   hosts: localhost
>   gather_facts: false
>   vars:
>     csv:
>       - cluster1,virtual_clu1,log_vol1,online,used
>       - cluster1,virtual_clu1,log_vol2,offline,not_used
>       - cluster1,virtual_clu1,log_vol3_Test,online,not_used
>       - cluster1,virtual_clu1,log_vol4,offline,not_used
>       - cluster2,virtual_clu2,log_vol6,online,used
>       - cluster2,virtual_clu2,log_vol1,offline,not_used
>       - cluster2,virtual_clu2,log_vol3,online,not_used
>       - cluster2,virtual_clu2,log_vol4,online,used
>   tasks:
>
>     - name: Copy csv where status == 'online' and work_status == 'not_used'
>       ansible.builtin.copy:
>         content: |
>           cluster_name,log_cluster,vol_name,status,work_status
>           {% for line in csv %}
>           {%     set (cluster_name,log_cluster,vol_name,status,work_status) = 
> line.split(',', maxsplit=4) %}
>           {%     if status == 'online' and work_status == 'not_used' %}
>           {{ line }}
>           {%     endif %}
>           {% endfor %}
>         dest: aharonu-online-not_used.csv
>
>     - name: Copy csv where status == 'offline' and vol_name.endswith('Test')
>       # Note: there are none of these in the test data.
>       ansible.builtin.copy:
>         content: |
>           cluster_name,log_cluster,vol_name,status,work_status
>           {% for line in csv %}
>           {%     set (cluster_name,log_cluster,vol_name,status,work_status) = 
> line.split(',', maxsplit=4) %}
>           {%     if status == 'offline' and vol_name.endswith('Test') %}
>           {{ line }}
>           {%     endif %}
>           {% endfor %}
>         dest: aharonu-offline-test.csv
>
>     - name: Copy csv where status == 'online' and work_status == 'used'
>       ansible.builtin.copy:
>         content: |
>           cluster_name,log_cluster,vol_name,status,work_status
>           {% for line in csv %}
>           {%     set (cluster_name,log_cluster,vol_name,status,work_status) = 
> line.split(',', maxsplit=4) %}
>           {%     if status == 'online' and work_status == 'used' %}
>           {{ line }}
>           {%     endif %}
>           {% endfor %}
>         dest: aharonu-online-used.csv
>
> Save the above as aharonu-csv.yml and run as
>
> ansible-playbook aharonu-csv.yml -vv && grep , ./aharonu*.csv
>
>
> On 3/6/23 2:58 PM, Aharonu wrote:
>
> Thanks Walter.
>
> May I still ask a favor for CVS data structure atleast for any of one
> condion here so I can refer and work on remaining? Once I got flow it helps
> to explore more. Thanking you.
>
> The header must be:  cluster_name,log_cluster,vol_name,status,work_status
>
> not working:
> (it has to give here when status=online and  work_status=not_used )
> exclude:
> (it has go give here when status=offline and  vol_name=<name contacts
> 'Test'>)
> working:
> (it has to give here when status=online and work_status=used
> [other then not working & exclude list] )
>
>
>
> On Tue, 7 Mar 2023, 01:13 Aharonu, <[email protected]> wrote:
>
>> Hi Walter,
>>
>> Getting for the day!
>>
>> Actually I have data stored in 'csv' as mentioned below it is received
>> from some other task and stories in 'csv' variable.
>>
>> I wanted to created CVS file from that data with required data structure
>> I requested. Could you please help me with this to achieve my requirement?
>> Thank you
>>
>> On Tue, 7 Mar 2023, 00:39 Aharonu, <[email protected]> wrote:
>>
>>> Hi All,
>>>
>>> Could anyone please help for storing data into CSV file from
>>> variable with required structure ? Thank you
>>>
>>> I have csv variable data from other set_fact as mentioned below
>>>
>>> "csv": [
>>>         "cluster1,virtual_clu1,log_vol1,online,used",
>>>         "cluster1,virtual_clu1,log_vol2,offline,not_used",
>>>         "cluster1,virtual_clu1,log_vol3_Test,online,not_used",
>>>         "cluster1,virtual_clu1,log_vol4,offline,not_used",
>>>         "cluster2,virtual_clu2,log_vol6,online,used",
>>>         "cluster2,virtual_clu2,log_vol1,offline,not_used",
>>>         "cluster2,virtual_clu2,log_vol3,online,not_used"
>>>         "cluster2,virtual_clu2,log_vol4,online,used"
>>>     ]
>>>
>>> *Looking for:*
>>> The header must be:
>>> cluster_name,log_cluster,vol_name,status,work_status
>>>
>>> not working:
>>> (it has to give here when status=online and  work_status=not_used )
>>> exclude:
>>> (it has go give here when status=offline and  vol_name=<name contacts
>>> 'Test'>)
>>> working:
>>> (it has to give here when status=online and work_status=used
>>> [other then not working & exclude list] )
>>>
>>> *example: file1.csv*
>>>
>>> not working:
>>> cluster_name,log_cluster,vol_name,status,work_status
>>> cluster2,virtual_clu2,log_vol3,online,not_used
>>>
>>> exclude:
>>> cluster_name,log_cluster,vol_name,status,work_status
>>> cluster1,virtual_clu1,log_vol3_Test,online,not_used
>>> cluster1,virtual_clu1,log_vol2,offline,not_used
>>> cluster1,virtual_clu1,log_vol4,offline,not_used
>>> cluster2,virtual_clu2,log_vol1,offline,not_used
>>>
>>> working:
>>> cluster_name,log_cluster,vol_name,status,work_status
>>> cluster1,virtual_clu1,log_vol1,online,used
>>> cluster2,virtual_clu2,log_vol6,online,used
>>> cluster2,virtual_clu2,log_vol4,online,used
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
> 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/CANGEjuUjv761HrBWPatHrFCqrCt7-cRLtSda0eA2%3D7o26-Rjtw%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CANGEjuUjv761HrBWPatHrFCqrCt7-cRLtSda0eA2%3D7o26-Rjtw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> Todd
>
> --
> 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/21aa0394-92f5-82c8-bcc4-f9b988619984%40gmail.com
> <https://groups.google.com/d/msgid/ansible-project/21aa0394-92f5-82c8-bcc4-f9b988619984%40gmail.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/CANGEjuVM%2BXV_Vof5vej%3DOCaww4Uu%3DRe2XQzGfB51NEXzUemb5g%40mail.gmail.com.

Reply via email to