Packages

Long Lived Services Scaffolding libraries

Current section

Files

Jump to
noizu_labs_services lib manager node behaviour.ex
Raw

lib/manager/node/behaviour.ex

defmodule Noizu.Service.NodeManager.Configuration do
end
defmodule Noizu.Service.NodeManager.ConfigurationManagerBehaviour do
@callback configuration(node) :: {:ok, term}
@callback configuration() :: {:ok, term}
@callback cached(node) :: {:ok, term}
@callback cached() :: {:ok, term}
@callback cache(node, term) :: {:ok, term}
@callback cache(term) :: {:ok, term}
require Record
Record.defrecord(:target_window, target: nil, low: nil, high: nil)
Record.defrecord(:node_service, state: :online, priority: nil, supervisor_target: nil, worker_target: nil, pool: nil, health_target: nil, node: nil)
Record.defrecord(:cluster_service, state: :online, priority: nil, node_target: nil, worker_target: nil, health_target: nil, pool: nil)
end
defmodule Noizu.Service.NodeManager.ConfigurationManager do
def cache(provider, value) do
apply(provider, :cache, [value])
rescue e -> {:error, e}
catch :exit, e -> {:error, {:exit, e}}
e -> {:error, e}
end
def cache(provider, node, value) do
apply(provider, :cache, [node, value])
rescue e -> {:error, e}
catch :exit, e -> {:error, {:exit, e}}
e -> {:error, e}
end
def cached(provider) do
apply(provider, :cached, [])
rescue e -> {:error, e}
catch :exit, e -> {:error, {:exit, e}}
e -> {:error, e}
end
def cached(provider, node) do
apply(provider, :cached, [node])
rescue e -> {:error, e}
catch :exit, e -> {:error, {:exit, e}}
e -> {:error, e}
end
def configuration(provider) do
apply(provider, :configuration, [])
rescue e -> {:error, e}
catch :exit, e -> {:error, {:exit, e}}
e -> {:error, e}
end
def configuration(provider, node) do
apply(provider, :configuration, [node])
rescue e -> {:error, e}
catch :exit, e -> {:error, {:exit, e}}
e -> {:error, e}
end
end