Модуль console
Модуль console
позволяет одному экземпляру Tarantool’а получать доступ к другому экземпляру Tarantool’а и позволяет одному экземпляру Tarantool’а начать прослушивание по порту администрирования.
Ниже приведен перечень всех функций модуля console
.
Имя | Назначение |
---|---|
console.connect() | Подключение к экземпляру |
console.listen() | Прослушивание входящих запросов |
console.start() | Запуск консоли |
console.ac() | Установка флага автодополнения ввода |
console.delimiter() | Настройка разделителя |
-
console.
connect
(uri) Подключение к экземпляру по URI, смена командной строки с „
tarantool>
“ на „uri>
“ и дальнейшая работа в качестве клиента до окончания сессии пользователя или ввода командыcontrol-D
.Функция console.connect позволяет одному экземпляру Tarantool’а в интерактивном режиме получать доступ к другому экземпляру Tarantool’а. Последующие запросы на первый взгляд будут обрабатываться локально, но в действительности запросы отправляются на удаленный экземпляр, а локальный экземпляр выступает в виде клиента. После успешного подключения командная строка сменится, и последующие запросы отправляются и выполняются на удаленном экземпляре. Результат выводится на локальный экземпляр. Чтобы вернуться к работе на локальном экземпляре, введите команду
control-D
.Если экземпляр Tarantool’а по
URI
запрашивает авторизацию, подключение может выглядеть следующим образом:console.connect('admin:secretpassword@distanthost.com:3301')
.Нет ограничений по типу вводимых запросов, кроме ограничений по правам на выполняемые запросы – по умолчанию, вход в систему на удаленном экземпляре выполняется от имени пользователя „guest“. Можно разрешить работу на удаленном экземпляре, выдав права:
box.schema.user.grant('guest','execute','universe')
.Параметры: - uri (string) – URI удаленного экземпляра
возвращает: nil
Возможные ошибки: подключение не будет установлено, если целевой экземпляр Tarantool’а не был инициирован с помощью
box.cfg{listen=...}
.Пример:
tarantool> console = require('console') --- ... tarantool> console.connect('198.18.44.44:3301') --- ... 198.18.44.44:3301> -- командная строка показывает, что работа идет с удаленным экземпляром
-
console.
listen
(uri) Прослушивание по URI. Основной способ прослушивания на предмет входящих запросов – по строке информации о подключении, или URI, указанному в
box.cfg{listen=...}
. Другой способ прослушивания – по URI, указанному вconsole.listen(...)
. Этот другой способ называется «административным» или просто «по порту администрирования». Такое прослушивание обычно осуществляется по локальному хосту с доменным Unix-сокетом.Параметры: - uri (string) – URI локального экземпляра
«Административный» адрес – это URI для прослушивания. У него нет значения по умолчанию, поэтому следует указать, будет ли подключение производиться по порту администрирования. Параметр выражен URI = Универсальным идентификатором ресурса, например «/tmpdir/unix_domain_socket.sock», или числовым идентификатором TCP-порта. Подключения часто выполняются по telnet. Типичное значение порта: 3313.
Пример:
tarantool> console = require('console') --- ... tarantool> console.listen('unix/:/tmp/X.sock') ... main/103/console/unix/:/tmp/X I> started --- - fd: 6 name: host: unix/ family: AF_UNIX type: SOCK_STREAM protocol: 0 port: /tmp/X.sock ...
-
console.
start
() Запуск консоли на текущем интерактивном терминале.
Пример:
console.start()
специально используется с файлами инициализации. Как правило, при запуске экземпляра Tarantool’а с помощью командыtarantool initialization file
, консоль не поддерживается. Эту проблему можно решить путем добавления следующих строк в конце файла инициализации:local console = require('console') console.start()
-
console.
ac
([true|false]) Установка флага автодополнения ввода. Если значение автодополнения =
true
(правда), и пользователь использует Tarantool в качестве клиента или подключен к Tarantool’у поconsole.connect()
, то при нажатии клавиши TAB Tarantool будет автоматически дополнять текст по введенной части. По умолчанию, задано значениеtrue
.
-
console.
delimiter
(marker) Настройка специального маркера окончания запроса для консоли Tarantool’а.
По умолчанию, маркер окончания запроса представляет собой символ разрыва строки (перевод строки). Нет необходимости в специальных маркерах, поскольку Tarantool может определить, если многостроковый запрос не завершен (например, если видно, что при объявлении функции еще не задано конечное ключевое слово). Тем не менее, в особых случаях или при вводе многостроковых запросов в более ранних версиях Tarantool’а, можно изменить маркер окончания запроса. В результате символ разрыва строки не будет означать окончание запроса.
Чтобы вернуться в нормальный режим, введите команду:
console.delimiter('')<marker>
Параметры: - marker (string) – специальный маркер окончания запроса для консоли Tarantool’а
Пример:
tarantool> console = require('console'); console.delimiter('!') --- ... tarantool> function f () > statement_1 = 'a' > statement_2 = 'b' > end! --- ... tarantool> console.delimiter('')! --- ...