Шаблон приложения Tarantool DataBase для tt CLI
Утилита 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
- Username:
-
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_dbBucket count (default: 30000): 300Use expirationd [y|n] (default: n): nUse 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 3.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
- Username:
-
1 экземпляр etcd, для которого используется порт 2379.
Также при запуске создается файл с миграцией cluster/migrations/scenario/0000001_example.lua.
Новые файлы миграций необходимо добавлять в директорию cluster/migrations/scenario/.
Чтобы настроить окружение, выполните следующие команды:
python3 -m venv venvsource venv/bin/activatepip3 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.Configcfg['credentials']['users']['new_user'] = {"password": "password","roles": ["super"],}cluster_config.Config = cfg