diff --git a/src/main/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersService.java b/src/main/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersService.java index a42f0dc..8885a97 100644 --- a/src/main/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersService.java +++ b/src/main/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersService.java @@ -22,16 +22,20 @@ public class ReplaceParametersService { private final List paramsToOverrideFromOdsApi; + private final Boolean odsApiServiceEnabled; + public ReplaceParametersService(OdsApiService odsApiService, SnakeCaseExtractor snakeCaseExtractor, - @Value("${component-provisioner.ods-api-service.params.override}") String paramsToOverrideFromOdsApiConfig) { + @Value("${component-provisioner.ods-api-service.params.override}") String paramsToOverrideFromOdsApiConfig, + @Value("${component-provisioner.ods-api-service.enabled}") Boolean odsApiServiceEnabled) { this.odsApiService = odsApiService; this.snakeCaseExtractor = snakeCaseExtractor; this.paramsToOverrideFromOdsApi = Arrays.stream(paramsToOverrideFromOdsApiConfig.split(",")).toList(); + this.odsApiServiceEnabled = odsApiServiceEnabled; } public ProvisionActionWrapper replaceProvisioningParametersFromOdsApi(ProvisionActionWrapper provisionActionWrapper) { - if (paramsToOverrideFromOdsApi == null || paramsToOverrideFromOdsApi.isEmpty()) { + if (Boolean.FALSE.equals(odsApiServiceEnabled) || paramsToOverrideFromOdsApi == null || paramsToOverrideFromOdsApi.isEmpty()) { log.debug("No ODS API parameters configured to override. Skipping overriding provisioning parameters from ODS API."); return provisionActionWrapper; diff --git a/src/main/resources/application-local.env.template b/src/main/resources/application-local.env.template index dc8aba8..43ac03a 100644 --- a/src/main/resources/application-local.env.template +++ b/src/main/resources/application-local.env.template @@ -28,6 +28,7 @@ PROJECTS_INFO_SERVICE_BASE_REST_URL="https://projects-info-service-devstack-dev. CACHING_PROJECTS_INFO_SERVICE_CACHE_EVICTION_INTERVAL=5s CACHING_PROJECTS_INFO_SERVICE_CACHE_MAX_SIZE=100MB +ODS_API_SERVICE_ENABLED=true ODS_API_SERVICE_SERVICE_PARAMS_OVERRIDE="project_flavour" ODS_API_SERVICE_SERVICE_BASE_REST_URL="https://localhost:8081/v1" ODS_API_SERVICE_SERVICE_PARAMS_CLIENT_ID="client-id" diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 704bd2e..a2d489d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -72,6 +72,7 @@ component-provisioner: username: ${COMPONENT_CATALOG_PROVISIONER_USERNAME} password: ${COMPONENT_CATALOG_PROVISIONER_PASSWORD} ods-api-service: + enabled: ${ODS_API_SERVICE_ENABLED} service: base-rest-url: ${ODS_API_SERVICE_SERVICE_BASE_REST_URL} params: diff --git a/src/test/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersServiceTest.java b/src/test/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersServiceTest.java index 5f06f00..0b226de 100644 --- a/src/test/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersServiceTest.java +++ b/src/test/java/org/opendevstack/component_provisioner/server/services/ReplaceParametersServiceTest.java @@ -31,7 +31,7 @@ class ReplaceParametersServiceTest { private ReplaceParametersService replaceParametersService; private void initializeService(String paramsToOverride) { - replaceParametersService = new ReplaceParametersService(odsApiService, snakeCaseExtractor, paramsToOverride); + replaceParametersService = new ReplaceParametersService(odsApiService, snakeCaseExtractor, paramsToOverride, true); } @Test diff --git a/src/test/resources/application-testing.env b/src/test/resources/application-testing.env index 0506895..f8e6a2e 100644 --- a/src/test/resources/application-testing.env +++ b/src/test/resources/application-testing.env @@ -21,6 +21,7 @@ PROJECTS_INFO_SERVICE_BASE_REST_URL="https://projects-info-service-devstack-dev. CACHING_PROJECTS_INFO_SERVICE_CACHE_EVICTION_INTERVAL=5s CACHING_PROJECTS_INFO_SERVICE_CACHE_MAX_SIZE=100MB +ODS_API_SERVICE_ENABLED=true ODS_API_SERVICE_SERVICE_PARAMS_OVERRIDE="project_flavour" ODS_API_SERVICE_SERVICE_BASE_REST_URL="https://www.example.com/v1" ODS_API_SERVICE_SERVICE_PARAMS_CLIENT_ID="client-id"