asterisk/tests/CI/setupRealtime.sh

180 lines
4.9 KiB
Bash
Executable File

#!/usr/bin/env bash
CIDIR=$(dirname $(readlink -fn $0))
INITIALIZE_DB=0
source $CIDIR/ci.functions
ASTTOP=$(readlink -fn $CIDIR/../../)
set -e
POSTGRES_PID=`pidof postgres || : `
if [ -z "$POSTGRES_PID" ] ; then
if [ -x /usr/local/bin/postgresql-start ] ; then
/usr/local/bin/postgresql-start
fi
fi
POSTGRES_PID=`pidof postgres || : `
if [ -z "$POSTGRES_PID" ] ; then
echo "Postgres isn't running. It must be started manually before this test can continue."
exit 1
fi
if [ $INITIALIZE_DB -gt 0 ] ; then
echo "(re)Initializing Database"
sudo -u postgres dropdb -e asterisk_test >/dev/null 2>&1 || :
sudo -u postgres dropuser -e asterisk_test >/dev/null 2>&1 || :
sudo -u postgres createuser --username=postgres -RDIElS asterisk_test
sudo -u postgres createdb --username=postgres -E UTF-8 -O asterisk_test asterisk_test
echo "Configuring ODBC"
sudo odbcinst -u -d -n "PostgreSQL-Asterisk-Test"
sudo odbcinst -i -d -n "PostgreSQL-Asterisk-Test" -f /dev/stdin <<-EOF
[PostgreSQL-Asterisk-Test]
Description=PostgreSQL ODBC driver (Unicode version)
Driver=psqlodbcw.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1
EOF
sudo odbcinst -u -s -l -n asterisk-connector-test
sudo odbcinst -i -s -l -n asterisk-connector-test -f /dev/stdin <<-EOF
[asterisk-connector-test]
Description = PostgreSQL connection to 'asterisk' database
Driver = PostgreSQL-Asterisk-Test
Database = asterisk_test
Servername = 127.0.0.1
UserName = asterisk_test
Port = 5432
Protocol = 9.1
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOldColumn = No
FakeOldIndex = No
ConnSettings =
EOF
fi
cat >/tmp/config.ini <<-EOF
[alembic]
script_location = config
sqlalchemy.url = postgresql://asterisk_test@localhost/asterisk_test
[loggers]
keys = root,sqlalchemy,alembic
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = WARN
handlers = console
qualname =
[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine
[logger_alembic]
level = INFO
handlers =
qualname = alembic
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S
EOF
pushd $ASTTOP/contrib/ast-db-manage
psql --username=asterisk_test --host=localhost --db=asterisk_test --command='DROP OWNED BY asterisk_test CASCADE'
alembic -c /tmp/config.ini upgrade head
rm -rf /tmp/config.ini || :
popd
cp test-config.yaml test-config.orig.yaml
cat >test-config.yaml <<-EOF
global-settings:
test-configuration: config-realtime
condition-definitions:
-
name: 'threads'
pre:
typename: 'thread_test_condition.ThreadPreTestCondition'
post:
typename: 'thread_test_condition.ThreadPostTestCondition'
related-type: 'thread_test_condition.ThreadPreTestCondition'
-
name: 'sip-dialogs'
pre:
typename: 'sip_dialog_test_condition.SipDialogPreTestCondition'
post:
typename: 'sip_dialog_test_condition.SipDialogPostTestCondition'
-
name: 'locks'
pre:
typename: 'lock_test_condition.LockTestCondition'
post:
typename: 'lock_test_condition.LockTestCondition'
-
name: 'file-descriptors'
pre:
typename: 'fd_test_condition.FdPreTestCondition'
post:
typename: 'fd_test_condition.FdPostTestCondition'
related-type: 'fd_test_condition.FdPreTestCondition'
-
name: 'channels'
pre:
typename: 'channel_test_condition.ChannelTestCondition'
post:
typename: 'channel_test_condition.ChannelTestCondition'
-
name: 'sip-channels'
pre:
typename: 'sip_channel_test_condition.SipChannelTestCondition'
post:
typename: 'sip_channel_test_condition.SipChannelTestCondition'
-
name: 'memory'
pre:
typename: 'memory_test_condition.MemoryPreTestCondition'
post:
typename: 'memory_test_condition.MemoryPostTestCondition'
related-type: 'memory_test_condition.MemoryPreTestCondition'
config-realtime:
test-modules:
modules:
-
typename: realtime_converter.RealtimeConverter
config-section: realtime-config
realtime-config:
username: "asterisk_test"
password: "asterisk_test"
host: "localhost"
db: "asterisk_test"
dsn: "asterisk-connector-test"
EOF