Skip to content

Instantly share code, notes, and snippets.

@adityagodbole
Last active December 18, 2015 04:39
Show Gist options
  • Save adityagodbole/5727386 to your computer and use it in GitHub Desktop.
Save adityagodbole/5727386 to your computer and use it in GitHub Desktop.
def get_node(instance)
query_node = Chef::Search::Query.new
query = "name:#{instance}"
if block_given?
query_node.search('node', query) do |node|
yield node
end
else
query_node.search('node', query).first.first
end
end
def set_role!(node_item, new_role)
node_item.run_list("role[#{new_role}]")
node_item.save
end
def switch_role!(instance, role)
run_list = ""
fqdn = nil
while "role[#{role}]" != run_list
get_node(instance) do |node|
set_role!(node, role)
end
get_node(instance) do |node|
ui.msg "New run_list: #{node.run_list}"
run_list = node.run_list.to_s
fqdn = node.fqdn
end
end
return fqdn, role
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment