Search
Write a publication
Pull to refresh

Tango Controls RestServer

Reading time2 min
Views1.3K
main

Все работы произведены на Linux (TangoBox 9.3 на основе Ubuntu 18.04), который является официальным дистрибутивом проекта.


Содержание


  1. Установка
    1. Установка из репозитория
    2. Установка из исходников
  2. Отключение
    1. Отключение старого RestServer-а
  3. API
    1. Документация

Установка


Установка из репозитория


Получаем последнюю версию docker-а из репозитория и запускаем его.


docker pull tangocs/rest-server:rest-server-2.1
docker run --restart unless-stopped -p 8080:8080 -d tangocs/rest-server:rest-server-2.1

Смотрим результат выполнения. В список контейнеров добавился tangocs/rest-server.



Список запущенных контейнеров пополнил tangocs/rest-server:rest-server-2.1.



Проверка работоспособности:


Логин и пароль по умолчанию tango-cs/tango.



Важный акцент, в системе TangoBox 9.3 изначально работает старый RestServer. Работает он не в docker-е, а в самой системе! Их API отличается.



Проверка его работы:



Работает на 10001 порту, и поскольку он работает в системе, то обратится может к Tango Controls как к localhost, чего не сможет docker.


http://localhost:10001/tango/rest/rc4/hosts/localhost/10000/devices/sys/tg_test/1/attributes/double_scalar/value

В docker-t RestServer работает на 8080 порту, и его порт проброшен в систему. Но обращаться к Tango Controls он должен по ip адресу системы 172.17.0.1 где тот работает!


http://localhost:8080/tango/rest/v10/hosts/172.17.0.1;port=10000/devices/sys/tg_test/1/attributes/double_scalar/value

Репозиторий содержит не последнюю версию. Установить последнюю версию можно из исходников, на текущий момент 2.2.


Установка из исходников


Последняя версия TangoRestServer.


git clone https://github.com/tango-controls/rest-server.git
cd rest-server

Собирается docker под java версии 11, но все в системе работает под 8-ой версий.
Временно поменяем версию по умолчанию с 8 на 11.


sudo update-alternatives --config java


mvn package
docker build -t tangocs/rest-server:rest-server-2.2 . 

Получил следующую ошибку:


COPY failed: file not found in build context or excluded by .dockerignore: stat target/.war: file does not exist


Открываем Dockerfile и меняем
COPY target/${REST_SERVER_VERSION}.war /usr/local/tomcat/webapps/tango.war
на
COPY target/rest-server-2.2-SNAPSHOT.war /usr/local/tomcat/webapps/tango.war


Т.к. docker собрался с именем rest-server-2.2-SNAPSHOT.war


Смотрим список образов:



Теперь запускаем наш docker, он будет работать на 8080 порту.


docker run --restart unless-stopped -p 8080:8080 -d tangocs/rest-server:rest-server-2.2

Процедура проверки работоспособности такая же как и в 1-ом абзаце.


Переключим версию java назад на 8-ую.


sudo update-alternatives --config java

Отключение старого RestServer-а


Запускаем Astor


astor


Выбираем ветку Miscellaneous, стартер tangobox, меню Open control Panel. Открывается окно управления стартером.



Ищем RestServer и выбираем Set startup level, и отключаем его.



В итоге получается следующее:



Старый RestServer выключен.


API


Документация


Документация


Спасибо за внимание.

Tags:
Hubs:
Total votes 2: ↑1 and ↓10
Comments4

Articles