summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorJan Benedikt <j.benedikt@partner.samsung.com>2019-10-08 10:01:41 -0400
committerJan Benedikt <j.benedikt@partner.samsung.com>2019-10-15 03:32:41 -0400
commit7c0f6b14776fdb1a440309a82d0025383ad14b95 (patch)
treec90f29afd48b77a52b780afa09212c656818253c /build
parente052270b90435346a934f016bc8b8974f0b94201 (diff)
Adding platform independent RPM download
Updated onap_rpm.list with new versions of packages. Added scripts for creating centos container in docker with rpm repository. RPM repo is now created in centos container during download phase, but will work on both centos/rhel platforms. Issue-ID: OOM-2094 Signed-off-by: Jan Benedikt <j.benedikt@partner.samsung.com> Change-Id: I1b5bfe99da25e6815e85b449304b12fa6036c6b3
Diffstat (limited to 'build')
-rwxr-xr-xbuild/create_repo.sh65
-rwxr-xr-xbuild/docker-entrypoint.sh84
-rwxr-xr-xbuild/package.py4
3 files changed, 149 insertions, 4 deletions
diff --git a/build/create_repo.sh b/build/create_repo.sh
new file mode 100755
index 00000000..8e12a16e
--- /dev/null
+++ b/build/create_repo.sh
@@ -0,0 +1,65 @@
+#!/usr/bin/env bash
+
+container_name="centos_repo"
+# Path to folder with clonned offline-installer build directory with docker_entrypoint script
+volume_directory="."
+# Path inside container
+container_volume="/mnt/"
+# Docker image name and version
+docker_image="centos:centos7.6.1810"
+
+# Getting input parametters
+POSITIONAL=()
+while [[ $# -gt 0 ]]
+do
+ key="$1"
+ case $key in
+ -h|--help)
+ # Help parametter
+ echo -e "Script for run docker container with RPM repository\n"
+ echo "-h --help: Show this help"
+ echo -e "-d --directory: set root path with offline-installer directory and repository directory for RPM packages\n"
+ echo "If build folder from offline repository is not specified will be used default path of current folder."
+ shift # past argument
+ shift # past value
+ exit
+ ;;
+ -d|--directory)
+ # Directory parametter
+ # Sets path where is clonned offline-installer build directory
+ volume_directory="$2"
+ shift # past argument
+ shift # past value
+ ;;
+ --default)
+ DEFAULT=YES
+ shift # past argument
+ ;;
+ *)
+ # unknown option
+ POSITIONAL+=("$1") # save it in an array for later
+ shift # past argument
+ ;;
+ esac
+done
+
+
+#Check if container "centos-repo" is running
+if [ ! "$(docker ps -q -f name=$container_name)" ]; then
+ if [ "$(docker ps -aq -f status=exited -f name=$container_name)" ]; then
+ # cleanup
+ docker rm $container_name
+ fi
+ # run repo container
+ # name of container $container_name
+ # docker entrypoint script from mounted volume
+ #
+ docker run -d \
+ --name $container_name \
+ -v ${volume_directory}:${container_volume} \
+ --entrypoint="${container_volume}offline-installer/build/docker-entrypoint.sh" \
+ -it ${docker_image} \
+ --rm \
+ --directory ${container_volume}resources/pkg/rhel/ \
+ --list ${container_volume}offline-installer/build/data_lists/
+fi
diff --git a/build/docker-entrypoint.sh b/build/docker-entrypoint.sh
new file mode 100755
index 00000000..798e1f0b
--- /dev/null
+++ b/build/docker-entrypoint.sh
@@ -0,0 +1,84 @@
+#!/usr/bin/env bash
+
+# Path where will be created repository (in container)
+OOM_REPO_DIR=""
+
+# Path where is stored onap_rpm.list file
+RPM_LIST_DIR=""
+
+# Getting input parametters
+POSITIONAL=()
+while [[ $# -gt 0 ]]
+do
+ key="$1"
+ case $key in
+ -h|--help)
+ # Help parametter
+ echo -e "Docker entrypoint script for creating RPM repository\n"
+ echo "-h --help: Show this help"
+ echo "-d --directory: set path for repo directory in container"
+ echo -e "-l --list: set path where rpm list is stored in container\n"
+ echo "Both paths have to be set with shared volume between"
+ echo "container and host computer. Default path in container is: /tmp/"
+ echo "Repository will be created at: /<path>/resources/pkg/rhel/"
+ echo "RMP list is stored at: /<path>/offline-installer/build/data_list/"
+ shift # past argument
+ shift # past value
+ exit
+ ;;
+ -d|--directory)
+ # Directory parametter
+ # Sets path where will be created reposity
+ OOM_REPO_DIR="$2"
+ shift # past argument
+ shift # past value
+ ;;
+ -l|--list)
+ # List parametter
+ # Sets path where is stored onap_rpm.list file
+ RPM_LIST_DIR="$2"
+ shift # past argument
+ shift # past value
+ ;;
+ --default)
+ DEFAULT=YES
+ shift # past argument
+ ;;
+ *)
+ # unknown option
+ POSITIONAL+=("$1") # save it in an array for later
+ shift # past argument
+ ;;
+ esac
+done
+
+# Testing if directory parametter was used
+# If not variable is sets to default value /tmp/resources/pkg/rhel
+if test -z "$OOM_REPO_DIR"
+then
+ OOM_REPO_DIR="/tmp/resources/pkg/rhel"
+fi
+
+# Testing if list parametter was used
+# If not variable is sets to default value /tmp/data-list
+if test -z "$RPM_LIST_DIR"
+then
+ RPM_LIST_DIR="/tmp/offline-installer/build/data_list/"
+
+fi
+
+# Create repo folder
+mkdir $OOM_REPO_DIR -p
+
+# Install createrepo package for create repository in folder
+# and yum-utils due to yum-config-manager for adding docker repository
+yum install createrepo yum-utils -y
+
+# Add official docker repository
+yum-config-manager --add-repo=https://download.docker.com/linux/centos/7/x86_64/stable/
+
+# Download all packages from onap_rpm.list via yumdownloader to repository folder
+for i in $(cat ${RPM_LIST_DIR}onap_rpm.list | awk '{print $1}');do yumdownloader --resolve --downloadonly --destdir=${OOM_REPO_DIR} $i -y; done
+
+# In repository folder create repository
+createrepo $OOM_REPO_DIR
diff --git a/build/package.py b/build/package.py
index d30b40c1..ad921ed3 100755
--- a/build/package.py
+++ b/build/package.py
@@ -210,10 +210,6 @@ def build_offline_deliverables(build_version,
os.chdir(script_location)
# End of workaround
- log.info('Create rhel repo')
- createrepo = subprocess.run(['createrepo', os.path.join(resources_directory, 'pkg', 'rhel')])
- createrepo.check_returncode()
-
resources_package_tar_path = os.path.join(output_dir, 'resources_package' + build_version + '.tar')
create_package(resources_content, resources_package_tar_path)