Как мне перечислить все переменные отношения и отладить их в интерактивном режиме?

Я пишу талисман, требующий базы данных mysql, и, посмотрев на другие талисманы, обнаружил, что именно так (ниже) я получаю информацию о базе данных:

user=`relation-get user`
password=`relation-get password`
mysqlhost=`relation-get private-address` 

Но я только что нашел что после прочтения примера очарования wordpress есть способ показать все переменные отношений, которые я могу использовать?

Кроме того, во время отладки моего сценария db-отношение-изменения я захотел подключиться по ssh к своему хосту и в интерактивном режиме запустите эти команды, например Ratio-Get User , но это не сработало. Я прибегнул к необходимости перезапустить все и использовать журнал juju, чтобы распечатать их. Это потратило много времени. Есть ли способ распечатать эти отношения, либо из моего окна разработчика, либо из экземпляра, управляющего моим очарованием? (Ниже приведено описание того, что происходит, когда я пытался в интерактивном режиме запустить относительное получение):

ubuntu@mfisch-local-tracks-0:~$ relation-get user
usage: relation-get [-h] [-o OUTPUT] [-s SOCKET] [--client-id CLIENT_ID]
                    [--format FORMAT] [--log-file FILE]
                    [--log-level CRITICAL|DEBUG|INFO|ERROR|WARNING]
                    [-r RELATION ID]
                    [settings_name] [unit_name]
No JUJU_AGENT_SOCKET/-s option found

Я пытался juju debug-hooks tracks/0 -e local, что привело меня в оболочку, и получение отношения все равно не удалось.

3
задан 25 November 2012 в 20:27

4 ответа

Я столкнулся с вариантом этого с config-get на модуле juju. Я обнаружил, что если я установлю значение конфигурации с компьютера, выполняющего развертывание, то я больше не получаю сообщение об ошибке JUJU_AGENT_SOCKET:

    juju bootstrap
    juju deploy local:wordress # local:$charm
    juju get wordpress # $charm, gets config.yaml
    juju set wordpress name=value # set any $charm name

    juju debug-hooks wordpress/0 # $charm/$int
    $charm-$int: config-get # get config.yaml

Без выполнения «набора juju» на компьютере, выполняющем развертывание, config-get вернет ошибка JUJU_AGENT_SOCKET. После этого вы получите все текущие значения.

Не ответ, а обходной путь. Когда я знаю больше об отношениях, возможно, вариант тоже с этим работает.

0
ответ дан 25 November 2012 в 20:27

Попробуйте это:

juju ssh servicename/instance_id sudo apt-get install juju-jitsu
juju ssh servicename/instance_id
sudo grep -R JUJU_ENV_UUID /etc
# take result and export
ubuntu@ip-10-204-237-189:~$ jitsu run-as-hook lamp/0 config-get database-user
juju-user

также,

# I attached collectd to this instance
jitsu run-as-hook lamp/0 relation-ids collectd-server
$ echo $?
0

Это ничего не вернуло, потому что я еще не связал это, обратите внимание, что оно тоже не взорвалось. Надеюсь, это поможет.

0
ответ дан 25 November 2012 в 20:27

Способ интерактивной отладки вашего обаяния заключается в использовании отладочных хуков ( https://jujucharms.com/docs/stable/developer-debugging ):

Например: [ 115]

juju deploy wordpress

(допустим, что приведенная выше команда развертывает wordpress / 0)

juju debug-hooks wordpress/0

Это откроет сеанс tmux, где ловушки можно запускать вручную. Он также настраивает среду так, чтобы можно было запускать отношение- * (отношение-получение, отношение-список и т. Д.)

Попробуйте запустить relation-get ... оно должно дать вам все доступные переменные для этого особое очарование / отношение.

ПРИМЕЧАНИЕ. На самом деле вы должны вызвать срабатывание крючка после запуска отладочных крючков джуджу. Итак, добавьте / измените отношения на этом этапе. (Я обычно просто удаляю-отношение, а затем добавляю его обратно.) Это создаст дополнительные специфичные для ловушки окна в tmux, которые имеют контекст установки JUJU_ и будут отвечать на команды установки-установки-отношения.

0
ответ дан 25 November 2012 в 20:27

Когда вы выполняете juju debug-hooks service/#, он выполняет juju ssh в сеансе tmux. Однако, это первое окно сеанса tmux (которое похоже на экран) не имеет информации о сеансе JUJU. (Вы можете продемонстрировать это, выполнив set|grep JUJU, и вы не увидите никаких возвращенных настроек.) Изначально в TMUX будет только окно 0: ~.

Как только отношение добавляется (из другого окна / терминала) через что-то вроде:

juju add-relation wordpress mysql

ДОПОЛНИТЕЛЬНОЕ окно tmux должно быть создано и стать активным. Имя отлаживаемого хука будет встроено в заголовок TMUX (внизу экрана), что-то вроде:

1: db-relation-changed

Теперь вы можете запустить относительное получение или еще лучше:

[ 112]

(это для обаяния rsetter, связанного с rgetter, а не wordpress / mysql)

Затем вы можете отлаживать (включая выполнение ловушек, которые обычно запускаются, как вы должны быть в родительском каталоге шарм, поэтому зацепки / HOOKNAME)

0
ответ дан 25 November 2012 в 20:27

Другие вопросы по тегам:

Похожие вопросы: