summaryrefslogtreecommitdiffstats
path: root/ext/module_puppet
diff options
context:
space:
mode:
Diffstat (limited to 'ext/module_puppet')
-rwxr-xr-xext/module_puppet43
1 files changed, 26 insertions, 17 deletions
diff --git a/ext/module_puppet b/ext/module_puppet
index 52f65b094..36efb4f0e 100755
--- a/ext/module_puppet
+++ b/ext/module_puppet
@@ -150,14 +150,23 @@ unless setdest
Puppet::Util::Log.newdestination(:syslog)
end
-master[:Manifest] = ARGV.shift
+Puppet[:manifest] = ARGV.shift
unless ENV.include?("CFALLCLASSES")
$stderr.puts "Cfengine classes must be passed to the module"
exit(15)
end
-master[:UseNodes] = false
+# Collect our facts.
+Puppet::Node::Facts.terminus_class = :code
+facts = Puppet::Node::Facts.find("me")
+facts.name = facts.values["hostname"]
+
+# Create our Node
+node = Puppet::Node.new(facts.name)
+
+# Merge in the facts.
+node.merge(facts.values)
classes = ENV["CFALLCLASSES"].split(":")
@@ -166,32 +175,32 @@ if classes.empty?
exit(16)
end
-master[:Classes] = classes
+node.classes = classes
begin
- server = Puppet::Network::Handler.master.new(master)
+ # Compile our configuration
+ config = Puppet::Node::Configuration.find(node)
rescue => detail
- $stderr.puts detail
- exit(1)
-end
-
-begin
- client = Puppet::Network::Client.master.new(
- :Master => server,
- :Cache => false
- )
-rescue => detail
- $stderr.puts detail
+ if Puppet[:trace]
+ puts detail.backtrace
+ end
+ if detail.is_a?(XMLRPC::FaultException)
+ $stderr.puts detail.message
+ else
+ $stderr.puts detail
+ end
exit(1)
end
-
if parseonly
exit(0)
end
begin
- config = client.getconfig
+ # Translate it to a RAL configuration
+ config = config.to_ral
+
+ # And apply it
config.apply
rescue => detail
Puppet.err detail