Hi Willian
I totally agree with your comments
I'll move those functions outside the class
Let me update and repost the patch
Thanks

On Fri, Mar 20, 2020 at 6:22 PM Willian Rampazzo <wramp...@redhat.com>
wrote:

> Hi Oksana,
>
> On Fri, Mar 20, 2020 at 12:15 PM Oksana Vohchana <ovosh...@redhat.com>
> wrote:
> >
> > Provides new functions related to the rdma migration test
> > Adds functions to check if service RDMA is enabled and gets
> > the ip address on the interface where it was configured
> >
> > Signed-off-by: Oksana Vohchana <ovosh...@redhat.com>
> > ---
> >  tests/acceptance/migration.py | 30 ++++++++++++++++++++++++++++++
> >  1 file changed, 30 insertions(+)
> >
> > diff --git a/tests/acceptance/migration.py
> b/tests/acceptance/migration.py
> > index e4c39b85a1..a783f3915b 100644
> > --- a/tests/acceptance/migration.py
> > +++ b/tests/acceptance/migration.py
> > @@ -11,12 +11,17 @@
> >
> >
> >  import tempfile
> > +import json
> >  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.network.interfaces import NetworkInterface
> > +from avocado.utils.network.hosts import LocalHost
> > +from avocado.utils import service
> > +from avocado.utils import process
> >
> >
> >  class Migration(Test):
> > @@ -58,6 +63,31 @@ 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
>
> You can just `return rdma_stat.status('rdma')` here! Also, as you are
> not using any of the class attributes or methods, if you make this
> method static, you don't need to call it with `None` as you did on
> patch 3 of this series.
>
> > +
> > +    def _get_interface_rdma(self):
> > +        cmd = 'rdma link show -j'
> > +        out = json.loads(process.getoutput(cmd))
> > +        try:
> > +            for i in out:
> > +                if i['state'] == 'ACTIVE':
> > +                    return i['netdev']
> > +        except KeyError:
> > +            return None
>
> Same comment about making this method static.
>
> Actually, if you are not using any of the attributes or methods from
> the Migration class on these two methods, I think you can define them
> as functions, outside of the Class. Does it make sense?
>
> > +
> > +    def _get_ip_rdma(self, interface):
> > +        local = LocalHost()
> > +        network_in = NetworkInterface(interface, local)
> > +        try:
> > +            ip = network_in._get_interface_details()
> > +            if ip:
> > +                return ip[0]['addr_info'][0]['local']
> > +        except:
> > +            self.cancel("Incorrect interface configuration or device
> name")
> > +
>
> If you change the logic a bit and raise an exception here, instead of
> doing a `self.cancel`, you can also make this method static, or move
> it outside of the class. The cancel can be handled in the test, with
> the exception raised here.
>
> >
> >      def test_migration_with_tcp_localhost(self):
> >          dest_uri = 'tcp:localhost:%u' % self._get_free_port()
> > --
> > 2.21.1
> >
> >
>
> Let me know if the comments do not make sense.
>
> Willian
>
>

Reply via email to