juju sobrescreve padrões no serviço

3

Trabalhando no encanto postgresql um pouco, e eu estou querendo saber se existe uma maneira de fornecer substituições para valores padrão em um "juju-way".

No meu charme que consumirá os serviços fornecidos pelo postgresql, eu estava pensando que poderia substituir coisas como o nome do banco de dados ou o nome do super_user criado. Se eu ficar algo assim no relation-joined:

relation-set user=my_superuser

Estou tendo um problema em que o postgres / db-admin-relation-changed pode realmente ser executado antes de as junções do consumidor serem executadas (ou terminar, pelo menos, executando).

Eventualmente, o postgresql / db-admin-relation-changed irá rodar e pegar meus dados, mas se ele rodar muito rápido, eu poderia acabar com 2 superusuários.

TL; DR: Existe uma maneira de garantir que a configuração padrão seja sobrescrita em um serviço no lado provido do relacionamento?

    
por dpb 21.11.2012 / 19:19

1 resposta

3

Não há como garantir qual gancho é executado primeiro no esquema de execução do gancho, mas é possível prever quais séries de gancho serão executadas primeiro. Quando uma relação é adicionada, os ganchos *-relation-joined são acionados primeiro (em ambos os serviços, sem um vencedor claro de quem vai primeiro), seguidos pelos ganchos *-relation-changed para cada serviço. Como você não pode garantir qual dos ganchos em um determinado estado de relação será disparado primeiro, você pode superar o gancho relation-changed no charme do Postgres, colocando os comandos do conjunto de relações em relation-joined hook em seu charme.

Isso não funcionará para cada charme / relação, pois depende de onde o levantamento pesado é feito para cada relação. Por exemplo, o encanto do MySQL faz todas as instruções de criação do banco de dados durante o relation-joined hook, então o acima não ajudaria você a conseguir nada, já que você ainda teria a condição de corrida.

Idealmente, a menos que haja um bom realmente motivo, usar o que o encanto do postgres oferece é provavelmente o melhor caminho a seguir.

    
por Marco Ceppi 21.11.2012 / 19:28