diff options
| author | Max Martin <max@puppetlabs.com> | 2011-04-21 16:53:26 -0700 |
|---|---|---|
| committer | Max Martin <max@puppetlabs.com> | 2011-04-21 16:54:05 -0700 |
| commit | aaf7e2300b12a0ef03b620efc5eea7af0dc6f71b (patch) | |
| tree | f4a103aa99e292f93359640455009ec9011fe09e /lib/puppet | |
| parent | 17d176b9a9be0d85f74b61d67ab6ad0f76013dbc (diff) | |
| download | puppet-aaf7e2300b12a0ef03b620efc5eea7af0dc6f71b.tar.gz puppet-aaf7e2300b12a0ef03b620efc5eea7af0dc6f71b.tar.xz puppet-aaf7e2300b12a0ef03b620efc5eea7af0dc6f71b.zip | |
Revert "(7080) Adding json support to Indirector Request"
This reverts commit e0615cbc1eea67ef8caf4edbc8b7b3d3ce618f4d.
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:
spec/unit/indirector/request_spec.rb
Paired-with:Matt Robinson <matt@puppetlabs.com>
Diffstat (limited to 'lib/puppet')
| -rw-r--r-- | lib/puppet/indirector/request.rb | 51 |
1 files changed, 2 insertions, 49 deletions
diff --git a/lib/puppet/indirector/request.rb b/lib/puppet/indirector/request.rb index 1918a3fb5..fd8d654dd 100644 --- a/lib/puppet/indirector/request.rb +++ b/lib/puppet/indirector/request.rb @@ -14,51 +14,6 @@ class Puppet::Indirector::Request OPTION_ATTRIBUTES = [:ip, :node, :authenticated, :ignore_terminus, :ignore_cache, :instance, :environment] - def self.from_pson(json) - raise ArgumentError, "No indirection name provided in json data" unless indirection_name = json['type'] - raise ArgumentError, "No method name provided in json data" unless method = json['method'] - raise ArgumentError, "No key provided in json data" unless key = json['key'] - - request = new(indirection_name, method, key, json['attributes']) - - if instance = json['instance'] - klass = Puppet::Indirector::Indirection.instance(request.indirection_name).model - if instance.is_a?(klass) - request.instance = instance - else - request.instance = klass.from_pson(instance) - end - end - - request - end - - def to_pson(*args) - result = { - 'document_type' => 'Puppet::Indirector::Request', - 'data' => { - 'type' => indirection_name, - 'method' => method, - 'key' => key - } - } - data = result['data'] - attributes = {} - OPTION_ATTRIBUTES.each do |key| - next unless value = send(key) - attributes[key] = value - end - - options.each do |opt, value| - attributes[opt] = value - end - - data['attributes'] = attributes unless attributes.empty? - data['instance'] = instance if instance - - result.to_pson(*args) - end - # Is this an authenticated request? def authenticated? # Double negative, so we just get true or false @@ -106,11 +61,9 @@ class Puppet::Indirector::Request self.indirection_name = indirection_name self.method = method - options = options.inject({}) { |hash, ary| hash[ary[0].to_sym] = ary[1]; hash } - set_attributes(options) - @options = options + @options = options.inject({}) { |hash, ary| hash[ary[0].to_sym] = ary[1]; hash } if key_or_instance.is_a?(String) || key_or_instance.is_a?(Symbol) key = key_or_instance @@ -200,7 +153,7 @@ class Puppet::Indirector::Request def set_attributes(options) OPTION_ATTRIBUTES.each do |attribute| - if options.include?(attribute.to_sym) + if options.include?(attribute) send(attribute.to_s + "=", options[attribute]) options.delete(attribute) end |
