Модуль console
Модуль console позволяет одному экземпляру Tarantool получать доступ к другому экземпляру Tarantool и позволяет одному экземпляру Tarantool начать прослушивание по порту администрирования.
Ниже приведен перечень всех функций модуля console.
| Имя | Назначение |
|---|---|
| console.connect() | Подключение к экземпляру |
| console.listen() | Прослушивание входящих запросов |
| console.start() | Запуск консоли |
| console.ac() | Установка флага автодополнения ввода |
| console.delimiter() | Настройка разделителя |
| console.get_default_output() | Get default output format |
| console.set_default_output() | Set default output format |
| console.eos() | Set or get end-of-output string |
-
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> -- командная строка показывает, что работа идет с удаленным экземпляром
- uri (
-
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 ...
- uri (
-
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('')! --- ...
- marker (
-
console.get_default_output()¶ Return the current default output format. The result will be
fmt="yaml", or it will befmt="lua"if the last set_default_output call wasconsole.set_default_output('lua').
-
console.set_default_output('yaml'|'lua')¶ Set the default output format. The possible values are „yaml“ (the default default) or „lua“. The output format can be changed within a session by executing
console.eval('\set output yaml|lua'); see the description of output format in the Interactive console section.
-
console.eos([string])¶ Set or access the end-of-output string if default output is „lua“. This is the string that appears at the end of output in a response to any Lua request. The default value is
;semicolon. Sayingeos()will return the current value. For example, afterrequire('console').eos('!!')responses will end with „!!“.