All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/4] Extension of migration tests
@ 2020-02-14 14:52 Oksana Vohchana
  2020-02-14 14:52 ` [PATCH v1 1/4] Acceptance test: add address as param Oksana Vohchana
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Oksana Vohchana @ 2020-02-14 14:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: philmd, wainersm, crosa

This series adds a new migration test through RDMA and provides new
functions to it.
The last update by mistake was not provided a full scenario to the EXEC
migration test. One of patch fixed it.

Oksana Vohchana (4):
  Acceptance test: add address as param
  Acceptance test: EXEC migration
  Acceptance test: provides new functions
  Acceptance test: provides to use RDMA transport for migration

 tests/acceptance/migration.py | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

-- 
2.21.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v1 1/4] Acceptance test: add address as param
  2020-02-14 14:52 [PATCH v1 0/4] Extension of migration tests Oksana Vohchana
@ 2020-02-14 14:52 ` Oksana Vohchana
  2020-02-20 18:54   ` Wainer dos Santos Moschetta
  2020-02-14 14:52 ` [PATCH v1 2/4] Acceptance test: EXEC migration Oksana Vohchana
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Oksana Vohchana @ 2020-02-14 14:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: philmd, wainersm, crosa

Provides param address in _get_free_port()
because by default it takes free port only on the localhost

Signed-off-by: Oksana Vohchana <ovoshcha@redhat.com>
---
 tests/acceptance/migration.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
index a8367ca023..e4c39b85a1 100644
--- a/tests/acceptance/migration.py
+++ b/tests/acceptance/migration.py
@@ -52,8 +52,8 @@ class Migration(Test):
         source_vm.qmp('migrate', uri=src_uri)
         self.assert_migration(source_vm, dest_vm)
 
-    def _get_free_port(self):
-        port = network.find_free_port()
+    def _get_free_port(self, address='localhost'):
+        port = network.find_free_port(address=address)
         if port is None:
             self.cancel('Failed to find a free port')
         return port
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v1 2/4] Acceptance test: EXEC migration
  2020-02-14 14:52 [PATCH v1 0/4] Extension of migration tests Oksana Vohchana
  2020-02-14 14:52 ` [PATCH v1 1/4] Acceptance test: add address as param Oksana Vohchana
@ 2020-02-14 14:52 ` Oksana Vohchana
  2020-02-14 18:27   ` Philippe Mathieu-Daudé
  2020-02-20 17:23   ` Wainer dos Santos Moschetta
  2020-02-14 14:52 ` [PATCH v1 3/4] Acceptance test: provides new functions Oksana Vohchana
  2020-02-14 14:52 ` [PATCH v1 4/4] Acceptance test: provides to use RDMA transport for migration Oksana Vohchana
  3 siblings, 2 replies; 10+ messages in thread
From: Oksana Vohchana @ 2020-02-14 14:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: philmd, wainersm, crosa

Improves EXEC migration to run whole test stage

Signed-off-by: Oksana Vohchana <ovoshcha@redhat.com>
---
 tests/acceptance/migration.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
