def process_control_message(message)
control_message = parse_symbolic(message)
case control_message[:action]
when "claim_vnode"
spawn_vnode(control_message[:vnode_id])
when "recover_vnode"
recover_vnode(control_message[:vnode_id])
when "release_vnodes"
raise "todo"
release_vnode()
when "update_vnode_table"
@vnode_table.update_table(control_message[:data])
when "vnode_table_publish"
publish_vnode_table
when "status"
publish_status_to(control_message[:rsvp])
when "set_log_level"
set_log_level(control_message[:level], control_message[:rsvp])
else
log.error { "invalid control message #{control_message.inspect}" }
end
rescue Exception => e
log.error { "Error processing a control message."}
log.error { "#{e.class.name}: #{e.message}\n#{e.backtrace.join("\n")}" }
end