diff options
| author | Luke Kanies <luke@madstop.com> | 2008-07-18 00:54:59 -0500 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2008-07-18 16:41:54 +1000 |
| commit | d8937acb8c9b108e61330cbac703a17b2eaba9b3 (patch) | |
| tree | 2e962357a87a10cd7eb76dadf752dd2b57e0c340 /lib/puppet/network/handler | |
| parent | a0fa09f6ee562dd1b61fe56dd4b914419d641986 (diff) | |
| download | puppet-d8937acb8c9b108e61330cbac703a17b2eaba9b3.tar.gz puppet-d8937acb8c9b108e61330cbac703a17b2eaba9b3.tar.xz puppet-d8937acb8c9b108e61330cbac703a17b2eaba9b3.zip | |
You can now select the encoding format when transferring the catalog,
with 'yaml' still being the default but 'marshal' being an option.
This is because testing has shown drastic performance differences
between the two, with up to 70% of compile time being spent
in YAML code. Use the 'catalog_format' setting to choose your format,
and the setting must be set on the client.
Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'lib/puppet/network/handler')
| -rw-r--r-- | lib/puppet/network/handler/master.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/puppet/network/handler/master.rb b/lib/puppet/network/handler/master.rb index a050b089b..9682c460e 100644 --- a/lib/puppet/network/handler/master.rb +++ b/lib/puppet/network/handler/master.rb @@ -64,7 +64,14 @@ class Puppet::Network::Handler catalog = Puppet::Node::Catalog.find(client) - return translate(catalog.extract) + case format + when "yaml": + return CGI.escape(catalog.extract.to_yaml(:UseBlock => true)) + when "marshal": + return CGI.escape(Marshal.dump(catalog.extract)) + else + raise "Invalid markup format '%s'" % format + end end # @@ -90,11 +97,6 @@ class Puppet::Network::Handler # Translate our configuration appropriately for sending back to a client. def translate(config) - if local? - config - else - CGI.escape(config.to_yaml(:UseBlock => true)) - end end end end |
