[ovirt-devel] [vdsm][oVirt 4.0] trimming down vm.py, stage 1

Francesco Romani fromani at redhat.com
Mon Nov 30 09:49:58 UTC 2015


----- Original Message -----
> From: "Francesco Romani" <fromani at redhat.com>
> To: devel at ovirt.org
> Sent: Tuesday, November 24, 2015 11:51:10 AM
> Subject: [ovirt-devel] [vdsm][oVirt 4.0] trimming down vm.py, stage 1

[...]
> We have roughly five weeks left until the end of the year.
> Sounds like a good timespan for the first stage, and I'm aiming for go down
> under
> the 4000 line mark.
> 
> So we have roughly 1200 lines to eliminate somehow.
> 
> This is the initial plan I'm thinking off, in expected increasing difficulty
> level, from easies to hardest:

And here's the first status update

> 1. LiveMergeCleanupThread:
> Chance to break things: minimal
> - roughly 120 lines (10% of the goal)
> - can be moved verbatim (cut/paste) elsewhere, like vdsm/virt/livemerge.py,
>   fixing only import paths.

Patch ready and not published. I was thinking about moving more code in the newly
created livemerge.py, but not sure about the partitioning. I'll just push
the patch so we can discuss there.

> 2. the findDrive* family of functions:
> Chance to break things: minimal/very low
> - roughly 50 lines (~4% of the goal)
> - can be moved with minimal changes elsewhere, like
> vdsm/virt/storage/????.py,

Done in https://gerrit.ovirt.org/#/c/49209/

> 3. the getConf* faimily of functions:
> Chance to break things: medium-to-high in the 3.x branch, low on 4.x because
> we drop backward compat.
> - roughly 110 lines (~9% of the goal)
> - just drop them for 4.0!
> - alternatively, need to figure out a proper place, maybe a new module?

Just dropped in https://gerrit.ovirt.org/#/c/49173/

The patch is quite large but simple, in the end all the code is guarded
by a couple of bug if()s.

The only concern is we break compatibility with older Engines, so maybe
merge this later in the development cycles.
Except for maybe some glitches, I don't expect further work here (of course
except verification!)

> 4. the Devices/VM setup bits
> All scatthered through vm.py (e.g. _buildDomainXML, DeviceMapping table)
> Chance to break things: medium-to-low, depends on individual patches
> - all summed up, roughly 200 lines (~18% of the goal)
> - need serious cleanup
> - no definite plan
> - mostly is cut/paste or transform Vm methods into functions

Not tackled yet
 
> 5. the getUnderlying* familiy of functions:
> Chance to break things: low (maybe medium on some cases, to lean on the safe
> side)
> - roughly 550 lines (~46% of the goal)
> - easy to test (just run vms!)
> - can be moved in the devices/ subpackage with some changes.
> - require further work in the area to properly integrate this code in the
> device objects
> - more work is planned in this area, including move from minidom to
> ElementTree

Not tackled yet

Bests,

-- 
Francesco Romani
RedHat Engineering Virtualization R & D
Phone: 8261328
IRC: fromani



More information about the Devel mailing list