Charms Juju: действие не выполнено: (ImportError: нет модуля с именем «charms.reactive»)

Как новичок в juju framework, я изучаю простое развертывание machine с целью выполнения на нем простого action.

Итак, я создал пакет charm, собрал его и успешно развернул с помощью juju. Пакет содержит action с именем touch, который принимает строку (например, имя файла) в качестве входных данных и создает файл с этим именем на машине.

После того, как машина станет активной и когда я перечислю действия на развернутой машине, используя:

juju actions charmLayer

Я получаю свой action в списке рядом с его описанием.

Теперь при выполнении действий коснитесь с помощью:

juju run-action charmLayer/0 touch filename="/home/ubuntu/manual.txt"

Я получаю следующее сообщение:

Действие в очереди с идентификатором: 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

статус: не удалось

Ед. изм:

очарованиеLayer/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 ОТЛАДКА unit.charmLayer/0.touch from charms.reactive import main, set_flag

unit-charmLayer-0: 13:23:14 ОТЛАДКА unit.charmLayer/0.touch ImportError: Нет модуля с именем «charms.reactive»

Мой вопрос, почему я получаю ImportError за charms.reactive?


person McLan    schedule 03.05.2019    source источник


Ответы (1)


Можете ли вы опубликовать свой код? Возможно, мы сможем помочь, если увидим, как вы создали свое очарование. (это должен быть комментарий, а не ответ. У меня нет представителя).

В ответ вы импортируете charms.reactive? Если вы пишете реактивное заклинание, оно уже должно быть включено для вас, если вы сделали charm init. В противном случае вам может понадобиться добавить import charms.reactive в начало вашего скрипта Python.

person Seffyroff    schedule 07.05.2019