49 lines
1.1 KiB
49 lines
1.1 KiB
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
importcreds () {
|
|
local CREDS=$1
|
|
local PERMS=${2:-0600}
|
|
|
|
if [ -z "${CREDS}" ]; then
|
|
echo "Error: missing mandatory file name to read" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "${CREDS}" ]; then
|
|
return
|
|
fi
|
|
|
|
if [ ! -r "${CREDS}" ]; then
|
|
echo "Error: cannot read ${CREDS}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "${CREDS} present, checking perms"
|
|
if stat "${CREDS}" | grep -q "Access: (${PERMS}" 1>/dev/null ; then
|
|
echo "${CREDS} permissions ok"
|
|
. "${CREDS}"
|
|
else
|
|
echo "Error: ${CREDS} must have permissions ${PERMS}" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
validateurl() {
|
|
local URL=$1
|
|
|
|
# If we are using the legacy credentials, stop any validation.
|
|
if [ -z "${APIREALM}" ]; then
|
|
return
|
|
fi
|
|
|
|
local NGCP_API_HOST
|
|
NGCP_API_HOST="$(getent hosts "${NGCP_API_IP}" | awk '{ print $2 }')"
|
|
if ! [[ "${URL}" =~ ^https://${NGCP_API_IP}:${NGCP_API_PORT} ]] &&
|
|
! [[ "${URL}" =~ ^https://${NGCP_API_HOST}:${NGCP_API_PORT} ]]; then
|
|
echo "Error: specified URL does not match expected URL for API credentials (https://${NGCP_API_IP}:${NGCP_API_PORT}/)" >&2
|
|
exit 1
|
|
fi
|
|
}
|