Amulet doesn't find deployed units

Tim Van Steenburgh tim.van.steenburgh at canonical.com
Mon Jan 16 18:29:17 UTC 2017


You're right, deployment.add() isn't needed - the sentries get parsed out
of the real-time
Juju status.

Are you sure the bundle is actually being deployed before your test is run?
You can pass
-vl DEBUG for more verbose output.

I wonder if you need to set "bundle_deploy: true" instead of
"bundle_deploy: True"
in your tests.yaml.

On Mon, Jan 16, 2017 at 1:14 PM, Merlijn Sebrechts <
merlijn.sebrechts at gmail.com> wrote:

> Hi Tim
>
> The tests for the kubernetes-core bundle
> <https://api.jujucharms.com/charmstore/v5/kubernetes-core/archive/tests/20-basic-component-check.py>
> don't do `deployment.add..`. I thought that bundle was a good start for my
> tests since the bundle is promulgated.. Does this mean that the tests for
> that bundle also won't work?
>
> I added those two lines, and now I'm having the following error. The url
> itself seems wrong the Charm I'm testing isn't promulgated. The bundle
> itself should be correct since bundletester deployed the bundle
> correctly..  You can see the bundle here: https://github.com/
> IBCNServices/bundle-limeds-core
>
> bundles/limeds-core$ bundletester
> bundle
>     charm-proof
>  PASS
>     20-basic-check.py
>  ERROR
>
> ------------------------------------------------------------
> ------------------
> ERROR: bundle::20-basic-check.py
> [/tmp/bundletester-gIybTn/limeds-core/tests/20-basic-check.py exit 1]
> E
> ======================================================================
> ERROR: setUpClass (__main__.TestBundle)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python3.5/dist-packages/theblues/charmstore.py",
> line 58, in _get
>     response.raise_for_status()
>   File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line
> 893, in raise_for_status
>     raise HTTPError(http_error_msg, response=self)
> requests.exceptions.HTTPError: 404 Client Error: Not Found for url:
> https://api.jujucharms.com/v4/xenial/docker/meta/any?
> include=bundle-machine-count&include=bundle-metadata&
> include=bundle-unit-count&include=bundles-containing&
> include=charm-actions&include=charm-config&include=charm-
> metadata&include=common-info&include=extra-info&include=
> revision-info&include=stats&include=supported-series&
> include=manifest&include=tags&include=promulgated&include=perm&include=id
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>   File "/tmp/bundletester-gIybTn/limeds-core/tests/20-basic-check.py",
> line 18, in setUpClass
>     cls.deployment.add('docker')
>   File "/usr/local/lib/python3.5/dist-packages/amulet/deployer.py", line
> 208, in add
>     service_name, charm, branch=branch, series=service['series'])
>   File "/usr/local/lib/python3.5/dist-packages/amulet/charm.py", line 57,
> in fetch
>     series=series)
>   File "/usr/local/lib/python3.5/dist-packages/amulet/charm.py", line 42,
> in get_charm
>     return Charm(with_series(charm_path, series))
>   File "/usr/local/lib/python3.5/dist-packages/charmstore/lib.py", line
> 165, in __init__
>     super(Charm, self).__init__(id, api=api, timeout=timeout)
>   File "/usr/local/lib/python3.5/dist-packages/charmstore/lib.py", line
> 115, in __init__
>     AVAILABLE_INCLUDES).get('Meta')
>   File "/usr/local/lib/python3.5/dist-packages/theblues/charmstore.py",
> line 107, in _meta
>     data = self._get(url)
>   File "/usr/local/lib/python3.5/dist-packages/theblues/charmstore.py",
> line 62, in _get
>     raise EntityNotFound(url)
> theblues.errors.EntityNotFound: https://api.jujucharms.com/v4/
> xenial/docker/meta/any?include=bundle-machine-count&
> include=bundle-metadata&include=bundle-unit-count&
> include=bundles-containing&include=charm-actions&include=
> charm-config&include=charm-metadata&include=common-info&
> include=extra-info&include=revision-info&include=stats&
> include=supported-series&include=manifest&include=tags&
> include=promulgated&include=perm&include=id
>
> ----------------------------------------------------------------------
> Ran 0 tests in 0.096s
>
> FAILED (errors=1)
>
> PASS: 1 ERROR: 1 Total: 2 (1.032546 sec)
>
>
>
> 2017-01-16 18:52 GMT+01:00 Tim Van Steenburgh <
> tim.van.steenburgh at canonical.com>:
>
>> You need to define the services in the deployment, even if they are
>> already deployed
>> by bundletester. So for example:
>>
>> cls.deployment.add('docker')
>> cls.deployment.add('limeds')
>>
>> On Mon, Jan 16, 2017 at 10:15 AM, Merlijn Sebrechts <
>> merlijn.sebrechts at gmail.com> wrote:
>>
>>> Hi all
>>>
>>>
>>> Code: https://github.com/IBCNServices/bundle-limeds-core/blob/mast
>>> er/tests/20-basic-check.py
>>>
>>> I'm basing these tests off of the kubernetes core bundle. I want to rely
>>> on bundletester to deploy the bundle and then use the deployed applications
>>> to run tests.
>>>
>>> When I run these tests, Amulet doesn't seem to find the deployed units.
>>>
>>> code:
>>>
>>>         cls.docker = cls.deployment.sentry['docker']
>>>         cls.limeds = cls.deployment.sentry['limeds']
>>>         print("docker: {}".format(cls.docker))
>>>         for unit in cls.docker:
>>>             print(unit.info['public-address'])
>>>         print("limeds: {}".format(cls.limeds))
>>>         for unit in cls.limeds:
>>>             print(unit.info['public-address'])
>>> output:
>>>
>>> docker: []
>>> limeds: []
>>>
>>>
>>> I expected both docker and limeds to contain one unit, since they are
>>> indeed deployed.
>>>
>>> docker/0*             active       idle   1        54.85.195.24
>>>  30001/tcp,30002/tcp  Ready
>>> limeds/0*             active       idle   1        54.85.195.24
>>>                 Ready. (ibcndevs/limeds)
>>>
>>>
>>> What am I doing wrong?
>>>
>>>
>>>
>>> Kind regards
>>> Merlijn
>>>
>>>
>>> --
>>> Juju mailing list
>>> Juju at lists.ubuntu.com
>>> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailm
>>> an/listinfo/juju
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20170116/92b6b374/attachment.html>


More information about the Juju mailing list