Skip to content
Open
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
9a2562e
Exposes the /dwh, /config and /next APIs
ndegwamartin Aug 6, 2025
5a96344
Adds prefix to snapshot ids for /dwh
ndegwamartin Aug 7, 2025
446cfef
Formats files with mvn clean package
ndegwamartin Aug 7, 2025
634575f
Refactors listDwhSnapshot to reuse existing code
ndegwamartin Aug 7, 2025
7f9bdd0
Adds delete snapshot functionality to /dwh endpoint
ndegwamartin Aug 7, 2025
37fde9f
Adds unit tests
ndegwamartin Aug 8, 2025
e37321a
Merge branch 'master' into expose-apis
ndegwamartin Aug 13, 2025
0a2a7b5
Addresses PR Feedback
ndegwamartin Aug 15, 2025
cac1332
Merge branch 'expose-apis' of github.com:ndegwamartin/fhir-data-pipes…
ndegwamartin Aug 15, 2025
f3e7767
Merge branch 'master' into expose-apis
ndegwamartin Aug 15, 2025
084f859
Implements CLI for the pipeline controller
ndegwamartin Aug 15, 2025
f12b4a6
Merge branch 'master' into controller-cli
ndegwamartin Aug 19, 2025
fc1899d
Merge branch 'master' into controller-cli
ndegwamartin Aug 20, 2025
6d7b0de
Merge remote-tracking branch 'martin/master' into controller-cli
ndegwamartin Aug 22, 2025
2c000a6
Format controller-cli main.py
ndegwamartin Aug 22, 2025
bf0aa80
Refactors to use setup tools | Wrapper for cli tooling
ndegwamartin Aug 23, 2025
303f396
Refactors CLI implementation
ndegwamartin Aug 25, 2025
c716e33
Adds dev and user documentation
ndegwamartin Aug 25, 2025
d21b0e4
Adds tests for the Controller CLI
ndegwamartin Aug 25, 2025
f8f2c8a
Trigger CI
ndegwamartin Aug 26, 2025
e61f55b
Refactors to use HTTP request mocking
ndegwamartin Sep 3, 2025
216b16d
Merge remote-tracking branch 'origin/master' into controller-cli
ndegwamartin Sep 4, 2025
b1720d7
Address PR feedback
ndegwamartin Sep 4, 2025
37b81c6
Removes error file
ndegwamartin Sep 4, 2025
cd78a83
Refactors e2e tests scripts to utilize controller-cli to trigger runs
ndegwamartin Sep 4, 2025
6d56abc
Refactors e2e pipeline run check to use controller CLI
ndegwamartin Sep 4, 2025
5837d81
Address PR Feedback II
ndegwamartin Sep 4, 2025
15586fc
Runs PyLint in Controller CLI and formats
ndegwamartin Sep 4, 2025
5fd678a
Refactors e2e controller CLI install logic to Dockerfile
ndegwamartin Sep 8, 2025
f85b30c
Adresses PR Feedback | Cleans up docs
ndegwamartin Sep 8, 2025
3b0c5df
Combines CLI install commands to same Dockerfile layer
ndegwamartin Sep 8, 2025
daa4fc9
Reconfigures the cloud build Build E2E Image step to support Controll…
ndegwamartin Sep 8, 2025
44a3504
Reverts changes to e2e tests running
ndegwamartin Sep 9, 2025
11f188a
Troubleshooting : Enables LOG printing for controller e2e tests
ndegwamartin Sep 10, 2025
093bb63
Reverts e2e test changes
ndegwamartin Sep 11, 2025
f15e1ba
Reverts cloudbuild logs configuration
ndegwamartin Sep 12, 2025
c840287
Adds Controller CLI script install configuration to main Dockerfile
ndegwamartin Sep 13, 2025
1478dd4
Merge branch 'master' into controller-cli
ndegwamartin Sep 13, 2025
3d0025f
Merge branch 'master' into controller-cli-e2e
ndegwamartin Sep 16, 2025
a298001
Migrates end to end script to controller CLI
ndegwamartin Sep 16, 2025
381bf3f
Updates controller CLI install in e2e Docker configuration
ndegwamartin Sep 16, 2025
eaf4779
Disables extra logs for Run E2E Tests for Dockerized Controller and S…
ndegwamartin Sep 16, 2025
c0b0f5e
Revert "Updates controller CLI install in e2e Docker configuration"
ndegwamartin Sep 17, 2025
e7a8c28
Merge branch 'master' into controller-cli-e2e
ndegwamartin Sep 17, 2025
0717bf4
Merge branch 'master' into controller-cli-e2e
ndegwamartin Sep 17, 2025
5895bf6
Merge branch 'master' into controller-cli-e2e
ndegwamartin Sep 23, 2025
b953985
Merge branch 'master' into controller-cli-e2e
ndegwamartin Oct 6, 2025
e91535a
Merge branch 'master' into controller-cli-e2e
ndegwamartin Oct 21, 2025
ff04807
Merge branch 'master' into controller-cli-e2e
ndegwamartin Oct 22, 2025
a4b0168
Merge branch 'master' into controller-cli-e2e
ndegwamartin Oct 22, 2025
6ff2303
Adds query parameters to requests url for POST
ndegwamartin Oct 22, 2025
2f76df3
Addresses PR Feedback
ndegwamartin Oct 22, 2025
cc3968c
Adds missing parameters to to POST requests
ndegwamartin Oct 23, 2025
dfd45c1
Merge branch 'master' into controller-cli-e2e
ndegwamartin Oct 30, 2025
42b2a78
Add quotes around bash script command environment variables
ndegwamartin Oct 30, 2025
8e072df
Merge branch 'controller-cli-e2e' of github.com:ndegwamartin/fhir-dat…
ndegwamartin Oct 30, 2025
0b3119a
Enhances the pipeline status check to be more robust
ndegwamartin Oct 30, 2025
633d3b8
Refactors run api method to return valid Json
ndegwamartin Oct 30, 2025
5de111e
Troubleshooting tag
ndegwamartin Oct 31, 2025
142123b
Troubleshooting tag
ndegwamartin Oct 31, 2025
0e39a85
Adds debug logs for Troubleshooting
ndegwamartin Nov 1, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,8 @@ steps:
entrypoint: /bin/bash
args:
- -c
- cd e2e-tests;
docker build -t ${_REPOSITORY}/e2e-tests:${_TAG} .;
docker build -t ${_REPOSITORY}/e2e-tests/controller-spark:${_TAG} ./controller-spark/.;
- docker build -t ${_REPOSITORY}/e2e-tests:${_TAG} -f e2e-tests/Dockerfile ./e2e-tests/;
docker build -t ${_REPOSITORY}/e2e-tests/controller-spark:${_TAG} -f e2e-tests/controller-spark/Dockerfile .;
waitFor: ['-']

