作为juju
框架的新手,我正在研究简单machine
的部署,目的是action
在其上执行简单的操作。
所以,我创建了一个charm
包,构建它并使用juju
. 该包包含一个action
名为“touch”,它接受一个字符串(即:文件名)作为输入,并在机器上创建一个具有该名称的文件。
在机器变为“活动”之后,当我使用以下命令列出已部署机器中的操作时:
juju actions charmLayer
我action
在它的描述旁边列出了我的列表。
现在,当执行“触摸”动作时,使用:
juju run-action charmLayer/0 touch filename="/home/ubuntu/manual.txt"
我收到以下消息:
使用 ID 排队的操作:d6b39965-9a2c-41c6-8db7-b4060e587033
然后,当我检查动作状态时:
juju show-action-status d6b39965-9a2c-41c6-8db7-b4060e587033
我得到以下信息:
行动:
动作:触摸
完成时间:“2019-05-03 11:56:51”
编号:d6b39965-9a2c-41c6-8db7-b4060e587033
状态:失败
单元:
魅力层/0
然后当我检查动作输出时:
juju show-action-output d6b39965-9a2c-41c6-8db7-b4060e587033
我得到以下信息:
消息:退出状态 1
状态:失败
定时:
完成时间:2019-05-03 11:56:51 +0000 UTC
入队:2019-05-03 11:56:48 +0000 UTC
开始时间:2019-05-03 11:56:51 +0000 UTC
检查日志时使用:
juju debug-log
我看到以下输出:
unit-charmLayer-0: 13:23:14 调试 unit.charmLayer/0.touch Traceback(最近一次通话最后):
unit-charmLayer-0: 13:23:14 调试 unit.charmLayer/0.touch 文件“/var/lib/juju/agents/unit-charmLayer-0/charm/actions/touch”,第 6 行,在
unit-charmLayer-0: 13:23:14 DEBUG unit.charmLayer/0.touch from charms.reactive import main, set_flag
unit-charmLayer-0: 13:23:14 调试 unit.charmLayer/0.touch ImportError: No module named 'charms.reactive'
我的问题是为什么我会得到ImportError
这个charms.reactive
?