Eu acredito que vejo o seu problema. Então, você puxou esse charme do github, o que é bom. No entanto, os testes geralmente são gravados e executados no diretório tests
. Assim, o amuleto aplica um pouco de mágica para implantar usando o charme no disco, para que você não tenha que colocar explicitamente charm=
na linha d.add
. No entanto, desde que você está correndo de shell interativo, faz sentido para você fazer isso. O problema é que não é um ramo do Bazaar que é o que o Juju Deployer está esperando.
Normalmente, o que acontece, quando você faz apenas d.add('cf-nats')
em um teste de charme, a árvore de charutos é copiada para um local temporário e um repositório bzr é criado (se ainda não existir um). Em seguida, esse novo local temporário é fornecido ao implementador. No entanto, desde que você deu a ele um caminho de arquivo firme, essa parte não está acontecendo (por design) e assume que você tem um charme que tem um repositório bzr e ele apenas usará isso.
A maneira de contornar isso é executar export JUJU_TEST_CHARM="cf-nats"
(e variável de ambiente os conjuntos de plug-ins de teste juju) antes de lançar o shell Python3 a partir do $CHARM_DIR
( /home/ubuntu/cf-charms/charms/trusty/cf-nats
) ou depois de criar d = amulet.Deployment()
set d.charm_name = 'cf-nats'
. Em seguida, basta fazer d.add('cf-nats')
, o amuleto verá que o nome de base de getcwd é o mesmo que o nome do encanto e executará de forma transparente um pouco de mágica.
Isso deve ser feito. Idealmente, adicionar suporte para os charms baseados em git para o implementador de juju resolverá tudo isso, mas tente isso e deixe-me saber se ele não funciona para você.