Add crm_node remove to pcmk_nodes

* Use crm_node -f -R to remove a pacemaker node

Change-Id: I5572365a13ac56415c3453b1726ef3d499384d7c
Closes-Bug: 1455412
This commit is contained in:
Dmitry Ilyin 2015-05-15 13:06:52 +03:00
parent ff3025a783
commit c43d9774c5
2 changed files with 23 additions and 0 deletions

View File

@ -40,6 +40,18 @@ Puppet::Type.type(:pcmk_nodes).provide(:ruby, :parent => Puppet::Provider::Pacem
end
end
def crm_node_safe(*args)
if @resource[:debug]
debug (['crm_node'] + args).join ' '
return
end
begin
crm_node *args
rescue => e
info "Command failed: #{e.message}"
end
end
###################################
def nodes_data
@ -145,6 +157,7 @@ Puppet::Type.type(:pcmk_nodes).provide(:ruby, :parent => Puppet::Provider::Pacem
def remove_pacemaker_node(node_name)
debug "Remove pacemaker node: '#{node_name}'"
remove_pacemaker_crm_node node_name
remove_pacemaker_node_record node_name
remove_pacemaker_node_state node_name
purge_node_locations node_name
@ -158,6 +171,10 @@ Puppet::Type.type(:pcmk_nodes).provide(:ruby, :parent => Puppet::Provider::Pacem
add_pacemaker_node_state node_name, node_id
end
def remove_pacemaker_crm_node(node_name)
crm_node_safe '--force', '--remove', node_name
end
def remove_pacemaker_node_record(node_name)
cibadmin_safe '--delete', '--scope', 'nodes', '--xml-text', "<node uname='#{node_name}'/>"
end

View File

@ -193,9 +193,15 @@ nodelist.node.2.ring0_addr (str) = 192.168.0.3
before(:each) do
provider.stubs(:remove_pacemaker_node_state)
provider.stubs(:remove_pacemaker_node_record)
provider.stubs(:remove_pacemaker_crm_node)
provider.stubs(:remove_location_constraint)
end
it 'removes the crm_node record' do
provider.expects(:remove_pacemaker_crm_node).with 'node-1'
provider.remove_pacemaker_node 'node-1'
end
it 'cleans out node record' do
provider.expects(:remove_pacemaker_node_record).with 'node-1'
provider.remove_pacemaker_node 'node-1'