diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4e38e66a45398a91bdf6d0ec75aa33ce4d1e6182..ca23373f6331acc7ee13fbb14991f8134fa2a4cd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -98,6 +98,7 @@ docker_build_image_all: - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-antennafield latest - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-boot latest - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-docker latest + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-observation latest - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-observation_control latest - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-pdu latest - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-recv latest @@ -320,6 +321,17 @@ docker_build_image_device_docker: script: # Do not remove 'bash' or statement will be ignored by primitive docker shell - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-docker $tag +docker_build_image_device_observation: + extends: .base_docker_images_except + only: + refs: + - merge_requests + changes: + - docker-compose/device-observation.yml + - docker-compose/lofar-device-base/* + script: +# Do not remove 'bash' or statement will be ignored by primitive docker shell + - bash $CI_PROJECT_DIR/sbin/tag_and_push_docker_image.sh device-observation $tag docker_build_image_device_observation_control: extends: .base_docker_images_except only: diff --git a/CDB/test_environment_ConfigDb.json b/CDB/test_environment_ConfigDb.json new file mode 100644 index 0000000000000000000000000000000000000000..eaa786547743f368a4a1b8333d89d127f4b3b829 --- /dev/null +++ b/CDB/test_environment_ConfigDb.json @@ -0,0 +1,11 @@ +{ + "servers": { + "Observation": { + "STAT": { + "Observation": { + "STAT/Observation/1": {} + } + } + } + } +} \ No newline at end of file diff --git a/docker-compose/device-observation.yml b/docker-compose/device-observation.yml new file mode 100644 index 0000000000000000000000000000000000000000..28beae49945ced6526648893b81eb57783aeb2f8 --- /dev/null +++ b/docker-compose/device-observation.yml @@ -0,0 +1,45 @@ +# +# Docker compose file that launches a LOFAR2.0 station's +# Observation device. +# +# Defines: +# - device-observation: LOFAR2.0 station Observation +# +# Requires: +# - lofar-device-base.yml +# +version: '2' + +services: + device-observation: + image: device-observation + # build explicitly, as docker-compose does not understand a local image + # being shared among services. + build: + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile + args: + SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} + container_name: ${CONTAINER_NAME_PREFIX}device-observation + logging: + driver: "json-file" + options: + max-size: "100m" + max-file: "10" + networks: + - control + ports: + - "5718:5718" # unique port for this DS + extra_hosts: + - "host.docker.internal:host-gateway" + volumes: + - ..:/opt/lofar/tango:rw + environment: + - TANGO_HOST=${TANGO_HOST} + working_dir: /opt/lofar/tango + entrypoint: + - bin/start-ds.sh + # 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 + - l2ss-observation Observation STAT -v -ORBendPoint giop:tcp:0:5718 -ORBendPointPublish giop:tcp:${HOSTNAME}:5718 + restart: unless-stopped diff --git a/sbin/run_integration_test.sh b/sbin/run_integration_test.sh index 7e0cf3b27ba111077c5739ce5fd832b4b6ea6e05..c276433a4705518708166fc78dbc4c34a0e51e5b 100755 --- a/sbin/run_integration_test.sh +++ b/sbin/run_integration_test.sh @@ -41,6 +41,7 @@ make start elk # Update the dsconfig # Do not remove `bash`, otherwise statement ignored by gitlab ci shell! bash "${LOFAR20_DIR}"/sbin/update_ConfigDb.sh "${LOFAR20_DIR}"/CDB/LOFAR_ConfigDb.json +bash "${LOFAR20_DIR}"/sbin/update_ConfigDb.sh "${LOFAR20_DIR}"/CDB/test_environment_ConfigDb.json bash "${LOFAR20_DIR}"/sbin/update_ConfigDb.sh "${LOFAR20_DIR}"/CDB/tango-archiver-data/archiver-devices.json bash "${LOFAR20_DIR}"/sbin/update_ConfigDb.sh "${LOFAR20_DIR}"/CDB/stations/simulators_ConfigDb.json bash "${LOFAR20_DIR}"/sbin/update_ConfigDb.sh "${LOFAR20_DIR}"/CDB/stations/dummy_positions_ConfigDb.json diff --git a/sbin/tag_and_push_docker_image.sh b/sbin/tag_and_push_docker_image.sh index 3689a26b4f988a463e6022472abc7db73d491f51..d0ac898cf9afb488b043c399d7dcd59d28f0107e 100755 --- a/sbin/tag_and_push_docker_image.sh +++ b/sbin/tag_and_push_docker_image.sh @@ -85,6 +85,7 @@ LOCAL_IMAGES=( "device-apsct device-apsct y" "device-apspu device-apspu y" "device-boot device-boot y" "device-docker device-docker y" + "device-observation device-observation y" "device-observation_control device-observation_control y" "device-recv device-recv y" "device-temperature-manager y" "device-sdp device-sdp y" "device-sst device-sst y" diff --git a/tangostationcontrol/tangostationcontrol/devices/README.md b/tangostationcontrol/tangostationcontrol/devices/README.md index 566fb78e57ce093aefade15fc21e8d64c94d47ed..65135e52d14e4872074014378b8604c195d200b4 100644 --- a/tangostationcontrol/tangostationcontrol/devices/README.md +++ b/tangostationcontrol/tangostationcontrol/devices/README.md @@ -15,7 +15,7 @@ If a new device is added, it will (likely) need to be referenced in several plac - Add to `tangostationcontrol/tangostationcontrol/integration_test/default/devices/` to add an integration test, - Adjust `sbin/run_integration_test.sh` to have the device started when running the integration tests, - Adjust `.gitlab-ci.yml` to add the device to the `docker_build_image_all` step and to create a `docker_build_image_device_XXX` step, -- Add to `sbin/tag_and_push_docker_image.sh` the LOCAL_IMAGES devicename and build for integration boolean pair, +- Add to `sbin/tag_and_push_docker_image.sh` the LOCAL_IMAGES device name, imagine name and build for integration boolean triple, - Add to `tangostationcontrol/docs/source/devices/` to mention the device in the end-user documentation. - Adjust `tangostationcontrol/docs/source/index.rst` to include the newly created file in `docs/source/devices/`.