Dan Kenigsberg has posted comments on this change. Change subject: v2v: Convert VM from external source to Data Domain ......................................................................
Patch Set 7: Code-Review-1 (4 comments) http://gerrit.ovirt.org/#/c/37509/7/vdsm/v2v.py File vdsm/v2v.py: Line 196: self._vmProperties['vmName']) Line 197: Line 198: logging.info('import vm, (jobId %s) started, cmd: %r', self._job_id, Line 199: cmd) Line 200: proc = subprocess.Popen(cmd, env={'LIBGUESTFS_BACKEND': 'direct'}, _handle_process_input() reads the process's output. But the process itself can (and should!) be created using execCmd((_VIRT_V2V, "-ic", self._uri, ...), deathSignal=sigkill) otherwise we must take care of funny character in commandline, and track stale processes on vdsm crash. Line 201: shell=True, Line 202: stdout=subprocess.PIPE, Line 203: stderr=subprocess.PIPE) Line 204: Line 219: Line 220: def _handle_process_input(self, proc): Line 221: re_copy_disk = re.compile(r'.*(Copying disk \d+/\d+).*') Line 222: while not self._abort: Line 223: line = proc.stdout.readline() it seems that _handle_process_input() actually parses the *output* of v2v. I'd love to see a unit test for this function. It would also be much more readable if it is made a module function, with a clear input and output, and no reference to "self". Line 224: Line 225: if line == '': Line 226: self._handle_process_errors(proc) Line 227: break Line 298: return ' '.join(images) Line 299: Line 300: def _get_domain_path(self): Line 301: ''' we are using the first disk since we are using only one storage Line 302: domain so any disk can be used for getting the domain path ''' Can you help me here? What is the output of virt-v2v? where does it place the images of disks? Where would it place the non-first disks? What is it's target? Doesn't it have to be an export domain? If virt-v2v is expect to write the images directly onto the storage domain - how can it guess the imageUUID and volUUID? who prepare that storage area? Line 303: disk = self._vmProperties['disks'][0] Line 304: drive = {'device': 'disk', Line 305: 'poolID': self._vmProperties['poolID'], Line 306: 'domainID': self._vmProperties['domainID'], Line 306: 'domainID': self._vmProperties['domainID'], Line 307: 'imageID': disk['imageID'], Line 308: 'volumeID': disk['volumeID']} Line 309: Line 310: volPath = self._cif.prepareVolumePath(drive) Please call self._cif.irs.prepareImage() directly, without the virt-only wrapper. Line 311: try: Line 312: return volPath.split('/images/')[0] Line 313: finally: Line 314: self._cif.teardownVolumePath(drive) -- To view, visit http://gerrit.ovirt.org/37509 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I34bd86d5a87ea8c42113c4a732f87ddd4ceab9ea Gerrit-PatchSet: 7 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Shahar Havivi <[email protected]> Gerrit-Reviewer: Dan Kenigsberg <[email protected]> Gerrit-Reviewer: Federico Simoncelli <[email protected]> Gerrit-Reviewer: Francesco Romani <[email protected]> Gerrit-Reviewer: Michal Skrivanek <[email protected]> Gerrit-Reviewer: Nir Soffer <[email protected]> Gerrit-Reviewer: Piotr Kliczewski <[email protected]> Gerrit-Reviewer: Saggi Mizrahi <[email protected]> Gerrit-Reviewer: Shahar Havivi <[email protected]> Gerrit-Reviewer: Yaniv Bronhaim <[email protected]> Gerrit-Reviewer: [email protected] Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
