From 31b7f1edbc075d432c889c93303e905266c739ea Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Tue, 6 Jul 2021 21:16:02 +0200 Subject: [PATCH] L2SS-302: Explicitly expose our devices on their own unique ports, and tell CORBA what to listen on and how others can reach them --- docker-compose/Makefile | 4 ++++ docker-compose/device-pcc.yml | 6 +++++- docker-compose/device-sdp.yml | 6 +++++- docker-compose/device-sst.yml | 7 +++++-- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/docker-compose/Makefile b/docker-compose/Makefile index 307e7c0e6..09eb76012 100644 --- a/docker-compose/Makefile +++ b/docker-compose/Makefile @@ -21,6 +21,9 @@ ATTACH_COMPOSE_FILE_ARGS := $(foreach yml,$(filter-out tango.yml,$(COMPOSE_FILES # But we allow to overwrite it. NETWORK_MODE ?= tangonet +# Host name through which others can reach our control interfaces +HOSTNAME ?= $(shell hostname -f) + # If the first make argument is "start" or "stop"... ifeq (start,$(firstword $(MAKECMDGOALS))) SERVICE_TARGET = true @@ -105,6 +108,7 @@ endif DOCKER_COMPOSE_ARGS := DISPLAY=$(DISPLAY) \ XAUTHORITY=$(XAUTHORITY) \ TANGO_HOST=$(TANGO_HOST) \ + HOSTNAME=$(HOSTNAME) \ NETWORK_MODE=$(NETWORK_MODE) \ XAUTHORITY_MOUNT=$(XAUTHORITY_MOUNT) \ TANGO_LOFAR_CONTAINER_MOUNT=$(TANGO_LOFAR_CONTAINER_MOUNT) \ diff --git a/docker-compose/device-pcc.yml b/docker-compose/device-pcc.yml index 3dc69f20b..ebf71352d 100644 --- a/docker-compose/device-pcc.yml +++ b/docker-compose/device-pcc.yml @@ -24,6 +24,8 @@ services: container_name: ${CONTAINER_NAME_PREFIX}device-pcc networks: - control + ports: + - "5700:5700" # unique port for this DS volumes: - ${TANGO_LOFAR_CONTAINER_MOUNT} environment: @@ -34,5 +36,7 @@ services: - --timeout=30 - --strict - -- - - python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/pcc.py LTS -v + # configure CORBA to _listen_ on 0:port, but tell others we're _reachable_ through ${HOSTNAME}:port, since CORBA + # can't know about our Docker port forwarding + - python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/pcc.py LTS -v -ORBendPoint giop:tcp:0:5700 -ORBendPointPublish giop:tcp:${HOSTNAME}:5700 restart: on-failure diff --git a/docker-compose/device-sdp.yml b/docker-compose/device-sdp.yml index 27d6a33cf..a65bb8ae3 100644 --- a/docker-compose/device-sdp.yml +++ b/docker-compose/device-sdp.yml @@ -24,6 +24,8 @@ services: container_name: ${CONTAINER_NAME_PREFIX}device-sdp networks: - control + ports: + - "5701:5701" # unique port for this DS volumes: - ${TANGO_LOFAR_CONTAINER_MOUNT} environment: @@ -34,5 +36,7 @@ services: - --timeout=30 - --strict - -- - - python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/sdp/sdp.py LTS -v + # configure CORBA to _listen_ on 0:port, but tell others we're _reachable_ through ${HOSTNAME}:port, since CORBA + # can't know about our Docker port forwarding + - python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/sdp/sdp.py LTS -v -ORBendPoint giop:tcp:0:5701 -ORBendPointPublish giop:tcp:${HOSTNAME}:5701 restart: on-failure diff --git a/docker-compose/device-sst.yml b/docker-compose/device-sst.yml index 7a669cf0a..c620ba206 100644 --- a/docker-compose/device-sst.yml +++ b/docker-compose/device-sst.yml @@ -26,7 +26,8 @@ services: - control - data ports: - - 5001:5001/udp + - "5001:5001/udp" # port to receive SST UDP packets on + - "5702:5702" # unique port for this DS volumes: - ${TANGO_LOFAR_CONTAINER_MOUNT} environment: @@ -37,5 +38,7 @@ services: - --timeout=30 - --strict - -- - - python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/sdp/sst.py LTS -v + # configure CORBA to _listen_ on 0:port, but tell others we're _reachable_ through ${HOSTNAME}:port, since CORBA + # can't know about our Docker port forwarding + - python3 -u ${TANGO_LOFAR_CONTAINER_DIR}/devices/devices/sdp/sst.py LTS -v -ORBendPoint giop:tcp:0:5702 -ORBendPointPublish giop:tcp:${HOSTNAME}:5702 restart: on-failure -- GitLab