Tempests can be used on deployments without nova-compute, testing only
control plane APIs. Fallback to a value when no nova-compute units is
found.
Signed-off-by: Guillaume Boutry <guillaume.boutry@canonical.com>
This adds basic LXD support that allows adding second NIC to
instances hosting networking charms as well as populating said
charms configuration with the second NIC MAC address.
Signed-off-by: Frode Nordahl <fnordahl@ubuntu.com>
The `[image]` section and `http_image` configuration key is
optional, only populate it if the caller has populated the
`TEST_SWIFT_IP` environment variable.
Signed-off-by: Frode Nordahl <fnordahl@ubuntu.com>
At present this value is hard coded, which may cause test failures
on deployment with different number of compute nodes.
Signed-off-by: Frode Nordahl <fnordahl@ubuntu.com>
Perform repetitive task in loop on input data rather than
repeating the same call three times in the code.
Signed-off-by: Frode Nordahl <fnordahl@ubuntu.com>
magnum-tempest-plugin since commit[0] is using ast.literal_eval() to
parse the value set in [magnum].labels, so the formatting needs to be a
Python dict.
This is an example of how the string needs to look like to make the
parser happy:
>>> import ast
>>> ast.literal_eval('{"a": "1:1"}')
{'a': '1:1'}
[0] 2fe075ae78 (diff-8e9d4d1beb73d502d61e14564c76d54acf855bf8)
Fixes the formatting of the labels configuration key, error raised with
the current formatting:
Traceback (most recent call last):
File "/mnt/git/charmed-openstack-tester/.tox/func-target/lib/python3.8/site-packages/magnum_tempest_plugin/tests/api/base.py", line 39, in setUpClass
config.Config.setUp()
File "/mnt/git/charmed-openstack-tester/.tox/func-target/lib/python3.8/site-packages/magnum_tempest_plugin/common/config.py", line 187, in setUp
cls.set_labels(config)
File "/mnt/git/charmed-openstack-tester/.tox/func-target/lib/python3.8/site-packages/magnum_tempest_plugin/common/config.py", line 162, in set_labels
cls.labels = ast.literal_eval(CONF.magnum.labels)
File "/usr/lib/python3.8/ast.py", line 59, in literal_eval
node_or_string = parse(node_or_string, mode='eval')
File "/usr/lib/python3.8/ast.py", line 47, in parse
return compile(source, filename, mode, flags,
File "<unknown>", line 1
container_infra_prefix:10.245.164.190:5000
^
SyntaxError: invalid syntax
In order to ensure that an object that contains other objects that are
called (e.g. the VolumeManager object on the Cinder client object), the
ObjectRetrierWraps class needs to more agressively wrap non builtin
classes.
It wasn't capturing member variables on the wrapped object that would
then be used to make the call; thus, wrap those.
This also disables (temporarily) the long running cinder backup test
deletion whilst checking whether retries are the problem.
In order to ensure that an object that contains other objects that are
called (e.g. the VolumeManager object on the Cinder client object), the
ObjectRetrierWraps class needs to more agressively wrap non builtin
classes.
It wasn't capturing member variables on the wrapped object that would
then be used to make the call; thus, wrap those.
This also disables (temporarily) the long running cinder backup test
deletion whilst checking whether retries are the problem.