diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index c6e047f83..a13d9fb20 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -57,6 +57,41 @@ def is_version_maintained(version): return False +_SAP_HANA_CLIENT_DEPENDENCY = "sap.hana.client" + + +def _is_sap_hana_client_enabled(): + return bool(os.environ.get("SAP_HANA_CLIENT_ENABLED", "").strip()) + + +def stage_hana_client(buildpack_dir, build_dir, cache_dir): + if not _is_sap_hana_client_enabled(): + return + + try: + dest = os.path.join(build_dir, "model", "lib", "userlib") + util.mkdir_p(dest) + dep = util.get_dependency(_SAP_HANA_CLIENT_DEPENDENCY, buildpack_dir=buildpack_dir) + jar_name = "ngdbc-{}.jar".format(dep["version"]) + util.resolve_dependency( + _SAP_HANA_CLIENT_DEPENDENCY, + dest, + buildpack_dir=buildpack_dir, + cache_dir=cache_dir, + unpack=False, + ) + logging.info( + "SAP HANA client JAR [%s] staged to [%s]", + jar_name, + dest, + ) + except Exception: + logging.warning( + "Failed to stage SAP HANA client JAR, continuing deployment...", + exc_info=True, + ) + + def stage(buildpack_dir, build_path, cache_path): logging.debug("Creating directory structure for Mendix runtime...") for name in ["runtimes", "log", "database", "data", "bin"]: diff --git a/buildpack/stage.py b/buildpack/stage.py index 2f37be179..34147a5c2 100755 --- a/buildpack/stage.py +++ b/buildpack/stage.py @@ -217,6 +217,7 @@ def cleanup_dependency_cache(cached_dir, dependency_list): metering.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) database.stage(BUILDPACK_DIR, BUILD_DIR) runtime.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) + runtime.stage_hana_client(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) logs.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) nginx.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) logging.info("Mendix Cloud Foundry Buildpack staging completed") diff --git a/dependencies.yml b/dependencies.yml index 2fb38101f..ad2c21200 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -88,6 +88,11 @@ dependencies: commit: 5fed98f8 fs: cflinuxfs4 version: 3.2.2 + sap: + hana: + client: + artifact: "sap-hana-client/ngdbc-{{ version }}.jar" + version: "2.29.11" telegraf: agent: artifact: telegraf/telegraf-{{ version }}_linux_amd64.tar.gz