Node Specific Overrides for Ceph fail on awk command
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
High
|
John Fulton |
Bug Description
When using Node Specific Overrides to pass a different
list of devices to a Ceph deployment [1] the additional
devices are not passed to the specific node even though
the UUID is correct.
After investigating I found the awk command that is executed
by ansible is not valid. It executes:
"dmidecode -s system-uuid | awk 'match($0, /[0-9A-
Which returns "backslash not last character on line" [2].
When examining the role [3] which prepares this command however
there is no extra whitespace after the backslashes.
I see the problematic backslash embedded in a pair of single
quotes which is embedded in YAML's block chomping indicator
'>-' (which replaces newlines with spaces and puts no newline
at the end) which is in turn embedded in YAML's block chomping
indicator '|' (which keeps new lines but adds a single newline
at the end) which is provided as the content flag of Ansible's
copy module. It might be safer to just make the awk statement
cover one line.
[2]
TASK [register machine id] *******
changed: [undercloud] => {"changed": true, "cmd": "dmidecode -s system-uuid | awk 'match($0, /[0-9A-
Fix proposed to branch: master /review. opendev. org/696391
Review: https:/