Add handling with offline data 63/74963/1
authorTomáš Levora <t.levora@partner.samsung.com>
Thu, 20 Dec 2018 08:48:44 +0000 (09:48 +0100)
committerTomáš Levora <t.levora@partner.samsung.com>
Thu, 20 Dec 2018 08:50:08 +0000 (09:50 +0100)
Adding handling scripts for download and load offline data for bash
installer

Issue-ID: OOM-1551

Change-Id: I59feea8396841cb660463524f58ec65c626e69a6
Signed-off-by: Tomáš Levora <t.levora@partner.samsung.com>
bash/tools/download_offline_data_by_lists.sh [new file with mode: 0755]
bash/tools/load_stored_offline_data.sh [new file with mode: 0755]

diff --git a/bash/tools/download_offline_data_by_lists.sh b/bash/tools/download_offline_data_by_lists.sh
new file mode 100755 (executable)
index 0000000..24cd578
--- /dev/null
@@ -0,0 +1,80 @@
+#! /usr/bin/env bash
+
+#   COPYRIGHT NOTICE STARTS HERE
+#
+#   Copyright 2018 © Samsung Electronics Co., Ltd.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#   COPYRIGHT NOTICE ENDS HERE
+
+
+# fail fast
+set -e
+
+# boilerplate
+RELATIVE_PATH=./ # relative path from this script to 'common-functions.sh'
+if [ "$IS_COMMON_FUNCTIONS_SOURCED" != YES ] ; then
+    SCRIPT_DIR=$(dirname "${0}")
+    LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
+    . "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh
+fi
+
+CTOOLS="${LOCAL_PATH}/creating_data"
+LISTS_DIR="${LOCAL_PATH}/data_list"
+DATA_DIR="${LOCAL_PATH}/../../resources"
+TOTAL=12
+CURR=1
+
+message info "Downloading started: $(date)"
+
+echo "[Step $((CURR++))/$TOTAL Download collected docker images]"
+$CTOOLS/download-docker-images.sh "$LISTS_DIR/docker_image_list.txt"
+
+echo "[Step $((CURR++))/$TOTAL Download manually collected docker images]"
+$CTOOLS/download-docker-images.sh "$LISTS_DIR/docker_manual_image_list.txt"
+
+echo "[Step $((CURR++))/$TOTAL Build own nginx image]"
+$CTOOLS/create_nginx_image/01create-image.sh
+
+echo "[Step $((CURR++))/$TOTAL Save docker images from docker cache to tarfiles]"
+$CTOOLS/save-docker-images.sh "$DATA_DIR/offline_data/docker_images_for_nexus"
+
+echo "[Step $((CURR++))/$TOTAL move infra related images to infra folder]"
+mkdir -p "$DATA_DIR/offline_data/docker_images_infra"
+mv "$DATA_DIR/offline_data/docker_images_for_nexus/own_nginx_latest.tar" "$DATA_DIR/offline_data/docker_images_infra"
+mv "$DATA_DIR/offline_data/docker_images_for_nexus/sonatype_nexus3_latest.tar" "$DATA_DIR/offline_data/docker_images_infra"
+
+echo "[Step $((CURR++))/$TOTAL Download git repos]"
+$CTOOLS/download-git-repos.sh "$LISTS_DIR" "$DATA_DIR/git-repo"
+
+echo "[Step $((CURR++))/$TOTAL Download http files]"
+$CTOOLS/download-http-files.sh "$LISTS_DIR/http_manual_list.txt" "$DATA_DIR/http"
+
+echo "[Step $((CURR++))/$TOTAL Download npm pkgs]"
+$CTOOLS/download-npm-pkgs.sh "$LISTS_DIR/npm_list.txt" "$DATA_DIR/offline_data/npm_tar"
+
+echo "[Step $((CURR++))/$TOTAL Download bin tools]"
+$CTOOLS/download-bin-tools.sh "$DATA_DIR/downloads"
+
+echo "[Step $((CURR++))/$TOTAL Download rhel pkgs]"
+$CTOOLS/download-pkg.sh "$DATA_DIR/pkg/rhel"
+
+echo "[Step $((CURR++))/$TOTAL Download oom]"
+$CTOOLS/download-oom.sh "$DATA_DIR" "${LOCAL_PATH}/../../patches/offline-changes.patch"
+
+echo "[Step $((CURR++))/$TOTAL Download sdnc-ansible-server packages]"
+$CTOOLS/download-pip.sh "$LISTS_DIR/pip_list.txt" "$DATA_DIR/pkg/ubuntu/ansible_pkg"
+$CTOOLS/download-files.sh "$LISTS_DIR/pkg_list.txt" "$DATA_DIR/pkg/ubuntu/ansible_pkg"
+
+message info "Downloading finished: $(date)"
diff --git a/bash/tools/load_stored_offline_data.sh b/bash/tools/load_stored_offline_data.sh
new file mode 100755 (executable)
index 0000000..c04e989
--- /dev/null
@@ -0,0 +1,87 @@
+#! /usr/bin/env bash
+
+#   COPYRIGHT NOTICE STARTS HERE
+#
+#   Copyright 2018 © Samsung Electronics Co., Ltd.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+#
+#   COPYRIGHT NOTICE ENDS HERE
+
+
+# boilerplate
+RELATIVE_PATH=./ # relative path from this script to 'common-functions.sh'
+if [ "$IS_COMMON_FUNCTIONS_SOURCED" != YES ] ; then
+    SCRIPT_DIR=$(dirname "${0}")
+    LOCAL_PATH=$(readlink -f "$SCRIPT_DIR")
+    . "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh
+fi
+
+tools="${LOCAL_PATH}"
+message info "Reading configuration"
+get_configuration
+
+CTOOLS="$tools/creating_data"
+LISTS_DIR="$tools/data_list"
+DATA_DIR="$tools/../../resources/offline_data"
+export NEXUS_HOST="https://$NEXUS_FQDN"
+NPM_REGISTRY="$NEXUS_HOST/repository/npm-private/"
+
+TOTAL=5
+CURR=1
+
+message info "Loading started: $(date)"
+
+# backup config.json before we change it in docker-login
+# however no use for restoring it found
+mv ~/.docker/config.json ~/.docker/config.json_backup 2>/dev/null
+
+echo "[Step $((CURR++))/$TOTAL Setting-up docker login for inserting docker images]"
+$CTOOLS/docker-login.sh
+
+echo "[Step $((CURR++))/$TOTAL Inserting docker images into local nexus]"
+$CTOOLS/load-docker-images.sh "$DATA_DIR/docker_images_for_nexus"
+
+echo "[Step $((CURR++))/$TOTAL Setting-up npm for inserting npm pkgs into local nexus]"
+
+npm config set registry $NPM_REGISTRY
+
+/usr/bin/expect <<EOF
+spawn npm login
+expect "Username:"
+send "${NPM_USERNAME}\n"
+expect "Password:"
+send "${NPM_PASSWORD}\n"
+expect Email:
+send "${NPM_EMAIL}\n"
+expect eof
+EOF
+
+echo "[WA] for tss package - this package uses already specified repo and dont accept our simulated domain"
+
+cd $DATA_DIR/npm_tar
+tar xvzf tsscmp-1.0.5.tgz
+rm -f tsscmp-1.0.5.tgz
+sed -i "s|https://registry.npmjs.org|${NPM_REGISTRY}|g" package/package.json
+tar -zcvf tsscmp-1.0.5.tgz package
+rm -rf package
+cd -
+
+echo "[Step $((CURR++))/$TOTAL Inserting npm packages into local nexus]"
+$CTOOLS/upload-npm-pkgs.sh "$LISTS_DIR/npm_list.txt" "$DATA_DIR/npm_tar" "$NEXUS_HOST"
+
+# onap is using different credentials for docker login which can be conflicted
+# with ours so better to clean this-up
+rm ~/.docker/config.json
+
+message info "Loading finished: $(date)"