Ok.  Just note that it follows how other classes (e.g., catalog) already do 
json, so it's not like I was inventing something, and there'll need to be 
porting regardless, it looks like.

On Apr 22, 2011, at 8:53 AM, Max Martin wrote:

> There was a lot of discussion amongst some of the devs yesterday while we 
> were looking at this as to whether the document_type tag as specified in 
> these commits is the way we want to be defining the type of object a generic 
> JSON message represents. It became clear that there was a lot of disagreement 
> over the issue, and that we need to have a more in-depth design discussion 
> about it before implementing an API.
> 
> On Thu, Apr 21, 2011 at 8:43 PM, Luke Kanies <[email protected]> wrote:
> Was it really necessary to revert all three patches?
> 
> On Apr 21, 2011, at 5:28 PM, Max Martin wrote:
> 
> > This reverts commit d3c94e62386ec03617015f6e6269b1de805954ea.
> > The JSON patch series has caused problems with the inventory service,
> > and further discussion is needed to decide how to serialize objects to
> > PSON with regards to future compatibility.
> >
> > Conflicts (Manually resolved):
> >
> >       spec/unit/node_spec.rb
> >
> > Paired-with: Matt Robinson <[email protected]>
> > Signed-off-by: Max Martin <[email protected]>
> > ---
> > Local-branch: ticket/2.7.x/7080-reverts
> > lib/puppet/node.rb     |   23 -----------------
> > spec/unit/node_spec.rb |   63 
> > ------------------------------------------------
> > 2 files changed, 0 insertions(+), 86 deletions(-)
> >
> > diff --git a/lib/puppet/node.rb b/lib/puppet/node.rb
> > index 4bd4d1d..5b0a986 100644
> > --- a/lib/puppet/node.rb
> > +++ b/lib/puppet/node.rb
> > @@ -20,29 +20,6 @@ class Puppet::Node
> >   attr_accessor :name, :classes, :source, :ipaddress, :parameters
> >   attr_reader :time
> >
> > -  def self.from_pson(pson)
> > -    raise ArgumentError, "No name provided in pson data" unless name = 
> > pson['name']
> > -
> > -    node = new(name)
> > -    node.classes = pson['classes']
> > -    node.parameters = pson['parameters']
> > -    node.environment = pson['environment']
> > -    node
> > -  end
> > -
> > -  def to_pson(*args)
> > -    result = {
> > -      'document_type' => "Puppet::Node",
> > -      'data' => {}
> > -    }
> > -    result['data']['name'] = name
> > -    result['data']['classes'] = classes unless classes.empty?
> > -    result['data']['parameters'] = parameters unless parameters.empty?
> > -    result['data']['environment'] = environment.name
> > -
> > -    result.to_pson(*args)
> > -  end
> > -
> >   def environment
> >     return super if @environment
> >
> > diff --git a/spec/unit/node_spec.rb b/spec/unit/node_spec.rb
> > index e8f826d..169a9cd 100755
> > --- a/spec/unit/node_spec.rb
> > +++ b/spec/unit/node_spec.rb
> > @@ -36,69 +36,6 @@ describe Puppet::Node do
> >       node.environment.name.should == :bar
> >     end
> >   end
> > -
> > -  describe "when converting to json" do
> > -    before do
> > -      @node = Puppet::Node.new("mynode")
> > -    end
> > -
> > -    it "should provide its name" do
> > -      @node.should set_json_attribute('name').to("mynode")
> > -    end
> > -
> > -    it "should include the classes if set" do
> > -      @node.classes = %w{a b c}
> > -      @node.should set_json_attribute("classes").to(%w{a b c})
> > -    end
> > -
> > -    it "should not include the classes if there are none" do
> > -      @node.should_not set_json_attribute('classes')
> > -    end
> > -
> > -    it "should include parameters if set" do
> > -      @node.parameters = {"a" => "b", "c" => "d"}
> > -      @node.should set_json_attribute('parameters').to({"a" => "b", "c" => 
> > "d"})
> > -    end
> > -
> > -    it "should not include the parameters if there are none" do
> > -      @node.should_not set_json_attribute('parameters')
> > -    end
> > -
> > -    it "should include the environment" do
> > -      @node.environment = "production"
> > -      @node.should set_json_attribute('environment').to('production')
> > -    end
> > -  end
> > -
> > -  describe "when converting from json" do
> > -    before do
> > -      @node = Puppet::Node.new("mynode")
> > -      @format = Puppet::Network::FormatHandler.format('pson')
> > -    end
> > -
> > -    def from_json(json)
> > -      @format.intern(Puppet::Node, json)
> > -    end
> > -
> > -    it "should set its name" do
> > -      Puppet::Node.should 
> > read_json_attribute('name').from(@node.to_pson).as("mynode")
> > -    end
> > -
> > -    it "should include the classes if set" do
> > -      @node.classes = %w{a b c}
> > -      Puppet::Node.should 
> > read_json_attribute('classes').from(@node.to_pson).as(%w{a b c})
> > -    end
> > -
> > -    it "should include parameters if set" do
> > -      @node.parameters = {"a" => "b", "c" => "d"}
> > -      Puppet::Node.should 
> > read_json_attribute('parameters').from(@node.to_pson).as({"a" => "b", "c" 
> > => "d"})
> > -    end
> > -
> > -    it "should include the environment" do
> > -      @node.environment = "production"
> > -      Puppet::Node.should 
> > read_json_attribute('environment').from(@node.to_pson).as(Puppet::Node::Environment.new(:production))
> > -    end
> > -  end
> > end
> >
> > describe Puppet::Node, "when initializing" do
> > --
> > 1.7.4
> >
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Puppet Developers" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group at 
> > http://groups.google.com/group/puppet-dev?hl=en.
> >
> 
> 
> --
> Work is not always required. There is such a thing as sacred idleness.
>        -- George MacDonald
> ---------------------------------------------------------------------
> Luke Kanies  -|-   http://puppetlabs.com   -|-   http://about.me/lak
> 
> 
> 
> 
> --
> You received this message because you are subscribed to the Google Groups 
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/puppet-dev?hl=en.
> 
> 
> 
> 
> -- 
> Max Martin (404) 585-1840
> Puppet Labs http://www.puppetlabs.com
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/puppet-dev?hl=en.


-- 
I cannot and will not cut my conscience to fit this year's fashions.
        -- Lillian Hellman
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   http://about.me/lak



-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to