Я пробую Джуджу и во время игры создал сервис Django, а затем Mongodb. Я связал их, а затем уничтожил mongodb. Теперь мой сервис Django находится в состоянии ошибки: agent-state-info: 'hook fail: "connection-broken" ". Я пытался разрушить связь с juju destroy-relation python-django mongodb
, но безрезультатно. Mongodb по-прежнему появляется в статусе джуджу, но в состоянии «умирает», прошло несколько часов с тех пор, как я его уничтожил. Я не проделал никакой реальной работы с этим сервисом, поэтому могу уничтожить его и начать все заново, но во время обучения я хотел бы узнать, есть ли более чистый способ решения этой ситуации.
Во-первых, досадно «задним числом» немного. Перед удалением сервисов всегда полезно удалить отношения: https://jujucharms.com/docs/stable/charms-destroy
Как только машина находится в состоянии ошибки, Juju не будет обрабатывать какие-либо хуки для этого сервиса - даже те, которые его уничтожат. Это для защиты от возможной потери данных. Однако существует механизм для возврата машины в адаптивное состояние:
juju resolved <machine identifier>
, например
juju resolved mongodb/0
Это позволит снова включить выполнение ловушек для этой машины / службы. Тогда будет возможно:
juju destroy-relation mongodb django
juju destroy-service mongodb
juju destroy-service django