An Erlang interface equivalent to the HA C-API (documented in confd_lib_ha(3)).
-type ha_node() :: #ha_node{}.-spec bemaster(Socket, NodeId) -> Result
when
Socket :: econfd:socket(),
NodeId :: econfd:value(),
Result :: ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket(), econfd:value()
Instruct a HA node to be primary in the cluster.
-spec benone(Socket) -> Result
when
Socket :: econfd:socket(),
Result :: ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket()
Instruct a HA node to be nothing in the cluster.
-spec beprimary(Socket, NodeId) -> Result
when
Socket :: econfd:socket(),
NodeId :: econfd:value(),
Result :: ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket(), econfd:value()
Instruct a HA node to be primary in the cluster.
-spec berelay(Socket) -> Result
when
Socket :: econfd:socket(),
Result :: ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket()
Instruct a HA secondary to be a relay for other secondaries.
-spec besecondary(Socket, NodeId, PrimaryNodeId, WaitReplyBool) ->
Result
when
Socket :: econfd:socket(),
NodeId :: econfd:value(),
PrimaryNodeId :: ha_node(),
WaitReplyBool :: integer(),
Result :: ok | {error, econfd:error_reason()}.Related types: ha_node(), econfd:error_reason(), econfd:socket(), econfd:value()
Instruct a HA node to be secondary in the cluster where PrimaryNodeId is primary.
-spec beslave(Socket, NodeId, PrimaryNodeId, WaitReplyBool) -> Result
when
Socket :: econfd:socket(),
NodeId :: econfd:value(),
PrimaryNodeId :: ha_node(),
WaitReplyBool :: integer(),
Result :: ok | {error, econfd:error_reason()}.Related types: ha_node(), econfd:error_reason(), econfd:socket(), econfd:value()
Instruct a HA node to be secondary in the cluster where PrimaryNodeId is primary.
-spec close(Socket) -> Result
when
Socket :: econfd:socket(),
Result :: ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket()
Close the HA connection.
-spec connect(Path, Token) -> econfd:connect_result()
when Path :: string(), Token :: binary();
(Address, Token) -> econfd:connect_result()
when Address :: econfd:ip(), Token :: binary().Related types: econfd:connect_result(), econfd:ip()
connect(Address, Port, Token)-spec do_connect(Address, Token) -> econfd:connect_result()
when
Address ::
#econfd_conn_ip{} | #econfd_conn_local{},
Token :: binary().Related types: econfd:connect_result()
Connect to the HA subsystem.
If the port is changed it must also be changed in confd.conf To close a HA socket, use close/1.
-spec getstatus(Socket) -> Result
when
Socket :: econfd:socket(),
Result :: ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket()
Request status from a HA node.
-spec secondary_dead(Socket, NodeId) -> Result
when
Socket :: econfd:socket(),
NodeId :: econfd:value(),
Result ::
ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket(), econfd:value()
Instruct ConfD that another node is dead.
-spec slave_dead(Socket, NodeId) -> Result
when
Socket :: econfd:socket(),
NodeId :: econfd:value(),
Result :: ok | {error, econfd:error_reason()}.Related types: econfd:error_reason(), econfd:socket(), econfd:value()
Instruct ConfD that another node is dead.