*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.