作为juju
框架的新手,我正在研究简单的machine
部署,旨在对其执行简单的action
。
因此,我创建了一个charm
捆绑包,并使用juju
成功地进行了部署。该捆绑软件包含一个名为“触摸”的action
,该字符串以字符串(即:文件名)作为输入,并在计算机上创建具有该名称的文件。
计算机变为“活动”状态后,当我使用以下命令列出已部署的计算机中的操作时:
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”
id:d6b39965-9a2c-41c6-8db7-b4060e587033
状态:失败
单位:
charmLayer / 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追溯(最近一次通话为最后一次):
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从charms.reactive导入主set_flag调试unit.charmLayer / 0.touch
unit-charmLayer-0:13:23:14调试unit.charmLayer / 0.touch ImportError:没有名为'charms.reactive'的模块
我的问题是我为什么要为ImportError
买到这个charms.reactive
?
答案 0 :(得分:0)
您可以发布代码吗?如果我们能够了解您如何构成魅力,我们可能会提供帮助。 (这应该是评论,而不是答案。我没有代表)。
在回答中,您要导入charms.reactive吗?如果您正在编写被动式超级按钮,那么如果您进行了charm init
,它应该已经被包括在内。否则,您可能需要在Python脚本的顶部添加import charms.reactive
。