Description of problem: When loading heat templates encoded in UTF-8 or with non-ascii characters. The customer is experiencing an ascii decoding error from the cloudforms VS heat api. :body => "{\"explanation\": \"The server could not comply with the request since it is either malformed or otherwise incorrect.\", \"code\": 400, \"error\": {\"message\": \"Failed to validate: 'ascii' codec can't decode byte 0xe2 in position 3525: ordinal not in range(128)\", \"traceback\": null, \"type\": \"StackValidationFailed\"}, \"title\": \"Bad Request\"}" Version-Release number of selected component (if applicable): 5.3.3 How reproducible: Reliably Steps to Reproduce: 1. Load heat templates containing UTF-8 chars. 2. Attempt to deploy a heat stack. Actual results: :body => "{\"explanation\": \"The server could not comply with the request since it is either malformed or otherwise incorrect.\", \"code\": 400, \"error\": {\"message\": \"Failed to validate: 'ascii' codec can't decode byte 0xe2 in position 3525: ordinal not in range(128)\", \"traceback\": null, \"type\": \"StackValidationFailed\"}, \"title\": \"Bad Request\"}" Expected results: Deployment would proceed. Additional info: An example of the character issue (note the quotation marks): diff RHEL-Base.yaml RHEL-Base.yaml.old 118c118 < if [ "$OS_MAJOR_VERSION" == "7" ]; then --- > if [ “$OS_MAJOR_VERSION” == “7” ]; then
This issue is considered as an user error. We don't do any decoding or translation of the template content but simply pass it through to the provider. It is user's responsibility to submit a valid template acceptable by the provider (and the version). In this particular example non-ascii quotation “ is completely different from ascii ". Even an decoding cannot convert one to the other, but ascii " is essential to identify a variable or value. I would recommend close this BZ as NOTABUG
I will advise the customer of same.
Message relayed to the customer. Closing as NOTABUG.