Problem:
The openstack driver had been base64 encoding the user data
resulting in inconsistent behavior between drivers.
Solution:
Do not base64 encode the user data in the Openstack driver.
Testing:
I tested by curling http and also using the ruby client to
create instences with user data on Openstack, RHEVm3.1 and Ec2
The test matrix:
rhevm3.1
ruby( Base64 encoded user-data sent) -> instance has ( user-data rcvd
Base64 encoded )
curl( Base64 encoded user-data sent) -> instance has ( user-data rcvd
decoded/readable )
ec2
ruby( Base64 encoded user-data sent) -> instance has ( user-data rcvd
Base64 encoded)
curl( Base64 encoded user-data sent) -> instance has ( user-data rcvd
decoded/readable )
Openstack
ruby( Base64 encoded user-data sent) -> instance has ( user-data rcvd
"Double" Base64 encoded )
curl( Base64 encoded user-data sent) -> instance has ( user-data rcvd
Base64 encoded )
Openstack (with this patch)
ruby( Base64 encoded user-data sent) -> instance has ( user-data rcvd
Base64 encoded)
curl( Base64 encoded user-data sent) -> instance has ( user-data rcvd
decoded/readable )