FHIR icon indicating copy to clipboard operation
FHIR copied to clipboard

Test payload offloading with azurite as part of github action CI

Open lmsurpre opened this issue 2 years ago • 1 comments

Is your feature request related to a problem? Please describe. Today we have no end-to-end test coverage for the payload-offload feature with azure-blob

Describe the solution you'd like As part of our CI:

  1. spin up an azurite container
  2. configure a fhir server instance with payload offload enabled
  3. run the full suite for end-to-end tests

Describe alternatives you've considered

Acceptance Criteria

  1. make sure it runs as part of CI

Additional context Just like https://github.com/ibm/fhir/issues/3239 but for azure-blob

lmsurpre avatar Mar 02 '22 16:03 lmsurpre

I don't think that payload offloading is actually happening because the configuration in fhir-server-config-postgresql-azurite.json specifies the standard persistence factory:

        "factoryClassname": "org.linuxforhealth.fhir.persistence.jdbc.FHIRPersistenceJDBCFactory",

For offloading, the persistence factory needs to be:

        "factoryClassname": "org.linuxforhealth.fhir.persistence.blob.FHIRPersistenceJDBCBlobFactory",

punktilious avatar Aug 09 '22 13:08 punktilious

Confirmed that we are now using an azurite payload configuration in one of the integration tests:

[8/24/22, 10:31:43:227 UTC] 00000028 FHIRRestServl I   Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/ActivityDefinition]
[8/24/22, 10:31:43:231 UTC] 0000003b FHIRRestServl I   Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/AdverseEvent]
[8/24/22, 10:31:43:247 UTC] 00000037 FHIRRestServl I   Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/AllergyIntolerance]
[8/24/22, 10:31:43:256 UTC] 0000002b FHIRRestServl I   Received request: tenantId:[default] dsId:[default] user:[fhiruser] method:[POST] uri:[https://localhost:9443/fhir-server/api/v4/ActivityDefinition]
[8/24/22, 10:31:44:625 UTC] 00000037 JacksonVersio I com.azure.core.util.logging.ClientLogger info Package versions: jackson-annotations=2.13.3, jackson-core=2.13.3, jackson-databind=2.13.3, jackson-dataformat-xml=2.13.3, jackson-datatype-jsr310=2.13.2, azure-core=1.29.1, Troubleshooting version conflicts: https://aka.ms/azsdk/java/dependency/troubleshoot

The above log shows that The Azure client service is being initialized as the first request to hit the persistence layer is processed. This indicates that payload offloading has been configured and is in use. The subsequent integration tests exercise all the read/write activities to show this is working as expected.

punktilious avatar Aug 24 '22 12:08 punktilious