diff options
| author | Luke Kanies <luke@madstop.com> | 2009-06-02 23:08:52 -0500 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2009-06-06 19:57:59 +1000 |
| commit | 0de70b7035ebc7f00ede73098684ee5db4b2de14 (patch) | |
| tree | c7e4abf18f785b4959c46c78fed697e908ed304d /lib/puppet/resource | |
| parent | 7b33b6da4bdcd2263e2c63b443e9bea6fbe8d161 (diff) | |
Switching Queueing to using JSON instead of YAML
This provides about a 75x speedup, so it's totally
worth it. The downside is that queueing requires json,
but only on the server side.
Diffstat (limited to 'lib/puppet/resource')
| -rw-r--r-- | lib/puppet/resource/catalog.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/puppet/resource/catalog.rb b/lib/puppet/resource/catalog.rb index 68e6d7de5..42e92f407 100644 --- a/lib/puppet/resource/catalog.rb +++ b/lib/puppet/resource/catalog.rb @@ -402,12 +402,14 @@ class Puppet::Resource::Catalog < Puppet::SimpleGraph end if resources = data['resources'] + resources = JSON.parse(resources) if resources.is_a?(String) resources.each do |res| resource_from_json(result, res) end end if edges = data['edges'] + edges = JSON.parse(edges) if edges.is_a?(String) edges.each do |edge| edge_from_json(result, edge) end @@ -436,7 +438,10 @@ class Puppet::Resource::Catalog < Puppet::SimpleGraph def self.resource_from_json(result, res) # If no json_class information was presented, we manually find # the class. - res = Puppet::Resource.from_json(res) if res.is_a?(Hash) + if res.is_a?(Hash) + res = res['data'] if res['json_class'] + res = Puppet::Resource.from_json(res) + end result.add_resource(res) end |
