After some discussion with Joe, who's working on the first serious user of user_data injection, Audrey II, we realized that the Deltacloud API was terribly unclear in how encoding/decoding the user data should work.
We want to follow the same rules that other cloud API's have established (which seem to me the only sane ones): * The REST API expects user_data to be base64 encoded, and will arrange for user_data to show up in decoded form inside the instance. Where the user data shows up is cloud specific. So far, we have - EC2: http://169.254.169.254/latest/user-data - vSphere: file deltacloud-user-data.txt on virtual CD-ROM - RHEV-M: file deltacloud-user-data.txt on virtual floppy * Deltacloud clients should make the whole encoding/decoding dance transparent for their users. IOW, clients should just pass the raw data to the client library, and the library will base64 encode the data before making the REST request to the server. This series of patches makes sure we implement the above behavior across all drivers and the ruby client. I didn't have a chance to test this for RHEV-M and vSphere. Hopefully, somebody else can (I am looking at you Michal ;). I will be out tomorrow; once the patch is ACK'd, please somebody else commit this. David