Шаблон приложения Tarantool DB для tt CLI¶
Доступно с версии 2.1.0.
Утилита tt CLI поддерживает создание приложения Tarantool DB на основе специального шаблона в команде
tt create.
Для приложений Tarantool DB в tt create
используется шаблон tarantool_db
.
В результате будет развернут следующий стенд:
кластер Tarantool 3.x: 2 роутера, 2 набора реплик по 2 реплики. Используются порты 3301-3307;
1 экземпляр TCM, который доступен по адресу http://localhost:8081/. Логин и пароль для входа:
Username:
admin
Password:
secret
1 экземпляр etcd, используется порт 2379.
Изначально будет 1 файл с миграцией: cluster/migrations/scenario/0000001_example.lua
.
Новые файлы миграций необходимо добавлять в директорию cluster/migrations/scenario/
.
Содержание:
Создание приложения на основе шаблона¶
Чтобы создать приложение myapp
на основе шаблона Tarantool DB, используйте следующую команду:
tt create tarantool_db --name myapp
• Creating application in "/home/vboxuser/tarantooldb/myapp"
• Using template from /home/vboxuser/tarantooldb/templates/tarantool_db
Bucket count (default: 30000): 300
Use expirationd [y|n] (default: n): n
Use only user "admin" for sharding and replication [y|n] (default: n):
• Executing post-hook ./hooks/post-gen.sh
• Application 'myapp' created successfully
Здесь:
name
– имя приложения. Обязательный параметр. При выполнении команды создается директория с указанным именем.
Модуль expirationd
по умолчанию отключен (n
).
Чтобы использовать этот модуль, укажите y
в строке ввода.
После этого модуль expirationd
будет добавлен в конфигурацию и тесты.
Также при выполнении команды по умолчанию создаются три пользователя: admin
, replicator
, storage
.
Чтобы создать вместо них одного пользователя admin
, укажите y
в строке ввода.
Запуск приложения¶
Для запуска приложения на основе шаблона требуются:
приложение Docker Compose;
установленный Docker-образ Tarantool DB 2.x;
Python 3.
Запустить приложение можно так:
make up
...
All services configured
В результате выполнения команды будет развернут следующий стенд:
кластер Tarantool DB:
2 роутера;
2 набора реплик по 2 хранилища.
Для экземпляров кластера используются порты 3301-3307;
1 экземпляр веб-интерфейса Tarantool Cluster Manager (TCM), который доступен по адресу http://localhost:8081/. Логин и пароль для входа:
Username:
admin
Password:
secret
1 экземпляр etcd, для которого используется порт 2379.
Также при запуске создается файл с миграцией cluster/migrations/scenario/0000001_example.lua
.
Новые файлы миграций необходимо добавлять в директорию cluster/migrations/scenario/
.
Настройка окружения¶
Чтобы настроить окружение, выполните следующие команды:
python3 -m venv venv
source venv/bin/activate
pip3 install -r test/requiremets.txt
Запуск тестов¶
Запустить выполнение тестов можно так:
make test
В тесте test_example.py
показаны примеры использования хэлперов для вызова crud-операций и изменения конфигурации:
tdb_client.conn.crud_truncate('data')
tdb_client.conn.crud_insert_object('data', {"id":1, "data": "data"})
...
cfg = cluster_config.Config
cfg['credentials']['users']['new_user'] = {
"password": "password",
"roles": [
"super"
],
}
cluster_config.Config = cfg