From 220389b697d896a3b61a9edb1ec83a5089a77467 Mon Sep 17 00:00:00 2001 From: Adam Spiers Date: Fri, 4 Apr 2014 11:48:53 +0100 Subject: [PATCH] make pacemaker_vip_primitive more defensive Currently we are seeing pacemaker_vip_primitive occasionally generate NoMethodError exceptions like: undefined method `[]' for nil:NilClass Clearly we need more helpful error messages when things go wrong. --- definitions/pacemaker_vip_primitive.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/definitions/pacemaker_vip_primitive.rb b/definitions/pacemaker_vip_primitive.rb index f2d3255..044c8e0 100644 --- a/definitions/pacemaker_vip_primitive.rb +++ b/definitions/pacemaker_vip_primitive.rb @@ -1,6 +1,12 @@ define :pacemaker_vip_primitive, :cb_network => nil, :hostname => nil, :domain => nil, :op => nil do - net_db = data_bag_item('crowbar', "#{params[:cb_network]}_network") - ip_addr = net_db["allocated_by_name"]["#{params[:hostname]}.#{params[:domain]}"]["address"] + network = params[:cb_network] + net_db = data_bag_item('crowbar', "#{network}_network") + raise "#{network}_network data bag missing?!" unless net_db + fqdn = "#{params[:hostname]}.#{params[:domain]}" + unless net_db["allocated_by_name"][fqdn] + raise "Missing allocation for #{fqdn} in #{network} network" + end + ip_addr = net_db["allocated_by_name"][fqdn]["address"] primitive_name = "#{params[:hostname]}-vip-#{params[:cb_network]}"