ska-tango-images-rest-server

This image contains TangoRestServer. TangoRestServer is a web sever which exposes your Tango control system via a REST API.

Summary

Release 0.7.4 of ska-tango-images provides the 1.22.5 tag of the ska-tango-images-rest-server OCI image.

The image uses ska-tango-images-tango-admin as a base image and so provides the same features, in addition to the TangoRestServer application.

If you are publishing works that rely on the TangoRestServer application, it would be greatly appreciated if you could cite the application using the following DOI:

Included Software

Package

Version

TangoRestServer

1.22

tango_admin

1.27

cppTango

10.1.2

ZeroMQ

4.3.5

omniORB

4.3.3

opentelemetry-cpp

1.19.0

Usage Example

To launch the “rest” instance of the TangoRestServer device server, connecting to TANGO_HOST=localhost:10000 run the following:

docker run --rm --env TANGO_HOST=localhost:10000 --net=host \
  --detach --name rest-server \
  artefact.skao.int/ska-tango-images-rest-server:1.22.5 \
  rest

This will launch a REST server listening on port 10001, to check that this is working run the following curl command:

URL="http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/rest/0"
curl -s -u "tango-cs:tango" $URL | python -m json.tool

Which should output something like the following:

{
    "name": "sys/rest/0",
    "info": {
        "last_exported": "4th February 2025 at 15:42:10",
        "last_unexported": "?",
        "name": "sys/rest/0",
        "ior": <some very long IOR>,
        "version": "5",
        "exported": true,
        "pid": 7,
        "server": "TangoRestServer/rest",
        "hostname": "localhost",
        "classname": "unknown",
        "is_taco": false
    },
    "attributes": "http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/rest/0/attributes",
    "commands": "http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/rest/0/commands",
    "pipes": "http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/rest/0/pipes",
    "properties": "http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/rest/0/properties",
    "state": "http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/rest/0/state",
    "_links": {
        "_self": "http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/rest/0",
        "_parent": "http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/"
    }
}

The REST server can be stopped with:

docker stop rest-server