index e4c39b85a1..8209dcf71d 100644
--- a/tests/acceptance/migration.py
+++ b/tests/acceptance/migration.py
@@ -75,3 +75,5 @@ class Migration(Test):
         """
         free_port = self._get_free_port()
         dest_uri = 'exec:nc -l localhost %u' % free_port
+        src_uri = 'exec:nc localhost %u' % free_port
+        self.do_migrate(dest_uri, src_uri)
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v1 3/4] Acceptance test: provides new functions
  2020-02-14 14:52 [PATCH v1 0/4] Extension of migration tests Oksana Vohchana
  2020-02-14 14:52 ` [PATCH v1 1/4] Acceptance test: add address as param Oksana Vohchana
  2020-02-14 14:52 ` [PATCH v1 2/4] Acceptance test: EXEC migration Oksana Vohchana
@ 2020-02-14 14:52 ` Oksana Vohchana
  2020-02-21 18:31   ` Wainer dos Santos Moschetta
  2020-02-14 14:52 ` [PATCH v1 4/4] Acceptance test: provides to use RDMA transport for migration Oksana Vohchana
  3 siblings, 1 reply; 10+ messages in thread
From: Oksana Vohchana @ 2020-02-14 14:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: philmd, wainersm, crosa

Adds functions to check if service RDMA is enabled and gets the interface
where it was configured

Signed-off-by: Oksana Vohchana <ovoshcha@redhat.com>
---
 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
 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
+
+    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
+
 
     def test_migration_with_tcp_localhost(self):
         dest_uri = 'tcp:localhost:%u' % self._get_free_port()
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v1 4/4] Acceptance test: provides to use RDMA transport for migration
  2020-02-14 14:52 [PATCH v1 0/4] Extension of migration tests Oksana Vohchana
                   ` (2 preceding siblings ...)
  2020-02-14 14:52 ` [PATCH v1 3/4] Acceptance test: provides new functions Oksana Vohchana
@ 2020-02-14 14:52 ` Oksana Vohchana
  3 siblings, 0 replies; 10+ messages in thread
From: Oksana Vohchana @ 2020-02-14 14:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: philmd, wainersm, crosa

Adds test for RDMA migration check

Signed-off-by: Oksana Vohchana <ovoshcha@redhat.com>
---
 tests/acceptance/migration.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
index bbd88f8dda..c0a3031e67 100644
--- a/tests/acceptance/migration.py
+++ b/tests/acceptance/migration.py
@@ -94,3 +94,11 @@ class Migration(Test):
         dest_uri = 'exec:nc -l localhost %u' % free_port
         src_uri = 'exec:nc localhost %u' % free_port
         self.do_migrate(dest_uri, src_uri)
+
+    @skipUnless(_if_rdma_enable(None), "Unit rdma.service could not be found")
+    @skipUnless(_get_ip_rdma(None), 'RoCE(RDMA) service or interface not configured')
+    def test_migration_with_rdma_localhost(self):
+        ip = self._get_ip_rdma()
+        free_port = self._get_free_port(address=ip)
+        dest_uri = 'rdma:%s:%u' % (ip, free_port)
+        self.do_migrate(dest_uri)
-- 
2.21.1



^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 2/4] Acceptance test: EXEC migration
  2020-02-14 14:52 ` [PATCH v1 2/4] Acceptance test: EXEC migration Oksana Vohchana
@ 2020-02-14 18:27   ` Philippe Mathieu-Daudé
  2020-02-20 17:23   ` Wainer dos Santos Moschetta
  1 sibling, 0 replies; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-14 18:27 UTC (permalink / raw)
  To: Oksana Vohchana, qemu-devel; +Cc: wainersm, crosa

On 2/14/20 3:52 PM, Oksana Vohchana wrote:
> Improves EXEC migration to run whole test stage
> 
> Signed-off-by: Oksana Vohchana <ovoshcha@redhat.com>

Fixes: 2e768cb682bf

> ---
>   tests/acceptance/migration.py | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
> index e4c39b85a1..8209dcf71d 100644
> --- a/tests/acceptance/migration.py
> +++ b/tests/acceptance/migration.py
> @@ -75,3 +75,5 @@ class Migration(Test):
>           """
>           free_port = self._get_free_port()
>           dest_uri = 'exec:nc -l localhost %u' % free_port
> +        src_uri = 'exec:nc localhost %u' % free_port
> +        self.do_migrate(dest_uri, src_uri)
> 

I was very surprised because commit 2e768cb682bf is not the content I 
reviewed. Apparently what happened here is you sent 2 different series 
with the same subject... I got confused while applying I selected the 
incorrect id:

$ pwclient list 'Acceptance test: provides to use different transport 
for migration'
ID      State        Name
--      -----        ----
11348377 New          Acceptance test: provides to use different 
transport for migration
11348719 New          Acceptance test: provides to use different 
transport for migration
11355797 New          [v2] Acceptance test: provides to use different 
transport for migration
11358447 New          [v2,REPOST] Acceptance test: provides to use 
different transport for migration
11362397 New          [v3,1/2] Acceptance test: provides to use 
different transport for migration
11362399 New          [v3,2/2] Acceptance test: provides to use 
different transport for migration
11362479 New          [v3,1/2] Acceptance test: provides to use 
different transport for migration
11362485 New          [v3,2/2] Acceptance test: provides to use 
different transport for migration

I am sorry I missed that.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 2/4] Acceptance test: EXEC migration
  2020-02-14 14:52 ` [PATCH v1 2/4] Acceptance test: EXEC migration Oksana Vohchana
  2020-02-14 18:27   ` Philippe Mathieu-Daudé
