On Fri, Feb 21, 2020 at 8:31 PM Wainer dos Santos Moschetta <
address@hidden> wrote:
Hi Oksana,
On 2/14/20 12:52 PM, Oksana Vohchana wrote:
> Adds functions to check if service RDMA is enabled and gets the interface
> where it was configured
>
> Signed-off-by: Oksana Vohchana <address@hidden>
> ---
> tests/acceptance/migration.py | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
> index 8209dcf71d..bbd88f8dda 100644
> --- a/tests/acceptance/migration.py
> +++ b/tests/acceptance/migration.py
> @@ -11,12 +11,16 @@
>
>
> import tempfile
> +import re
> +import netifaces
Since netifaces isn't a standard Python library that import might fail.
The tests dependencies are listed in tests/requirements.txt, and
installed in the environment created by `make check-acceptance`. If you
want to ensure the test behaves well even when executed manually (i.e.
not via `make check-acceptance`), you can add runtime checks as can be
seen in tests/acceptance/machine_m68k_nextcube.py
Thanks, a "runtime checks" is a good approach
I'll improve it
> from avocado_qemu import Test
> from avocado import skipUnless
>
> from avocado.utils import network
> from avocado.utils import wait
> from avocado.utils.path import find_command
> +from avocado.utils import service
> +from avocado.utils import process
>
>
> class Migration(Test):
> @@ -58,6 +62,19 @@ class Migration(Test):
> self.cancel('Failed to find a free port')
> return port
>
> + def _if_rdma_enable(self):
> + rdma_stat = service.ServiceManager()
> + rdma = rdma_stat.status('rdma')
> + return rdma
Above function is used on patch04, but actually I don't think it needs
to check this service for RoCE. It would be needed if it was using the
rxe_cfg to configure the rdma link. Or am I missing something?
The function _if_rdma_enable() checks if RDMA service enabled in the system it does not depend on wich utils we will use to check if some network configuration present (rdma or rxe_cfg)
> +
> + def _get_ip_rdma(self):
> + get_ip_rdma = process.run('rdma link show').stdout.decode()
> + for line in get_ip_rdma.split('\n'):
> + if re.search(r"ACTIVE", line):
> + interface = line.split(" ")[-2]
> + ip = netifaces.ifaddresses(interface)[netifaces.AF_INET][0]['addr']
> + return ip
> +
I suggest that it explicitly returns None if none is found.
Ok, I agree
I'll improve it
Thanks!
- Wainer
>
> def test_migration_with_tcp_localhost(self):
> dest_uri = 'tcp:localhost:%u' % self._get_free_port()
Thanks!