On 11/26, David Lutterkort wrote:
> On Mon, 2012-11-05 at 16:04 +0100, [email protected] wrote:
> > From: Michal Fojtik <[email protected]>
> > 
> > * .to_hash produce Ruby Hash that can be converted to JSON
> > * This patch makes 'crack' library obsolete
> > * NOTE: This patch might break JSON backward compatibility.
> 
> Ronelle actually pointed this out, but:

Right. I though we agree on revamping whole JSON output to be more
reliable and consumable by Heat and other projects.

> > diff --git a/server/lib/deltacloud/collections/instances.rb 
> > b/server/lib/deltacloud/collections/instances.rb
> > index ce536ce..cf6504c 100644
> > --- a/server/lib/deltacloud/collections/instances.rb
> > +++ b/server/lib/deltacloud/collections/instances.rb
> > @@ -60,7 +60,13 @@ module Deltacloud::Collections
> >            status 201  # Created
> >            respond_to do |format|
> >              format.xml  { haml :"instances/#{action_handler}" }
> > -            format.json { xml_to_json("instances/#{action_handler}") }
> > +            format.json do
> > +              if @elements
> > +                JSON::dump(:instances => @elements.map { |i| i.to_hash })
> > +              elsif @instance and @instance.id
> > +                JSON::dump(:instance => @instance.to_hash)
> 
> That needs to be @instance.to_hash(self) - a quick grep through this dir
> shows there are quite a few more places where to_hash is called without
> an argument.
> 
> Ronelle's command to reproduce:
> 
>         curl -X POST -F "name=myname" -F "r "mockuser:mockpassword" -H 
> 'Accept: application/json' http://localhost:3001/api/instances

Thanks! Fixed this in http://tracker.deltacloud.org/set/154

> 
> David
> 
> 

-- 
Michal Fojtik <[email protected]>
Deltacloud API, CloudForms

Reply via email to