summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/indirector/rest.rb35
1 files changed, 27 insertions, 8 deletions
diff --git a/lib/puppet/indirector/rest.rb b/lib/puppet/indirector/rest.rb
index 0c86b2706..076e96356 100644
--- a/lib/puppet/indirector/rest.rb
+++ b/lib/puppet/indirector/rest.rb
@@ -4,19 +4,38 @@ require 'uri'
# Access objects via REST
class Puppet::Indirector::REST < Puppet::Indirector::Terminus
def network_fetch(path)
- # TODO: url_encode path, set proper server + port
Net::HTTP.get(URI.parse("http://127.0.0.1:34343/#{path}"))
end
+ def network_delete(path)
+ Net::HTTP.start("127.0.0.1", 34343) {|x| x.delete("/#{path}").body } # weird-ass net/http library
+ end
+
def find(name, options = {})
- network_result = network_fetch("#{indirection.name}/#{name}")
- raise YAML.load(network_result) if network_result =~ %r{--- !ruby/exception}
- decoded_result = indirection.model.from_yaml(network_result)
+ network_result = network_fetch("#{indirection.name}/#{name}")
+ raise YAML.load(network_result) if exception?(network_result)
+ decoded_result = indirection.model.from_yaml(network_result)
+ end
+
+ def search(name, options = {})
+ network_results = network_fetch("#{indirection.name}s/#{name}")
+ raise YAML.load(network_results) if exception?(network_results)
+ decoded_results = YAML.load(network_results.to_s).collect {|result| indirection.model.from_yaml(result) }
+ end
+
+ def destroy(name, options = {})
+ network_result = network_delete("#{indirection.name}/#{name}")
+ raise YAML.load(network_result) if exception?(network_result)
+ decoded_result = YAML.load(network_result.to_s)
+ end
+
+ def save
+
end
- def search(key, options = {})
- network_results = network_fetch("#{indirection.name}s/#{key}")
- raise YAML.load(network_results) if network_results =~ %r{--- !ruby/exception}
- decoded_results = YAML.load(network_results.to_s).collect {|result| indirection.model.from_yaml(result) }
+ private
+
+ def exception?(yaml_string)
+ yaml_string =~ %r{--- !ruby/exception}
end
end