Skip to content
Permalink
5.16.0
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
@mchyzer
Latest commit c795cad Jun 25, 2024 History
1 contributor

Users who have contributed to this file

449 lines (382 sloc) 18.1 KB
#!/bin/bash
prep_openshift() {
if [ "$GROUPER_OPENSHIFT" == 'true' ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_openshift) GROUPER_OPENSHIFT is true"
if [ -z "$GROUPER_CHOWN_DIRS" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_openshift) export GROUPER_CHOWN_DIRS=false"
export GROUPER_CHOWN_DIRS=false
fi
if [ -z "$GROUPER_GSH_CHECK_USER" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_openshift) export GROUPER_GSH_CHECK_USER=false"
export GROUPER_GSH_CHECK_USER=false
fi
if [ -z "$GROUPER_RUN_PROCESSES_AS_USERS" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_openshift) export GROUPER_RUN_PROCESSES_AS_USERS=false"
export GROUPER_RUN_PROCESSES_AS_USERS=false
fi
fi
}
prep_quickstart() {
if [ -z "$GROUPER_SELF_SIGNED_CERT" ] && [ "$GROUPER_OPENSHIFT" != "true" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_quickstart) export GROUPER_SELF_SIGNED_CERT=true"
export GROUPER_SELF_SIGNED_CERT=true
fi
if [ -z "$GROUPER_START_DELAY_SECONDS" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_quickstart) export GROUPER_START_DELAY_SECONDS='10'"
export GROUPER_START_DELAY_SECONDS='10'
fi
if [ -z "$GROUPER_AUTO_DDL_UPTOVERSION" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_quickstart) export GROUPER_AUTO_DDL_UPTOVERSION='v5.*.*'"
export GROUPER_AUTO_DDL_UPTOVERSION='v5.*.*'
fi
if [ -z "$GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_quickstart) export GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES='0.0.0.0/0'"
export GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES='0.0.0.0/0'
fi
# wait for database to start
if [ -z "$GROUPER_UI_GROUPER_AUTH" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_quickstart) export GROUPER_UI_GROUPER_AUTH='true'"
export GROUPER_UI_GROUPER_AUTH='true'
fi
if [ -z "$GROUPER_WS_GROUPER_AUTH" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_quickstart) export GROUPER_WS_GROUPER_AUTH='true'"
export GROUPER_WS_GROUPER_AUTH='true'
fi
if [ -z "$GROUPER_QUICKSTART" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_quickstart) export GROUPER_QUICKSTART=true"
export GROUPER_QUICKSTART=true
fi
}
prep_daemon() {
if [ -z "$GROUPER_DAEMON" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_daemon) export GROUPER_DAEMON=true"
export GROUPER_DAEMON=true
fi
if [ -z "$GROUPER_RUN_TOMCAT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_daemon) export GROUPER_RUN_TOMCAT=true"
export GROUPER_RUN_TOMCAT=true
fi
}
prep_ui() {
if [ -z "$GROUPER_UI" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_ui) export GROUPER_UI=true"
export GROUPER_UI=true
fi
if [ -z "$GROUPER_RUN_TOMCAT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_ui) export GROUPER_RUN_TOMCAT=true"
export GROUPER_RUN_TOMCAT=true
fi
}
prep_ws() {
if [ -z "$GROUPER_WS" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_ws) export GROUPER_WS=true"
export GROUPER_WS=true
fi
if [ -z "$GROUPER_RUN_TOMCAT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_ws) export GROUPER_RUN_TOMCAT=true"
export GROUPER_RUN_TOMCAT=true
fi
}
prep_conf() {
# if we are stopping and starting, we just read the env vars and we done
if [ -f /opt/grouper/grouperEnv.sh ]
then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_conf) Loading env vars from /opt/grouper/grouperEnv.sh"
. /opt/grouper/grouperEnv.sh
return
fi
prep_initDeprecatedEnvVars
grouperScriptHooks_prepConfPost
}
prep_initDeprecatedEnvVars() {
if [ ! -z "$RUN_TOMCAT" ] && [ -z "$GROUPER_RUN_TOMCAT" ]
then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_initDeprecatedEnvVars) export GROUPER_RUN_TOMCAT=$RUN_TOMCAT"
export GROUPER_RUN_TOMCAT="$RUN_TOMCAT"
fi
if [ ! -z "$SELF_SIGNED_CERT" ] && [ -z "$GROUPER_SELF_SIGNED_CERT" ]
then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_initDeprecatedEnvVars) export GROUPER_SELF_SIGNED_CERT=$SELF_SIGNED_CERT"
export GROUPER_SELF_SIGNED_CERT="$SELF_SIGNED_CERT"
fi
}
prep_finishBegin() {
# default a lot of env variables
# morph defaults to null
# database password defaults to null
prep_openshift
if [ -z "$GROUPER_UI_GROUPER_AUTH" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_UI_GROUPER_AUTH=false"
export GROUPER_UI_GROUPER_AUTH=false
fi
if [ -z "$GROUPER_WS_GROUPER_AUTH" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_WS_GROUPER_AUTH=false"
export GROUPER_WS_GROUPER_AUTH=false
fi
if [ -z "$GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES='127.0.0.1/32'"
export GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES='127.0.0.1/32'
fi
# GROUPER_AUTO_DDL_UPTOVERSION defaults to null
# GROUPER_START_DELAY_SECONDS defaults to null
if [ -z "$GROUPER_UI" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) GROUPER_UI=false"
export GROUPER_UI=false
fi
if [ -z "$GROUPER_TOMCAT_UID" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) GROUPER_TOMCAT_UID=996"
export GROUPER_TOMCAT_UID=996
fi
if [ -z "$GROUPER_TOMCAT_GID" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) GROUPER_TOMCAT_GID=994"
export GROUPER_TOMCAT_GID=994
fi
if [ -z "$GROUPER_TOMCAT_UNIX_GROUP" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) GROUPER_TOMCAT_UNIX_GROUP=root"
export GROUPER_TOMCAT_UNIX_GROUP=root
fi
if [ -z "$GROUPER_WS" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_WS=false"
export GROUPER_WS=false
fi
if [ -z "$GROUPER_DAEMON" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_DAEMON=false"
export GROUPER_DAEMON=false
fi
if [ -z "$GROUPER_USE_SSL" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_USE_SSL=true"
export GROUPER_USE_SSL=true
fi
if [ "$GROUPER_USE_SSL" = "true" ]; then
if [ -z "$GROUPER_SELF_SIGNED_CERT" ] && [ -z "$GROUPER_SSL_CERT_FILE" ] && [ ! -f /etc/pki/tls/certs/host-cert.pem ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) GROUPER_SELF_SIGNED_CERT and GROUPER_SSL_CERT_FILE are not specified and /etc/pki/tls/certs/host-cert.pem does not exist, so: export GROUPER_SELF_SIGNED_CERT=true"
export GROUPER_SELF_SIGNED_CERT=true
fi
if [ "$GROUPER_SELF_SIGNED_CERT" = "true" ]; then
# default the cert path to self signed and no chain file
if [ -z "$GROUPER_SSL_CERT_FILE" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_CERT_FILE=/opt/container_files/certs/client/localhost.pem"
export GROUPER_SSL_CERT_FILE=/opt/container_files/certs/client/localhost.pem
fi
if [ -z "$GROUPER_SSL_KEY_FILE" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_KEY_FILE=/opt/container_files/certs/keys/localhost.key"
export GROUPER_SSL_KEY_FILE=/opt/container_files/certs/keys/localhost.key
fi
if [ -z "$GROUPER_SSL_CHAIN_FILE" ] && [ -z "$GROUPER_SSL_USE_CHAIN_FILE" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_USE_CHAIN_FILE=false"
export GROUPER_SSL_USE_CHAIN_FILE=false
fi
fi
# default the cert path
if [ -z "$GROUPER_SSL_CERT_FILE" ] && [ -f /etc/pki/tls/certs/host-cert.pem ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_CERT_FILE=/etc/pki/tls/certs/host-cert.pem"
export GROUPER_SSL_CERT_FILE=/etc/pki/tls/certs/host-cert.pem
fi
if [ -z "$GROUPER_SSL_KEY_FILE" ] && [ -f /etc/pki/tls/private/host-key.pem ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_KEY_FILE=/etc/pki/tls/private/host-key.pem"
export GROUPER_SSL_KEY_FILE=/etc/pki/tls/private/host-key.pem
fi
if [ -z "$GROUPER_SSL_CHAIN_FILE" ] ; then
if [ -f /etc/pki/tls/certs/cachain.pem ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_USE_CHAIN_FILE=true"
export GROUPER_SSL_USE_CHAIN_FILE=true
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_CHAIN_FILE=/etc/pki/tls/certs/cachain.pem"
export GROUPER_SSL_CHAIN_FILE=/etc/pki/tls/certs/cachain.pem
else
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_USE_CHAIN_FILE=false"
export GROUPER_SSL_USE_CHAIN_FILE=false
fi
fi
if [ -z "$GROUPER_SSL_USE_CHAIN_FILE" ] ; then
if [ -z "$GROUPER_SSL_CHAIN_FILE" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_USE_CHAIN_FILE=false"
export GROUPER_SSL_USE_CHAIN_FILE=false
else
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SSL_USE_CHAIN_FILE=true"
export GROUPER_SSL_USE_CHAIN_FILE=true
fi
fi
fi
if [ -z "$GROUPER_WEBCLIENT_IS_SSL" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_WEBCLIENT_IS_SSL=true (browser or WS client is SSL)"
export GROUPER_WEBCLIENT_IS_SSL=true
fi
if [ -z "$GROUPER_RUN_PROCESSES_AS_USERS" ]; then
if [[ $EUID -eq 0 ]]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) running as root: export GROUPER_RUN_PROCESSES_AS_USERS=true"
export GROUPER_RUN_PROCESSES_AS_USERS=true
else
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) not running as root: export GROUPER_RUN_PROCESSES_AS_USERS=false"
export GROUPER_RUN_PROCESSES_AS_USERS=false
fi
fi
# do these before the "only" component
if [ -z "$GROUPER_URL_CONTEXT" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_URL_CONTEXT=grouper"
export GROUPER_URL_CONTEXT=grouper
fi
if [ -z "$GROUPERWS_URL_CONTEXT" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPERWS_URL_CONTEXT=grouper-ws"
export GROUPERWS_URL_CONTEXT=grouper-ws
fi
if [ -z "$GROUPER_GSH_CHECK_USER" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_GSH_CHECK_USER=true"
export GROUPER_GSH_CHECK_USER=true
fi
if [ -z "$GROUPER_GSH_USER" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_GSH_USER=tomcat"
export GROUPER_GSH_USER=tomcat
fi
if [ -z "$GROUPER_RUN_TOMCAT_NOT_SUPERVISOR" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_RUN_TOMCAT_NOT_SUPERVISOR=false"
export GROUPER_RUN_TOMCAT_NOT_SUPERVISOR=false
fi
if [ -z "$GROUPER_CHOWN_DIRS" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_CHOWN_DIRS=true"
export GROUPER_CHOWN_DIRS=true
fi
if [ -z "$GROUPER_SETUP_AUTHN_VALVE" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_SETUP_AUTHN_VALVE=true"
export GROUPER_SETUP_AUTHN_VALVE=true
fi
if [ -z "$GROUPER_TOMCAT_HTTP_PORT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_HTTP_PORT=-1"
export GROUPER_TOMCAT_HTTP_PORT=-1
fi
if [ -z "$GROUPER_TOMCAT_HTTPS_PORT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_HTTPS_PORT=8443"
export GROUPER_TOMCAT_HTTPS_PORT=8443
fi
if [ -z "$GROUPER_TOMCAT_MAX_HEADER_COUNT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_MAX_HEADER_COUNT=200"
export GROUPER_TOMCAT_MAX_HEADER_COUNT=200
fi
if [ -z "$GROUPER_TOMCAT_AJP_PORT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_AJP_PORT=-1"
export GROUPER_TOMCAT_AJP_PORT=-1
fi
if [ -z "$GROUPER_TOMCAT_SHUTDOWN_PORT" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_SHUTDOWN_PORT=8005"
export GROUPER_TOMCAT_SHUTDOWN_PORT=8005
fi
if [ -z "$GROUPER_TOMCAT_LOG_ACCESS_DIRECTORY" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_LOG_ACCESS_DIRECTORY=/opt/grouper/logs"
export GROUPER_TOMCAT_LOG_ACCESS_DIRECTORY=/opt/grouper/logs
fi
#Replace web.xml session timeout with env variable
if [[ -z "$GROUPER_TOMCAT_SESSION_TIMEOUT_MINUTES" ]]; then
if [[ "$GROUPER_UI" != 'true' ]] && [[ "$GROUPER_WS" = 'true' ]]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_SESSION_TIMEOUT_MINUTES=1"
export GROUPER_TOMCAT_SESSION_TIMEOUT_MINUTES=1
else
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishBegin) export GROUPER_TOMCAT_SESSION_TIMEOUT_MINUTES=600"
export GROUPER_TOMCAT_SESSION_TIMEOUT_MINUTES=600
fi
fi
if [ -z "$GROUPER_LOG_TO_HOST" ] ; then
echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_analyzeOriginalFiles) export GROUPER_LOG_TO_HOST=false"
export GROUPER_LOG_TO_HOST=false
fi
if [ -z "$GROUPER_LOG_TO_STDERR" ] ; then
if [ "$GROUPER_LOG_TO_HOST" = "true" ]; then
echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_analyzeOriginalFiles) export GROUPER_LOG_TO_STDERR=false"
export GROUPER_LOG_TO_STDERR=false
else
echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_analyzeOriginalFiles) export GROUPER_LOG_TO_STDERR=true"
export GROUPER_LOG_TO_STDERR=true
fi
fi
}
prep_finishEnd() {
# defaults after the "only" part
if [ -z "$GROUPER_TOMCAT_CONTEXT" ] ; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_TOMCAT_CONTEXT=grouper"
export GROUPER_TOMCAT_CONTEXT=grouper
fi
if [ -z "$GROUPER_LOG_PREFIX" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_LOG_PREFIX=grouper"
export GROUPER_LOG_PREFIX=grouper
fi
if [ -z "$GROUPER_MAX_MEMORY" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_MAX_MEMORY=1500m"
export GROUPER_MAX_MEMORY=1500m
fi
if [ -z "$GROUPER_CONTEXT_COOKIES" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_CONTEXT_COOKIES=true"
export GROUPER_CONTEXT_COOKIES=true
fi
if [ -z "$GROUPER_PUT_JAVA_HOME_IN_BASHRC" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_PUT_JAVA_HOME_IN_BASHRC=true"
export GROUPER_PUT_JAVA_HOME_IN_BASHRC=true
fi
if [ -z "$GROUPER_JAVA_HOME" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto"
export GROUPER_JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto
fi
if [ -z "$GROUPER_TOMCAT_LOG_ACCESS" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_TOMCAT_LOG_ACCESS=false"
export GROUPER_TOMCAT_LOG_ACCESS=false
fi
if [ -z "$GROUPER_TOMCAT_REMOTE_IP_VALVE" ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_TOMCAT_REMOTE_IP_VALVE=false"
export GROUPER_TOMCAT_REMOTE_IP_VALVE=false
fi
if [ -z "$GROUPER_REDIRECT_FROM_SLASH_TO_GROUPER" ]; then
if [ "$GROUPER_UI" == 'true' ]; then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_REDIRECT_FROM_SLASH_TO_GROUPER=true"
export GROUPER_REDIRECT_FROM_SLASH_TO_GROUPER=true
else
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finishEnd) export GROUPER_REDIRECT_FROM_SLASH_TO_GROUPER=false"
export GROUPER_REDIRECT_FROM_SLASH_TO_GROUPER=false
fi
fi
}
prep_finish() {
if [ "$GROUPER_SETUP_FILES_COMPLETE" = "true" ]
then
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finish) GROUPER_SETUP_FILES_COMPLETE=true, skipping startup prep"
prep_unsetAllAndFromFiles
return
fi
grouperScriptHooks_prepComponentPost
prep_finishBegin
prepOnly
prep_finishEnd
grouperScriptHooks_finishPrepPost
prep_unsetAllAndFromFiles
echo "grouperContainer; INFO: (libraryPrep.sh-prep_finish) End prep"
}
prep_unsetAllAndFromFiles() {
prep_unsetAll
prepOnly_unsetAll
}
prep_unsetAll() {
unset -f prep_conf
unset -f prep_daemon
unset -f prep_finish
unset -f prep_finishBegin
unset -f prep_finishEnd
unset -f prep_initDeprecatedEnvVars
unset -f prep_openshift
unset -f prep_quickstart
unset -f prep_unsetAll
unset -f prep_unsetAllAndFromFiles
unset -f prep_ui
unset -f prep_ws
}
prep_exportAll() {
export -f prep_conf
export -f prep_daemon
export -f prep_finish
export -f prep_finishBegin
export -f prep_finishEnd
export -f prep_initDeprecatedEnvVars
export -f prep_openshift
export -f prep_quickstart
export -f prep_unsetAll
export -f prep_unsetAllAndFromFiles
export -f prep_ui
export -f prep_ws
}
# export everything
prep_exportAll