From 32ecaaea0b766fb690f2e949af1ccc2323b1d871 Mon Sep 17 00:00:00 2001 From: Denis Kasanic Date: Thu, 14 Nov 2019 10:43:56 +0100 Subject: Fix relative path in package.py Issue-ID: OOM-1994 Signed-off-by: Denis Kasanic Change-Id: Ie8bbe23c90a4c2d1fd60d3fad36fcd8f741e6f63 --- build/package.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/build/package.py b/build/package.py index ad921ed3..47f78b87 100755 --- a/build/package.py +++ b/build/package.py @@ -33,7 +33,8 @@ import tarfile import git log = logging.getLogger(__name__) -script_location = os.path.dirname(os.path.realpath(__file__)) +script_location = os.path.abspath(os.path.join(__file__, '..')) +offline_repository_dir = os.path.abspath(os.path.join(script_location, '..')) def prepare_application_repository(directory, url, refspec, patch_path): @@ -73,6 +74,7 @@ def create_package_info_file(output_file, repository_list, tag): Generates text file in json format containing basic information about the build :param output_file: :param repository_list: list of repositories to be included in package info + :param tag: build version of packages :return: """ log.info('Generating package.info file') @@ -100,7 +102,7 @@ def create_package(tar_content, file_name): with tarfile.open(file_name, 'w') as output_tar_file: for src, dst in tar_content.items(): if src != '': - output_tar_file.add(src, dst) + output_tar_file.add(src, dst) def build_offline_deliverables(build_version, @@ -139,11 +141,10 @@ def build_offline_deliverables(build_version, if os.path.exists(output_dir) and os.listdir(output_dir): if not overwrite: log.error('Output directory is not empty, use overwrite to force build') - raise FileExistsError + raise FileExistsError(output_dir) shutil.rmtree(output_dir) # Git - offline_repository_dir = os.path.join(script_location, '..') offline_repository = git.Repo(offline_repository_dir) application_dir = os.path.join(output_dir, 'application_repository') @@ -173,6 +174,9 @@ def build_offline_deliverables(build_version, info_file: 'package.info' } + # add separator if build version not empty + build_version = "-" + build_version if build_version != "" else "" + if not skip_sw: log.info('Building offline installer') os.chdir(os.path.join(offline_repository_dir, 'ansible', 'docker')) @@ -194,7 +198,7 @@ def build_offline_deliverables(build_version, log.info('Binaries - workaround') download_dir_path = os.path.join(resources_directory, 'downloads') os.chdir(download_dir_path) - for file in os.listdir(): + for file in os.listdir(download_dir_path): if os.path.islink(file): os.unlink(file) @@ -214,7 +218,7 @@ def build_offline_deliverables(build_version, create_package(resources_content, resources_package_tar_path) if not skip_aux: - aux_package_tar_path = os.path.join(output_dir, 'aux_package'+ build_version + '.tar') + aux_package_tar_path = os.path.join(output_dir, 'aux_package' + build_version + '.tar') create_package(aux_content, aux_package_tar_path) shutil.rmtree(application_dir) @@ -226,7 +230,7 @@ def run_cli(): """ parser = argparse.ArgumentParser(description='Create Package For Offline Installer') parser.add_argument('--build-version', - help='version of the build', default='custom') + help='version of the build', default='') parser.add_argument('application_repository_url', metavar='application-repository-url', help='git repository hosting application helm charts') parser.add_argument('--application-repository_reference', default='master', @@ -234,16 +238,17 @@ def run_cli(): parser.add_argument('--application-patch_file', help='git patch file to be applied over application repository', default='') parser.add_argument('--application-charts_dir', - help='path to directory under application repository containing helm charts ', default='kubernetes') + help='path to directory under application repository containing helm charts ', + default='kubernetes') parser.add_argument('--application-configuration', help='path to application configuration file (helm override configuration)', - default='') + default=os.path.join(offline_repository_dir, 'config/application_configuration.yml')) parser.add_argument('--application-patch-role', help='path to application patch role file (ansible role) to be executed right before installation', default='') - parser.add_argument('--output-dir', '-o', default=os.path.join(script_location, '..', '..'), + parser.add_argument('--output-dir', '-o', default=os.path.join(offline_repository_dir, '../packages'), help='Destination directory for saving packages') - parser.add_argument('--resources-directory', default='', + parser.add_argument('--resources-directory', default=os.path.join(offline_repository_dir, '../resources'), help='Path to resource directory') parser.add_argument('--aux-directory', help='Path to aux binary directory', default='') -- cgit 1.2.3-korg