Модуль 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 „!!“.