Skip to content

Commit

Permalink
- Add more error handling
Browse files Browse the repository at this point in the history
- Make the notification agent configurable
  • Loading branch information
ripienaar committed Feb 4, 2011
1 parent 71298f1 commit 14fddaa
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 4 deletions.
1 change: 1 addition & 0 deletions etc/provisioner.yaml
Expand Up @@ -23,5 +23,6 @@ target:
ipaddress_fact: ipaddress
notify:
filter: "/monitor1/"
agent: angelianotify
targets:
- boxcar://rip@devco.net
11 changes: 9 additions & 2 deletions lib/mcprovision/notifier.rb
Expand Up @@ -10,18 +10,25 @@ def initialize(config)

def notify(msg, subject)
if @config.settings.include?("notify")
raise "No notification targets specified" unless @config.settings["notify"].include?("targets")
raise "No notification targets specified" if @config.settings["notify"]["targets"].empty?

@config.settings["notify"]["targets"].each do |recipient|
MCProvision.info("Notifying #{recipient} of new node")

raise "Could not find any instances of the '#{@config.settings['notify']['agent']}' agent" if @rpc.discover.empty?
@rpc.sendmsg(:message => msg, :subject => subject, :recipient => recipient)
end
end
end

private
def setup
@rpc = rpcclient("naggernotify")
agent = @config.settings["notify"]["agent"] || "angelianotify"

@rpc = rpcclient(agent)
@rpc.progress = false
@rpc.filter = Util.parse_filter("naggernotify", @config.settings["notify"]["filter"])
@rpc.filter = Util.parse_filter(agent, @config.settings["notify"]["filter"])
end
end
end
4 changes: 4 additions & 0 deletions lib/mcprovision/puppetmaster.rb
Expand Up @@ -41,6 +41,10 @@ def reset

private
def setup
unless @config.settings["master"].include?("agent") && @config.settings["master"].include?("filter")
raise "The config file master section needs 'agent' and 'filter'"
end

agent = @config.settings["master"]["agent"]
@puppetca = rpcclient(agent)
@puppetca.progress = false
Expand Down
4 changes: 2 additions & 2 deletions lib/mcprovision/runner.rb
Expand Up @@ -43,8 +43,8 @@ def run

def provision(node)
node_inventory = node.inventory
node_ipaddress_fact = @config.settings["target"]["ipaddress_fact"]
master_ipaddress_fact = @config.settings["master"]["ipaddress_fact"]
node_ipaddress_fact = @config.settings["target"]["ipaddress_fact"] || "ipaddress"
master_ipaddress_fact = @config.settings["master"]["ipaddress_fact"] || "ipaddress"

raise "Could not determine node ip address from fact #{node_ipaddress_fact}" unless node_inventory[:facts].include?(node_ipaddress_fact)

Expand Down

0 comments on commit 14fddaa

Please sign in to comment.