summaryrefslogtreecommitdiffstats
path: root/lib/puppet/client/resource.rb
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-01-31 19:38:02 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-01-31 19:38:02 +0000
commitc8f38b7fee12eefb2bed00681b4952ac7ad3f14f (patch)
tree09af773e01670eb4ea6efbb1ca3c303711caf9d0 /lib/puppet/client/resource.rb
parentea73cdbec49f9451d04902e69ad9fe4bf07a3c11 (diff)
Renaming "pelement" to "resource". The old name is a holdover from before we had settled on "resource" as a term.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2137 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/client/resource.rb')
-rw-r--r--lib/puppet/client/resource.rb65
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/puppet/client/resource.rb b/lib/puppet/client/resource.rb
new file mode 100644
index 000000000..6081b2b66
--- /dev/null
+++ b/lib/puppet/client/resource.rb
@@ -0,0 +1,65 @@
+class Puppet::Client::Resource < Puppet::Client
+ @drivername = :ResourceServer
+
+ @handler = Puppet::Server::Resource
+
+ def apply(bucket)
+
+ case bucket
+ when Puppet::TransObject
+ tmp = Puppet::TransBucket.new
+ tmp.push bucket
+ bucket = tmp
+ bucket.name = Facter["hostname"].value
+ bucket.type = "resource"
+ when Puppet::TransBucket
+ # nothing
+ else
+ raise Puppet::DevError, "You must pass a transportable object, not a %s" %
+ bucket.class
+ end
+
+ unless @local
+ bucket = Base64.encode64(YAML::dump(bucket))
+ end
+ report = @driver.apply(bucket, "yaml")
+
+ return report
+ end
+
+ def describe(type, name, retrieve = false, ignore = false)
+ Puppet.info "Describing %s[%s]" % [type.to_s.capitalize, name]
+ text = @driver.describe(type, name, retrieve, ignore, "yaml")
+
+ object = nil
+ if @local
+ object = text
+ else
+ object = YAML::load(Base64.decode64(text))
+ end
+
+ return object
+ end
+
+ def initialize(hash = {})
+ if hash.include?(:ResourceServer)
+ unless hash[:ResourceServer].is_a?(Puppet::Server::Resource)
+ raise Puppet::DevError, "Must pass an actual PElement server object"
+ end
+ end
+
+ super(hash)
+ end
+
+ def list(type, ignore = false, base = false)
+ bucket = @driver.list(type, ignore, base, "yaml")
+
+ unless @local
+ bucket = YAML::load(Base64.decode64(bucket))
+ end
+
+ return bucket
+ end
+end
+
+# $Id$