summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kasanic <d.kasanic@partner.samsung.com>2019-11-14 10:43:56 +0100
committerDenis Kasanic <d.kasanic@partner.samsung.com>2019-11-14 10:44:49 +0100
commit32ecaaea0b766fb690f2e949af1ccc2323b1d871 (patch)
treea592b88c0f868c6f7d43f6edc93df41407f25865
parent1ed2b6fce2c08867c55786fc4aeebe983f312b4c (diff)
Fix relative path in package.py
Issue-ID: OOM-1994 Signed-off-by: Denis Kasanic <d.kasanic@partner.samsung.com> Change-Id: Ie8bbe23c90a4c2d1fd60d3fad36fcd8f741e6f63
-rwxr-xr-xbuild/package.py27
1 files 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='')