Introduction
- JS-1416Getting issue details... STATUS
The Universal Agent comes with a REST web service that allows it to be controlled from the command line or an application. The service supports the following operations:
- showing status information
- by use of a REST URI that is called from an HTTP client.
- by use of the Agent start script that makes use of a Java class that implements the HTTP client.
- sending commands
- via any client application that sends the command with an HTTP request (JSON).
Web Service Status Information
Start Script Status Information
- JS-1426Getting issue details... STATUS
The Agent start script provides status information by internal use of web services. The information is returned in JSON format.
If the Agent is not available, an exit status is returned accordingly.
The status information is retrieved using:
URI Status Information
- JS-1480Getting issue details... STATUS
- JS-1412Getting issue details... STATUS
The Universal Agent provides status information via web services. The information is returned in JSON format.
URI Syntax
All API URIs start with an optional prefix (if set on starting the Agent with the command line option -uri-prefix
) followed by the path.
- General status information is provided by:
http://host:port/jobscheduler/agent/api
- General status information is also provided by:
http://host:port
/jobscheduler/agent/api/overview
- Information about the Agent tasks running is provided by the web service:
http://host:port
/jobscheduler/agent/api/task
- Information about the active command is provided by the web service:
http://host:port
/jobscheduler/agent/api/tunnel
- Information about the active command is provided by the web service:
(without an end forward slash)http://host:port
/jobscheduler/agent/api/tunnel
- A list of tunnels is provided by the web service:
/ (with an end forward slash)http://host:port
/jobscheduler/agent/api/tunnel
- A summary of the commands running is provided by the web service:
(without an end forward slash)http://host:port
/jobscheduler/agent/api/command
- A list of the commands running is provided by the web service:
/ (with an end forward slash)http://host:port
/jobscheduler/agent/api/command
Note
These web services are read-only (HTTP verb GET).
The following web services are addressed with the verb POST:
http://host:port
/jobscheduler/agent/api/task/commandhttp://host:port
/jobscheduler/agent/api/tunnel/id
Examples
Web Service Commands
Changes are made to the Agent by using the command service (api/command
).
http://host:port
/jobscheduler/agent/api/command
The only command is terminate
.
Termination Command
- JS-1400Getting issue details... STATUS
- JS-1401Getting issue details... STATUS
The JobScheduler Universal Agent is terminated by either:
- use of the start script, e.g.
./jobscheduler_agent.sh stop
- calling the Agent web service URL for commands with a JSON command
http://host:port/jobscheduler/agent/api/command
JSON commands to terminate the Agent are sent by an HTTP POST request and include the operations:
- abort immediately:
- the Agent will kill all running tasks and will terminate immediately
- the web service client sends:
{ "$TYPE": "AbortImmediately" }
- this corresponds to the XML command that is used for a Master:
<modify_spooler cmd='abort_immediately'/>
- terminate:
- the Agent will not start new tasks, existing tasks can continue and the Agent will terminate after all tasks have completed
- optionally a SIGTERM can be sent to the tasks
- the web service client sends:
{ "$TYPE": "Terminate", "sigtermProcesses": false }
- this corresponds to the XML command that is used for a Master:
<modify_spooler
cmd='terminate'
/>
- terminate with timeout:
- the Agent sends all tasks a SIGTERM command and will wait for the specified timeout.
Should any task not terminate within the specified timeout then it will be killed with a SIGKILL signal. - the web service client sends:
{ "$TYPE": "Terminate", "sigtermProcesses": false, "sigkillProcessesAfter": 15 }
- this corresponds to the XML command that is used for a Master:
<modify_spooler
cmd='terminate'
timeout='15'
/>
- the Agent sends all tasks a SIGTERM command and will wait for the specified timeout.
Sample Web Service Client for sending Commands
Sample Script
A sample web service client is provided by the class com.sos.scheduler.engine.agent.client.main.AgentClientMain
that can be used with individual scripts, e.g. for a Unix environment like this:
Usage for Status Information
The first argument is the Agent URI, for example http://localhost:4445
The following arguments are web service paths (each starting with a slash) or commands (JSON or YAML).
With no argument, the client checks whether the Agent is alive.
Usage for Commands
The command responses are written to stdout
. In case of an error, the error message is written to stdout
and detailed messages are written to stderr
.
References
See also
Change Management References