# How to convert a text area to list of disks for vmware\_guest

**URL:** <https://forum.ansible.com/t/how-to-convert-a-text-area-to-list-of-disks-for-vmware-guest/30633>\
**Category:** Ansible Project\
**Tags:** awx\
**Created:** [June 22, 2019, 5:40am UTC](https://forum.ansible.com/t/how-to-convert-a-text-area-to-list-of-disks-for-vmware-guest/30633 "2019-06-22T05:40:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Angel\_Rengifo\_Cancin](https://avatars.discourse-cdn.com/v4/letter/a/9e8a1a/32.png) [@Angel\_Rengifo\_Cancin](https://forum.ansible.com/u/Angel_Rengifo_Cancin)\
**Post date:** [June 22, 2019, 5:40am UTC](https://forum.ansible.com/t/how-to-convert-a-text-area-to-list-of-disks-for-vmware-guest/30633/1 "2019-06-22T05:40:59Z")

</div>

Hello guys:

There’s something I’ve been struggling with for some hours without knowing exactly how to solve it.  
Through AWX, I want users to enter the size of disks for a virtual machine using a text area in a survey, like this:

100  
20  
130  
230

When I assign this input to a variable, I see that ansible converts them to a list, like this:

mydisks: |-  
100  
20  
130  
230

By using vmware\_guest module, I’d like to convert it to something like…

vmware\_guest:  
disk:

- size\_gb: 100  
type: None

- size\_gb: 20  
type: None

- size\_gb: 130  
type: None

- size\_gb: 230  
type: None

So I found some references on Internet that look like this jinja2 expressions:

vmware\_guest:  
disk: \>-  
[{% for size in mydisks.split() %}‘{ size\_gb: {{ size }}, type: None }’, {% endfor %}]

However, when I run the playbook I got an ugly error like this:

TASK [Create virtual machine] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: ‘str’ object has no attribute ‘get’  
fatal: [localhost]: FAILED! =\> {“changed”: false, “module\_stderr”: “Traceback (most recent call last):\n File "/home/arengifo/.ansible/tmp/ansible-tmp-1561181905.46-145468152234880/AnsiballZ\_vmware\_guest.py", line 114, in \n \_ansiballz\_main()\n File "/home/arengifo/.ansible/tmp/ansible-tmp-1561181905.46-145468152234880/AnsiballZ\_vmware\_guest.py", line 106, in \_ansiballz\_main\n invoke\_module(zipped\_mod, temp\_path, ANSIBALLZ\_PARAMS)\n File "/home/arengifo/.ansible/tmp/ansible-tmp-1561181905.46-145468152234880/AnsiballZ\_vmware\_guest.py", line 49, in invoke\_module\n imp.load\_module(‘ **main** ’, mod, module, MOD\_DESC)\n File "/tmp/ansible\_vmware\_guest\_payload\_iGarsa/ **main**.py", line 2630, in \n File "/tmp/ansible\_vmware\_guest\_payload\_iGarsa/ **main**.py", line 2619, in main\n File "/tmp/ansible\_vmware\_guest\_payload\_iGarsa/ **main**.py", line 2135, in deploy\_vm\n File "/tmp/ansible\_vmware\_guest\_payload\_iGarsa/ **main**.py", line 1811, in configure\_disks\nAttributeError: ‘str’ object has no attribute ‘get’\n”, “module\_stdout”: “”, “msg”: “MODULE FAILURE\nSee stdout/stderr for the exact error”, “rc”: 1}

Would someone, please, help me with this issue? I’m sure my jinja2 expression it’s wrong, but I can figure out what’s the right way to do it.

Thanks in advance

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [June 22, 2019, 7:12am UTC](https://forum.ansible.com/t/how-to-convert-a-text-area-to-list-of-disks-for-vmware-guest/30633/2 "2019-06-22T07:12:32Z")

</div>

> When I assign this input to a variable, I see that ansible converts them to  
> a list, like this:
> 
> mydisks: |-  
> &nbsp;&nbsp;&nbsp;100  
> &nbsp;&nbsp;&nbsp;20  
> &nbsp;&nbsp;&nbsp;130  
> &nbsp;&nbsp;&nbsp;230
> 
> By using vmware\_guest module, I'd like to convert it to something like...
> 
> vmware\_guest:  
> &nbsp;&nbsp;&nbsp;disk:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- size\_gb: 100  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: None  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- size\_gb: 20  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: None  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- size\_gb: 130  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: None  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- size\_gb: 230  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: None
> 
> So I found some references on Internet that look like this jinja2  
> expressions:
> 
> vmware\_guest:  
> &nbsp;&nbsp;&nbsp;disk: \>-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{% for size in mydisks.split() %}'{ size\_gb: {{ size }}, type: None  
> }', {% endfor %}]
> 
> However, when I run the playbook I got an ugly error like this:

\<snip /\>

> Would someone, please, help me with this issue? I'm sure my jinja2  
> expression it's wrong, but I can figure out what's the right way to do it.

With set\_fact you can do this

- set\_fact:  
&nbsp;&nbsp;&nbsp;&nbsp;disk: "{{ disk | default() + [{ 'size\_gb': item, 'type': 'None' }] }}"  
&nbsp;&nbsp;with\_items: '{{ mydisks.split() }}'

---

<div class="post-metadata">

**Author:** ![Angel\_Rengifo\_Cancin](https://avatars.discourse-cdn.com/v4/letter/a/9e8a1a/32.png) [@Angel\_Rengifo\_Cancin](https://forum.ansible.com/u/Angel_Rengifo_Cancin)\
**Post date:** [June 22, 2019, 7:42pm UTC](https://forum.ansible.com/t/how-to-convert-a-text-area-to-list-of-disks-for-vmware-guest/30633/3 "2019-06-22T19:42:52Z")

</div>

Thank you so much, Kai. This worked perfectly!