- name: '${_REPOSITORY}/synthea-uploader:${_TAG}'
Expand Down Expand Up @@ -203,17 +202,18 @@ steps:
id: 'Run E2E Test for Dockerized Controller and Spark Thriftserver'
waitFor: [ 'Bring up controller and Spark containers',
'Run E2E Test for BULK_EXPORT mode with HAPI source' ]
# allowFailure: true

# The controller logs don't appear in Cloud Build output because we run it in
# the detached mode. For debugging controller failures we can use something like
# the following (and forcing the previous step to have 0 exit code or by
# adding allowFailure: true).
# - name: 'gcr.io/cloud-builders/docker'
# id: 'PRINT CONTROLLER LOGS'
# entrypoint: /bin/bash
# args:
# - -c
# - docker logs pipeline-controller
#- name: 'gcr.io/cloud-builders/docker'
# id: 'PRINT CONTROLLER LOGS'
# entrypoint: /bin/bash
# args:
# - -c
# - docker logs pipeline-controller

- name: 'docker/compose'
id: 'Bring down controller and Spark containers'
Expand Down
16 changes: 5 additions & 11 deletions doc/docs/additional.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,17 +213,11 @@ controller <url> dwh delete --snapshot-id <snapshot id>
first. A valid snapshot-id is the full id as shown in the list e.g.
`dwh/controller_DEV_DWH_TIMESTAMP_2025_08_14T17_47_15_357080Z`

**Note on CLI Access in Docker container:** If you are running the pipeline
controller in a docker container as defined in ./Dockerfile e.g. such as when
using the Single Machine docker compose configuration, you can access the CLI
tool by running the following command from the host machine.
**Note on CLI Access with Docker ** If you are running the pipeline controller
in a docker container as defined in ./Dockerfile e.g. such as when using the
Single Machine docker compose configuration, you can access the CLI tool by
running the following command from the host machine.

```sh
docker exec -it <container_id or container_name> /bin/bash
```

And then access the CLI tool as described above.

```sh
controller <url> <command> [options]
docker exec <container_id or container_name> controller <url> <command> [options]
```
5 changes: 5 additions & 0 deletions e2e-tests/controller-spark/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,10 @@ ENV PARQUET_SUBDIR="dwh"
ENV DOCKER_NETWORK="--use_docker_network"
ENV HOME_DIR="/workspace/e2e-tests/controller-spark"
ENV DWH_TYPE="PARQUET"
ENV CONTROLLER_CLI_DIR="./controller-cli"

COPY ./pipelines/controller-cli/ ${CONTROLLER_CLI_DIR}/
WORKDIR ${CONTROLLER_CLI_DIR}
RUN pip3 install .

ENTRYPOINT cd ${HOME_DIR}; ./controller_spark_sql_validation.sh ${HOME_DIR} ${PARQUET_SUBDIR} ${DOCKER_NETWORK} ${DWH_TYPE}
12 changes: 3 additions & 9 deletions e2e-tests/controller-spark/controller_spark_sql_validation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,7 @@ function fhir_source_query() {
#######################################################################
function run_pipeline() {
local runMode=$1
curl --location --request POST "${PIPELINE_CONTROLLER_URL}/run?runMode=${runMode}" \
--connect-timeout 5 \
--header 'Content-Type: application/json' \
--header 'Accept: */*' -v
controller ${PIPELINE_CONTROLLER_URL} run --mode ${runMode}
}

function wait_for_completion() {
Expand All @@ -200,11 +197,8 @@ function wait_for_completion() {

while [[ $(date -u +%s) -le ${end_time} ]]
do
local pipeline_status=$(curl --location --request GET "${PIPELINE_CONTROLLER_URL}/status?" \
--connect-timeout 5 \
--header 'Content-Type: application/json' \
--header 'Accept: */*' -v \
| jq -r '.pipelineStatus')
local pipeline_status=$(controller "${PIPELINE_CONTROLLER_URL}" status \
| sed -n '/{/,/}/p' | jq -r '.pipelineStatus')

if [[ "${pipeline_status}" == "RUNNING" ]]
then
Expand Down
Loading