You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Universal Agent REST Web Service

The Universal Agent comes with a REST web service that allows it to be controlled from the command line. The service supports the following operations:

  • sending commands and
  • showing information.

Commands can be sent to an Agent:

  • via any client application that sends the command with an HTTP request (JSON)
  • via the start script of the Agent.
    The start script makes use of a Java class that implements the HTTP client.

Start Script Status Information

JS-1426 - Getting issue details... STATUS

The information is returned in JSON format.

If the Agent is not available, an exit status is returned accordingly.

The web service overview is called using  jobscheduler_agent.sh status .

 

Web Service Status Information

JS-1480 - Getting issue details... STATUS

JS-1412 - Getting issue details... STATUS

The Universal Agent provides status information via web services.

URI Syntax

All API URIs start with an optional prefix (if set on starting the Agent with the command line option -uri-prefix= set) and the /jobscheduler/agent/api character string.

  • General status information is provided by:
    • /jobscheduler/agent/api
  • General status information is also provided by:
    • /jobscheduler/agent/api/overview
  • Information about the Agent tasks running is provided by the web service:
    • /jobscheduler/agent/api/task
  • Information about the active command is provided by the web service:
    • /jobscheduler/agent/api/tunnel
  • Information about the active command is provided by the web service:
    • /jobscheduler/agent/api/tunnel (without an end forward slash)
  • A list of tunnels is provided by the web service:
    • /jobscheduler/agent/api/tunnel/ (with an end forward slash)
  • A summary of the commands running is provided by the web service:
    • /jobscheduler/agent/api/command (without an end forward slash)
  • A list of the commands running is provided by the web service:
    • /jobscheduler/agent/api/command/ (with an end forward slash)

Note

These services are read only (HTTP verb GET). Changes are made using the command service (api/command). (The only command is terminate).

The following web services are addressed with the verb POST:

  • /jobscheduler/agent/api/task/command
  • /jobscheduler/agent/api/tunnel/id

Status Information Examples

Response for /jobscheduler/agent/api
totalTaskCount: 0
isTerminating: false
system:
  hostname: docker-agent
  mxBeans:
    operatingSystem:
      processCpuLoad: 9.71859949958501E-7
      availableProcessors: 8
      freePhysicalMemorySize: 1791545344
      systemCpuLoad: 0.00774040220626055
      committedVirtualMemorySize: 4809150464
      totalPhysicalMemorySize: 4897579008
currentTaskCount: 0
java:
  systemProperties:
    java.vendor: Azul Systems, Inc.
    os.arch: amd64
    os.version: 3.10.0-229.7.2.el7.x86_64
    os.name: Linux
    java.version: 1.8.0_25
version: 1.10.0-xx
startedAt: '2015-08-19T15:21:42.423Z'
Response for /jobscheduler/agent/api/task - Agent tasks running
tasks:
- id: 4-259101459
  tunnelId: '4'
  controllerAddress: 127.0.0.1:9338
  startedAt: '2015-08-19T13:11:18.239Z'
- id: 2-15899022
  tunnelId: '2'
  controllerAddress: 127.0.0.1:9338
  startedAt: '2015-08-19T13:11:18.239Z'
- id: 3-707059672
  tunnelId: '3'
  controllerAddress: 127.0.0.1:9338
  startedAt: '2015-08-19T13:11:18.239Z'

Termination via Web Service

JS-1400 - Getting issue details... STATUS

JS-1401 - Getting issue details... STATUS

The JobScheduler Universal Agent is terminated

  • by use of the start script, e.g.
    • ./jobscheduler_agent.sh stop
  • by calling the Agent web service URL for commands with a JSON command
    • /jobscheduler/agent/api/command

 

JSON commands to terminate the Agent are sent by an HTTP POST request and include:

  • abort immediately:
    • the Agent will kill all running tasks and will terminate immediately
    • the 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 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 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'/>

References

See also

Change Management References

T Key Linked Issues Fix Version/s Status P Summary Updated
Loading...
Refresh

  • No labels