Zeros are truncated from strings. #10281

Im getting that bug happen to me, but Im on 2.9.2

`
% dpkg -l ansible

Desired=Unknown/Install/Remove/Purge/Hold

Im getting that bug happen to me, but Im on 2.9.2

`
% dpkg -l ansible

Desired=Unknown/Install/Remove/Purge/Hold

> Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend

>/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)

>>/ Name Version Architecture Description

+++-=============================================================-===================================-===================================-================================================================================================================================

ii ansible 2.9.2-1ppa~xenial all Ansible IT Automation

`

The code in question:
`
msg: "/usr/lib/postgresql-{{ postgresqlversion }}/bin/pg_dump -h
/run/postgresql/{{ postgresqlversion }} -C --clean {{ dbname }}|
/usr/bin/pigz > {{ dbbackuplocation }}/{{ oldversion }}_{{ dbname }}_{{
dbbackups.matched }}.sql.gz"
`

In the above, oldscmversion is:

`
% cat vars/demo-scmversion.yml

oldversion: 19.10
`

You need to make it a string by quoting it; otherwise it's treated as a floating point number. This is yaml behavior.

V/r,
James Cassell

Im getting that bug happen to me, but Im on 2.9.2

>
%dpkg -l ansible

Desired=Unknown/Install/Remove/Purge/Hold

>Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend

>/ Err?=(none)/Reinst-required (Status,Err:uppercase=bad)

>>/Name Version Architecture
Description

+++-=============================================================-===================================-===================================-================================================================================================================================

ii ansible 2.9.2-1ppa~xenial all
AnsibleIT Automation

>

The code in question:
>
msg:"/usr/lib/postgresql-{{ postgresqlversion }}/bin/pg_dump -h /run/postgresql/{{ postgresqlversion }} -C --clean {{
dbname }}| /usr/bin/pigz > {{ dbbackuplocation }}/{{ oldversion }}_{{ dbname }}_{{ dbbackups.matched }}.sql.gz"
>

In the above, oldscmversion is:

>
%cat vars/demo-scmversion.yml

oldversion:19.10
>

However the resulting filename for the above once rendered is "19.1"
Ill confess to not know how to find out what version of ansible that bug was actually addressed, but given it was back
in 2015, I suspect the fix referred to is in the version I am using. Can anyone help / suggest a work around?

I would try to tell Ansible that I really want a string:

oldversion: '19.10'

Regards
        Racke

Thank you all for your assistance

`

141 - name: write the version to an variables file we can include in other plays

142 copy:
143 dest: “vars/{{ appname }}-version.yml”
144 content: “oldversion: ‘{{ oldversion }}’”
145 delegate_to: localhost
146 when:
147 - existingapp.stat.exists == True

`

With {{ oldversion }} in single quotes. Other things I tried including (on line 144) {{ oldversion | quote }} and {{ oldversion | string }} where in the task where Im rendering the command for the backup. e.g.

`
/usr/lib/postgresql-{{ postgresqlversion }}/bin/pg_dump -h /run/postgresql/{{ postgresqlversion }} -C --clean {{ dbname }}| /usr/bin/pigz > {{ dbbackuplocation }}/{{ oldversion | string }}{{ dbname }}{{ dbbackups.matched }}.sql.gz

`