我正在尝试创建一个可以连接到 rabbitmq 的 charm。我编写了一个 amqp-relation-joined 和一个 amqp-relation-changed。当我运行 时,这两个脚本都不会执行juju add-relation $mycharm rabbitmq-server
。在日志中,我看到
...
==> <$HOME>/.juju/local/log/unit-rabbitmq-server-0.log <==
2014-03-04 20:43:48 DEBUG juju.worker.uniter.filter filter.go:523 no new charm event
2014-03-04 20:43:48 DEBUG juju.worker.uniter.filter filter.go:338 got relations change
==> <$HOME>/.juju/local/log/unit-flask-0.log <==
2014-03-04 20:43:48 DEBUG juju.worker.uniter.filter filter.go:523 no new charm event
2014-03-04 20:43:48 DEBUG juju.worker.uniter.filter filter.go:338 got relations
...
我希望看到我的钩子产生某种输出,因为我正在记录一些东西。
在amqp-relation-joined
:
echo "DOING AMQP STUFF"
juju-log "$JUJU_REMOTE_UNIT modified its settings"
juju-log "Relation settings:"
relation-get
juju-log "Relation members:"
relation-list
touch /var/i_was_here
在amqp-relation-changed
:
echo "DOING AMQP STUFF"
juju-log "$JUJU_REMOTE_UNIT modified its settings"
juju-log "Relation settings:"
relation-get
juju-log "Relation members:"
relation-list
touch /var/i_was_also_here
当我 ssh 进入机器时,我没有/var/i_was_here
看到/var/i_was_also_here
我在本地模式下在 Ubuntu 12.04 上运行 juju。
编辑:
metadata.yml 是
name: flask
summary: Flask is a lightweight "microframework" that is often used for simple apis
maintainer: Ubuntu <[email protected]>
description: |
...
categories:
- misc
subordinate: false
provides:
api:
interface: http
requires:
amqp:
interface: rabbitmq
我使用的 Charms 都集中到一个存储库中https://github.com/peterklipfel/firesuit/tree/master/charms
答案1
好的,我遇到的问题是我没有在钩子中将进程置于后台start
。因此,钩子从未完成,并且基本上冻结了该服务的状态。我以为它正在工作,因为我设置的 api 会响应。冻结它的进程是一个前台 uwsgi 进程。
但是,debug-hooks
由于节点被冻结,因此没有运行。我没有意识到 tmux 会话打开了一个新的每个钩子都会有会话。因此初始会话将不是具有文档中所示的功能...当然,文档是这么说的,但我的大脑没有明白。
感谢所有的 juju 朋友帮助我度过难关。
答案2
我没有发现您发布的内容有什么问题。您应该检查以确保您的钩子是可执行的,并查看命令debug hooks
: