Change in vdsm[master]: util: fix execCmd to accept tuples

dkuznets at redhat.com dkuznets at redhat.com
Sat Mar 29 13:50:23 UTC 2014


Dima Kuznetsov has posted comments on this change.

Change subject: util: fix execCmd to accept tuples
......................................................................


Patch Set 4:

(4 comments)

http://gerrit.ovirt.org/#/c/26070/4/lib/vdsm/utils.py
File lib/vdsm/utils.py:

Line 53: import threading
Line 54: import time
Line 55: import zombiereaper
Line 56: 
Line 57: import cpopen
> I really like this change, in its own patch.
Done
Line 58: from .config import config
Line 59: from . import constants
Line 60: 
Line 61: # Buffsize is 1K because I tested it on some use cases and 1K was fastest. If


Line 652:     IMPORTANT NOTE: the new process would receive `deathSignal` when the
Line 653:     controlling thread dies, which may not be what you intended: if you create
Line 654:     a temporary thread, spawn a sync=False sub-process, and have the thread
Line 655:     finish, the new subprocess would die immediately.
Line 656:     """
> Too complicated - to support tuples (and iteratables) we can simply do:
you're right, for some reason I though that chain would be faster but surprisingly it is about twice as slower after a closer look.
Line 657:     if ioclass is not None:
Line 658:         cmd = command
Line 659:         command = [constants.EXT_IONICE, '-c', str(ioclass)]
Line 660:         if ioclassdata is not None:


http://gerrit.ovirt.org/#/c/26070/4/tests/utilsTests.py
File tests/utilsTests.py:

Line 469: 
Line 470:     def __init__(self, *args, **kwargs):
Line 471:         TestCaseBase.__init__(self, *args, **kwargs)
Line 472: 
Line 473:         self.patch = Patch([(cpopen, 'CPopen', self.patchedCPopen),
> strike the last part - touching a root-owned file would succeed anyway, if 
ok
Line 474:                             (utils, 'AsyncProc', self.patchedAsyncProc)])
Line 475: 
Line 476:     def setUp(self):
Line 477:         self.patch.apply()


Line 476:     def setUp(self):
Line 477:         self.patch.apply()
Line 478: 
Line 479:     def tearDown(self):
Line 480:         self.patch.revert()
> You don't need to implement setUp and tearDown - use MonkeyClass instead.
Done
Line 481: 
Line 482:     def _execCmdReturnComm(self, *args, **kwargs):
Line 483:         proc = utils.execCmd(*args, **kwargs)
Line 484:         proc.wait()


-- 
To view, visit http://gerrit.ovirt.org/26070
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I8d1269d9a26b1fef1552976ae626cf4596471283
Gerrit-PatchSet: 4
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dima Kuznetsov <dkuznets at redhat.com>
Gerrit-Reviewer: Antoni Segura Puimedon <asegurap at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Dima Kuznetsov <dkuznets at redhat.com>
Gerrit-Reviewer: Nir Soffer <nsoffer at redhat.com>
Gerrit-Reviewer: Saggi Mizrahi <smizrahi at redhat.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei at redhat.com>
Gerrit-Reviewer: automation at ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes


More information about the vdsm-patches mailing list