mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 15:35:09 +00:00
Signed-off-by: AadithyanRaju <aadithyan75@gmail.com> Signed-off-by: Aadithyan Raju <93834376+AadithyanRaju@users.noreply.github.com>
158 lines
3.7 KiB
Bash
158 lines
3.7 KiB
Bash
#!/usr/bin/env bash
|
||
#
|
||
# Copyright contributors to the Hyperledger Fabric Operator project
|
||
#
|
||
# SPDX-License-Identifier: Apache-2.0
|
||
#
|
||
# 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.
|
||
#
|
||
|
||
|
||
function logging_init() {
|
||
# Reset the output and debug log files
|
||
printf '' > ${LOG_FILE} > ${DEBUG_FILE}
|
||
|
||
# Write all output to the control flow log to STDOUT
|
||
tail -f ${LOG_FILE} &
|
||
|
||
# Call the exit handler when we exit.
|
||
trap "exit_fn" EXIT
|
||
|
||
# Send stdout and stderr from child programs to the debug log file
|
||
exec 1>>${DEBUG_FILE} 2>>${DEBUG_FILE}
|
||
|
||
# There can be a race between the tail starting and the next log statement
|
||
sleep 0.5
|
||
}
|
||
|
||
function exit_fn() {
|
||
rc=$?
|
||
set +x
|
||
|
||
# Write an error icon to the current logging statement.
|
||
if [ "0" -ne $rc ]; then
|
||
pop_fn $rc
|
||
fi
|
||
|
||
# always remove the log trailer when the process exits.
|
||
pkill -P $$
|
||
}
|
||
|
||
function push_fn() {
|
||
#echo -ne " - entering ${FUNCNAME[1]} with arguments $@"
|
||
|
||
echo -ne " - $@ ..." >> ${LOG_FILE}
|
||
}
|
||
|
||
function log() {
|
||
echo -e $@ >> ${LOG_FILE}
|
||
}
|
||
|
||
function pop_fn() {
|
||
# echo exiting ${FUNCNAME[1]}
|
||
|
||
if [ $# -eq 0 ]; then
|
||
echo -ne "\r✅" >> ${LOG_FILE}
|
||
echo "" >> ${LOG_FILE}
|
||
return
|
||
fi
|
||
|
||
local res=$1
|
||
if [ $res -eq 0 ]; then
|
||
echo -ne "\r✅\n" >> ${LOG_FILE}
|
||
|
||
elif [ $res -eq 1 ]; then
|
||
echo -ne "\r⚠️\n" >> ${LOG_FILE}
|
||
|
||
elif [ $res -eq 2 ]; then
|
||
echo -ne "\r☠️\n" >> ${LOG_FILE}
|
||
|
||
elif [ $res -eq 127 ]; then
|
||
echo -ne "\r☠️\n" >> ${LOG_FILE}
|
||
|
||
else
|
||
echo -ne "\r\n" >> ${LOG_FILE}
|
||
fi
|
||
|
||
if [ $res -ne 0 ]; then
|
||
tail -${LOG_ERROR_LINES} network-debug.log >> ${LOG_FILE}
|
||
fi
|
||
|
||
#echo "" >> ${LOG_FILE}
|
||
}
|
||
|
||
function wait_for_deployment() {
|
||
local name=$1
|
||
push_fn "Waiting for deployment $name"
|
||
|
||
kubectl -n $NS rollout status deploy $name
|
||
|
||
pop_fn
|
||
}
|
||
|
||
function absolute_path() {
|
||
local relative_path=$1
|
||
|
||
local abspath="$( cd "${relative_path}" && pwd )"
|
||
|
||
echo $abspath
|
||
}
|
||
|
||
function apply_kustomization() {
|
||
$KUSTOMIZE_BUILD $1 | envsubst | kubectl -n $NS apply -f -
|
||
}
|
||
|
||
function undo_kustomization() {
|
||
$KUSTOMIZE_BUILD $1 | envsubst | kubectl -n $NS delete --ignore-not-found=true -f -
|
||
}
|
||
|
||
function create_image_pull_secret() {
|
||
local secret=$1
|
||
local registry=$2
|
||
local username=$3
|
||
local password=$4
|
||
|
||
push_fn "Creating $secret for access to $registry"
|
||
|
||
kubectl -n $NS delete secret $secret --ignore-not-found
|
||
|
||
# todo: can this be moved to a kustomization overlay?
|
||
kubectl -n $NS \
|
||
create secret docker-registry \
|
||
$secret \
|
||
--docker-server="$registry" \
|
||
--docker-username="$username" \
|
||
--docker-password="$password"
|
||
|
||
pop_fn
|
||
}
|
||
|
||
function export_peer_context() {
|
||
local orgnum=$1
|
||
local peernum=$2
|
||
local org=org${orgnum}
|
||
local peer=peer${peernum}
|
||
|
||
# export FABRIC_LOGGING_SPEC=DEBUG
|
||
|
||
export FABRIC_CFG_PATH=${PWD}/config
|
||
export CORE_PEER_ADDRESS=${NS}-${org}-${peer}-peer.${INGRESS_DOMAIN}:443
|
||
export CORE_PEER_LOCALMSPID=Org${orgnum}MSP
|
||
export CORE_PEER_TLS_ENABLED=true
|
||
export CORE_PEER_MSPCONFIGPATH=${TEMP_DIR}/enrollments/${org}/users/${org}admin/msp
|
||
export CORE_PEER_TLS_ROOTCERT_FILE=${TEMP_DIR}/channel-msp/peerOrganizations/${org}/msp/tlscacerts/tlsca-signcert.pem
|
||
export CORE_PEER_CLIENT_CONNTIMEOUT=15s
|
||
export CORE_PEER_DELIVERYCLIENT_CONNTIMEOUT=15s
|
||
|
||
# export | egrep "CORE_|FABRIC_"
|
||
}
|