anchor.diff:  %% Internal Functions
   %% ====================================================================
   
  +%% get_data_from_ccm/1
  +%% ====================================================================
  +%% @doc Get from ccm: nodes, workers, state number, callbak state number,
  +%% error (if error occured, 'none' otherwise)
  +%% @end
  +-spec get_data_from_ccm(Timeout :: integer()) -> Result when
  +	Result :: {Nodes :: list(),Worers :: list(),StateNum :: integer(),CStateNum :: integer(),Error},
  +	Error :: term() | none.
  +%% ====================================================================
  +get_data_from_ccm(Timeout) ->
  +	try
  +		Nodes = gen_server:call({global, ?CCM}, get_nodes, Timeout),
  +		{Workers, StateNum} = gen_server:call({global, ?CCM}, get_workers, Timeout),
  +		{_, CStateNum} = gen_server:call({global, ?CCM}, get_callbacks, Timeout),
  +		{Nodes,Workers,StateNum,CStateNum,none}
  +	catch
  +		Type:Error  ->
  +			lager:error("Ccm connection error: ~p:~p",[Type,Error]),
  +			{[],[],none,none,Error}
  +	end.
  +
   %% node_status/5
   %% ====================================================================
   %% @doc Checks if callbacks num and state num on dispatcher and node manager are same as in ccm,
  
positive.code: handle(Req, State) ->
  	%get data from ccm and env
  	{ok, Timeout} = application:get_env(veil_cluster_node, nagios_healtcheck_timeout),
  	Nodes = gen_server:call({global, ?CCM}, get_nodes, Timeout),
  	{Workers, StateNum} = gen_server:call({global, ?CCM}, get_workers, Timeout),
  	{_, CStateNum} = gen_server:call({global, ?CCM}, get_callbacks, Timeout),
  
  	%check workers
  	WorkersStatus = pmap(fun(Worker) -> worker_status(Worker,Timeout) end,Workers),
  
negative.code: 	NodesStatus = pmap(fun(Node) -> node_status(Node,StateNum,CStateNum,WorkersOk,Timeout) end, Nodes),
  
  	%check if errors occured
  	{HealthStatus, HttpStatusCode} =
  		case CcmConnError/=none of
  			true ->
  				ErrorString = io_lib:format("~p", [{error,CcmConnError}]),
  				{ErrorString,500};
  			false ->
  				case contains_errors(NodesStatus) or contains_errors(WorkersStatus) of
  					true -> {"{error,unhealthy_member}",500};
  					false -> {"ok",200}
  				end
  		end,
  
  	%prepare current date
  	{{YY, MM, DD}, {Hour, Min, Sec}} = calendar:now_to_local_time(now()),
  