[Engine-devel] Requirements for Aeolus instance data injection.

David Lutterkort lutter at redhat.com
Thu Jan 12 22:32:44 UTC 2012


On Thu, 2012-01-12 at 16:45 -0500, Ayal Baron wrote:
> 
> ----- Original Message -----
> > On Wed, 2012-01-11 at 22:35 +0200, Dan Kenigsberg wrote:
> > > On Wed, Jan 11, 2012 at 12:10:04PM -0800, David Lutterkort wrote:
> > > > > > 
> > > > > >          In practical terms, the blob of data should be
> > > > > >          passed to the
> > > > > >          'start VM' call base64 encoded, and RHEV-M should
> > > > > >          decode it
> > > > > >          just
> > > > > >          before putting it into its proper place.
> > > > > 
> > > > > This requirement is not clear, why not just pass data as
> > > > > 'binary' to
> > > > > 'start vm' and vdsm would write as is into the file, REST
> > > > > already
> > > > > knows how to encode/decode.
> > > > 
> > > > I mostly mentioned base64 because that's how other API's (EC2,
> > > > RAX)
> > > > encode6 this data; to be pedantic, it's not REST that determines
> > > > the
> > > > encoding, but how the request payload is serialized (XML, JSON,
> > > > application/x-www-form-urlencoded ..) The nice thing about base64
> > > > is
> > > > that it works with all of them, without requiring add'l encoding,
> > > > but
> > > > ultimately anything works that allows passing arbitrary binary
> > > > blobs as
> > > > user_data.
> > > 
> > > But base64 is the additional encoding... I'm generally reluctant to
> > > intorduce
> > > an application-level encoding if the transport already has one.
> > > Does any REST
> > > serializer have a problem with natively chewing binary data (I
> > > really do not
> > > know)?
> > 
> > There's no such thing as a REST serializer; serialization is handled
> > by
> > whatever you use to process your payloads (XML, JSON, ...) and the
> > libraries people use for that have to handle serialization-specific
> > encodings; base64 is a little friendlier for really underpowered
> > clients, like shell scripts.
> > 
> > Don't underestimate how much people automate armed with little more
> > than
> > bash and curl - making that easy is one of the big attractions of
> > REST.
> 
> Still, if the data is already passed encoded to 'start vm' then the
> guest itself should decode it (encoding is done outside of the system
> and so should the decoding).

Both EC2 and RAX (and Deltacloud) ask for base64 encoded data, and
decode it before presenting it to the instance. Why introduce a
difference for such a minor point ?

David





More information about the Engine-devel mailing list