Agent Daemon Listener¶
- Listen on the address specified by listener.addr and port specified by listener.port.
- Executes om node dequeue actions when receiving empty packets
- Execute valid requests
Requests Validation¶
A request message must be AES256-encrypted using the cluster.secret. The sender nodename and encryption salt are sent unencrypted.
- The sender nodename is verified to be in the cluster.nodes (expect for join requests)
- The encrypted data must pass decryption using the received salt and cluster.secret
A node sending 5 consecutive invalid messages is blacklisted, and its future messages will be dropped before decryption.
Requests¶
Blacklist Status¶
Return the blacklist contents.
$ om node daemon blacklist status
{
"data": {
"node1": 1,
"node2": 5,
},
"status": 0
}
Daemon Stop¶
Stop the daemon or a single thread.
Stopping the whole daemon advertizes to its peers its going into maintenance. The local service instances are not stopped.
$ om node daemon stop [--thread-id <id>]
Daemon Shutdown¶
Stop service instances, advertize maintenance to peers and stop the daemon.
$ om node daemon shutdown
Get Service Config¶
Serve a service configuration file content.
Request format:
{
"action": "get_service_config",
"options": {
"svcname": "svc1",
}
}
Clear¶
Clear the service monitor start failed
and stop failed
states.
Clear the resource restart count, so the service monitor will retry <rid>.restart times again to start a resource evaluated down when the local_expect is started
.
$ om <svcname> clear
Set Node Monitor¶
Set the node monitor attributes.
status
The node monitor status.idle
,freezing
,thawing
local_expect
The target node status. The node monitor will try to take actions to make the node reach that status.thawed
,frozen
.
Request format:
{
"action": "set_node_monitor",
"options": {
"local_expect": "thawed"
}
}
Set Service Monitor¶
Set a service monitor attributes:
status
The service monitor status.idle
,starting
,stopping
, ...local_expect
The target local service instance status. The service monitor will try to take actions to make the service instance reach that status.global_expect
The target service status. The service monitor will discuss with its peers how to make the service reach that status.reset_retries
Clear the resource restart count, so the service monitor will retry<rid>.restart
times again to start a resource evaluated down when the local_expect isstarted
.
Request format:
{
"action": "set_service_monitor",
"options": {
"svcname": "svc1",
"local_expect": "started",
"global_expect": "started",
"reset_retries": True
}
}
Get Service Monitor¶
Return the service monitor attributes.
Request format:
{
"action": "set_service_monitor",
"options": {
"svcname": "svc1",
}
}
Join¶
Merge the joining nodename in the cluster.nodes.
Return the cluster and heartbeats configuration sections the joiner must merge.
$ om node daemon join --secret <secret> --node <nodename>
Leave¶
Remove the leaving nodename from cluster.nodes.
Service Action¶
Execute an arbitrary service instance action on the node.
Support synchronous or asynchronous execution.
Request format:
{
"action": "service_action",
"options": {
"svcname": "svc1",
"command": ["compliance", "fix", "--moduleset", "foo"],
"sync": True,
}
}
Service Logs¶
Return or stream the local service instance logs.
$ om <svcname> logs [--follow] [--backlog <n>]
Request logs from all service nodes daemons and aggregate the results.
Maintenance¶
The listener thread is restarted by the agent daemon if it exits uncleanly.
om node daemon stop --thread-id listener
Stop the listener thread. The thread state transitions from running
to stopped
.
om node daemon start --thread-id listener
Start the listener tx thread. The thread state transitions from stopped
to running
.
om node set --param listener.port --value 1215
om node edit config
Any command causing a timestamp change on <OSVCETC>/node.conf
triggers a listener reconfiguration:
- Modified parameters are applied