Então, se eu entendi corretamente, você deseja instalar um aplicativo que precisa de um ip do servidor para instalar corretamente? O que você basicamente tem é um cliente que é "inútil" sem relação com um servidor.
Juju é baseado em eventos. Quando um evento é acionado, Juju enfileira todos os outros eventos para esse charme. O próximo até é demitido do momento em que o anterior é feito. Os eventos relation
só serão disparados depois que o evento install
for concluído. Tecnicamente falando, a relação entre dois encantos só pode ser adicionada depois que o gancho install
de um encanto terminar.
Se você tem um charme que não pode ser instalado a menos que tenha uma relação (a menos que ele saiba o ip do "servidor"), então o install
hook não faz nada. A instalação real deve acontecer no gancho relation-joined
.
Então, implemente isso:
-
install
hook basicamente não faz nada [1] -
relation-joined
hook pega o ip usandorelation-get private-address
-
relation-joined
hook faz a instalação e configuração reais do cliente
[1] ou o hook de instalação pode fazer a instalação até o ponto em que o ip é necessário, e depois parar