fabric-samples/full-stack-asset-transfer-guide/infrastructure/sample-network/scripts/utils.sh
Aadithyan Raju b82a309d91
NixOS support (Multi-Linux Distro Support) (#1310)
Signed-off-by: AadithyanRaju <aadithyan75@gmail.com>
Signed-off-by: Aadithyan Raju <93834376+AadithyanRaju@users.noreply.github.com>
2025-03-24 19:15:58 +00:00

158 lines
3.7 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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_"
}