diff --git a/tools/cloudharness_utilities/openapi.py b/tools/cloudharness_utilities/openapi.py index 42bf3d8d..1630c568 100644 --- a/tools/cloudharness_utilities/openapi.py +++ b/tools/cloudharness_utilities/openapi.py @@ -20,7 +20,7 @@ OPENAPI_GEN_URL = 'https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.4.0/openapi-generator-cli-5.4.0.jar' -def generate_server(app_path): +def generate_server(app_path, overrides_folder): get_dependencies() openapi_dir = os.path.join(app_path, 'api') openapi_file = glob.glob(os.path.join(openapi_dir, '*.yaml'))[0] @@ -28,7 +28,7 @@ def generate_server(app_path): f"{app_path}/server") else f"server" out_path = f"{app_path}/{out_name}" command = f"java -jar {CODEGEN} generate -i {openapi_file} -g python-flask -o {out_path} " \ - f"-c {openapi_dir}/config.json -t {os.path.join(HERE, APPLICATION_TEMPLATE_PATH, 'server')}" + f"-c {openapi_dir}/config.json -t {overrides_folder}" os.system(command) diff --git a/tools/harness-application b/tools/harness-application index 68e34962..1d9579be 100644 --- a/tools/harness-application +++ b/tools/harness-application @@ -4,13 +4,14 @@ import sys import os import shutil import re +import tempfile from cloudharness_utilities import HERE from cloudharness_utilities.constants import APPLICATION_TEMPLATE_PATH import cloudharness_utilities.openapi from cloudharness_utilities.openapi import generate_server, APPLICATIONS_SRC_PATH, generate_ts_client from cloudharness_utilities.utils import merge_configuration_directories, replaceindir, replace_in_file, \ - to_python_module + to_python_module, copymergedir # Only allow lowercased alphabetical characters separated by "-". name_pattern = re.compile("[a-z]+((-)?[a-z])?") @@ -54,8 +55,12 @@ if __name__ == "__main__": app_path = os.path.join(APPLICATIONS_SRC_PATH, args.name) for template_name in args.templates: + if template_name == 'server': - generate_server(app_path) + with tempfile.TemporaryDirectory() as tmp_dirname: + copymergedir(os.path.join(HERE, APPLICATION_TEMPLATE_PATH, template_name), tmp_dirname) + merge_configuration_directories(app_path, tmp_dirname) + generate_server(app_path, tmp_dirname) for base_path in (HERE, os.getcwd()): template_path = os.path.join(base_path, APPLICATION_TEMPLATE_PATH, template_name)