diff --git a/.circleci/config.yml b/.circleci/config.yml index 2fa4fc556..f90e1d3c6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -79,7 +79,7 @@ commands: docker-compose -f ./.circleci/dcm4chee/auth-docker-compose.yml up -d export DICOMWEB_TEST_URL=http://localhost:8008/dcm4chee-arc/aets/DCM4CHEE/rs echo "export DICOMWEB_TEST_URL=$DICOMWEB_TEST_URL" >> $BASH_ENV - pip install dicomweb_client 'python-keycloak<4.1' + pip install dicomweb_client tenacity 'python-keycloak<4.1' # Wait up to 60 seconds for keycloak to be ready echo 'Waiting for keycloak to start...' diff --git a/.circleci/dcm4chee/docker-compose.yml b/.circleci/dcm4chee/docker-compose.yml index c25f2e5fb..b81489ac9 100644 --- a/.circleci/dcm4chee/docker-compose.yml +++ b/.circleci/dcm4chee/docker-compose.yml @@ -7,7 +7,7 @@ volumes: ldap_config: {} services: ldap: - image: dcm4che/slapd-dcm4chee:2.6.6-33.0 + image: dcm4che/slapd-dcm4chee:2.6.5-31.2 logging: driver: json-file options: @@ -20,7 +20,7 @@ services: - ldap_data:/var/lib/openldap/openldap-data - ldap_config:/etc/openldap/slapd.d db: - image: dcm4che/postgres-dcm4chee:16.4-33 + image: dcm4che/postgres-dcm4chee:15.4-31 logging: driver: json-file options: @@ -34,7 +34,7 @@ services: volumes: - db_data:/var/lib/postgresql/data arc: - image: dcm4che/dcm4chee-arc-psql:5.33.0 + image: dcm4che/dcm4chee-arc-psql:5.31.2 logging: driver: json-file options: diff --git a/.circleci/dcm4chee/upload_example_data.py b/.circleci/dcm4chee/upload_example_data.py index 80bd308aa..174f51002 100755 --- a/.circleci/dcm4chee/upload_example_data.py +++ b/.circleci/dcm4chee/upload_example_data.py @@ -6,6 +6,7 @@ from dicomweb_client import DICOMwebClient from pydicom import dcmread from requests import Session +from tenacity import Retrying, stop_after_attempt, wait_exponential def upload_example_data(server_url, token=None): @@ -22,8 +23,11 @@ def upload_example_data(server_url, token=None): datasets = [] for url in download_urls: - resp = urllib.request.urlopen(url) - data = resp.read() + for attempt in Retrying(stop=stop_after_attempt(5), + wait=wait_exponential(multiplier=1, min=0.5, max=5)): + with attempt: + resp = urllib.request.urlopen(url) + data = resp.read() dataset = dcmread(BytesIO(data)) datasets.append(dataset) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5772b7d9c..4e568a5b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Don't use a default for yaml config files except .large_image_config.yaml ([#1685](../../pull/1685)) - Some checks for repeated values in the item lists were wrong ([#1686](../../pull/1686)) +- Better support creating zarr sinks from multiple processes ([#1687](../../pull/1687)) ## 1.30.0