@ 2020-02-20 17:23   ` Wainer dos Santos Moschetta
  1 sibling, 0 replies; 10+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-20 17:23 UTC (permalink / raw)
  To: Oksana Vohchana, qemu-devel; +Cc: philmd, crosa


On 2/14/20 12:52 PM, Oksana Vohchana wrote:
> Improves EXEC migration to run whole test stage
>
> Signed-off-by: Oksana Vohchana <ovoshcha@redhat.com>
> ---
>   tests/acceptance/migration.py | 2 ++
>   1 file changed, 2 insertions(+)

Indeed, with this changes the migration is triggered.

Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

>
> diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
> index e4c39b85a1..8209dcf71d 100644
> --- a/tests/acceptance/migration.py
> +++ b/tests/acceptance/migration.py
> @@ -75,3 +75,5 @@ class Migration(Test):
>           """
>           free_port = self._get_free_port()
>           dest_uri = 'exec:nc -l localhost %u' % free_port
> +        src_uri = 'exec:nc localhost %u' % free_port
> +        self.do_migrate(dest_uri, src_uri)



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 1/4] Acceptance test: add address as param
  2020-02-14 14:52 ` [PATCH v1 1/4] Acceptance test: add address as param Oksana Vohchana
@ 2020-02-20 18:54   ` Wainer dos Santos Moschetta
  0 siblings, 0 replies; 10+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-20 18:54 UTC (permalink / raw)
  To: Oksana Vohchana, qemu-devel; +Cc: philmd, crosa

Hi Oksana,

On 2/14/20 12:52 PM, Oksana Vohchana wrote:
> Provides param address in _get_free_port()
> because by default it takes free port only on the localhost
>
> Signed-off-by: Oksana Vohchana <ovoshcha@redhat.com>
> ---
>   tests/acceptance/migration.py | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tests/acceptance/migration.py b/tests/acceptance/migration.py
> index a8367ca023..e4c39b85a1 100644
> --- a/tests/acceptance/migration.py
> +++ b/tests/acceptance/migration.py
> @@ -52,8 +52,8 @@ class Migration(Test):
>           source_vm.qmp('migrate', uri=src_uri)
>           self.assert_migration(source_vm, dest_vm)
>   
> -    def _get_free_port(self):
> -        port = network.find_free_port()
> +    def _get_free_port(self, address='localhost'):
> +        port = network.find_free_port(address=address)

Looks good to me, but:

- This patch is out of order, it should be followed by patches 03 and 04.

- You could have described in the cover letter (or in the commit) your 
intention with this change.

Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

Thanks!

- Wainer

>           if port is None:
>               self.cancel('Failed to find a free port')
>           return port



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 3/4] Acceptance test: provides new functions
  2020-02-14 14:52 ` [PATCH v1 3/4] Acceptance test: provides new functions Oksana Vohchana
@ 2020-02-21 18:31   ` Wainer dos Santos Moschetta
  2020-02-24 16:23     ` Oksana Voshchana
  0 siblings, 1 reply; 10+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-21 18:31 UTC (permalink / raw)
  To: Oksana Vohchana, qemu-devel; +Cc: philmd, crosa

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 <ovoshcha@redhat.com>
> ---
>   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

>   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?


> +
> +    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.

Thanks!

- Wainer

>   
>       def test_migration_with_tcp_localhost(self):
>           dest_uri = 'tcp:localhost:%u' % self._get_free_port()



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v1 3/4] Acceptance test: provides new functions
  2020-02-21 18:31   ` Wainer dos Santos Moschetta
@ 2020-02-24 16:23     ` Oksana Voshchana
  0 siblings, 0 replies; 10+ messages in thread
From: Oksana Voshchana @ 2020-02-24 16:23 UTC (permalink / raw)
  To: Wainer dos Santos Moschetta
  Cc: Philippe Mathieu-Daudé, qemu-devel, Cleber Rosa

[-- Attachment #1: Type: text/plain, Size: 3011 bytes --]

Hi Wainer,
Thanks for review

On Fri, Feb 21, 2020 at 8:31 PM Wainer dos Santos Moschetta <
wainersm@redhat.com> 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 <ovoshcha@redhat.com>
> > ---
> >   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!

[-- Attachment #2: Type: text/html, Size: 4473 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-02-24 16:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-14 14:52 [PATCH v1 0/4] Extension of migration tests Oksana Vohchana
2020-02-14 14:52 ` [PATCH v1 1/4] Acceptance test: add address as param Oksana Vohchana
2020-02-20 18:54   ` Wainer dos Santos Moschetta
2020-02-14 14:52 ` [PATCH v1 2/4] Acceptance test: EXEC migration Oksana Vohchana
2020-02-14 18:27   ` Philippe Mathieu-Daudé
2020-02-20 17:23   ` Wainer dos Santos Moschetta
2020-02-14 14:52 ` [PATCH v1 3/4] Acceptance test: provides new functions Oksana Vohchana
2020-02-21 18:31   ` Wainer dos Santos Moschetta
2020-02-24 16:23     ` Oksana Voshchana
2020-02-14 14:52 ` [PATCH v1 4/4] Acceptance test: provides to use RDMA transport for migration Oksana Vohchana

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.