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.
