Dave and Jesse,
Thanks again for the code review. Dave, Comments inline.

I have updated the webrev and rerun the tests.
Webrev: https://cr.opensolaris.org/action/browse/caiman/hshaw/7147174_1

Harold

On 03/16/12 12:13, David Marker wrote:
On Mar 9, 2012, at 4:13 PM, Harold Shaw wrote:

Happy Friday,

Can I get a code review for the following bug:

CR: http://monaco.sfbay/detail.jsf?cr=7147174

There is an additional change that isn't noted in the webrev.  I moved line 194 
in target_selection.py left by one tab.  The function, __pretty_print_disk, if 
called with a list of disks would only create a string with the first disk in 
the list.  The return statement needed to be moved out of the loop.

Webrev: https://cr.opensolaris.org/action/browse/caiman/hshaw/7147174/

target_selection.py:

        Over all what you are doing looks right. But I would alter a few things.

        class DiskMatches:
                should inherit from object
                I would make nr_matches a property that just returns 
len(self.matches)
Good idea.  Done
        2988 can be removed if you make nr_matches a property.
Done.
        I believe 3020-3023 is covered later when no match is found at line 
3046. So you don't need it here.
I waffled on this one a bit. The reason that it was there was to short circuit the loop if no candidate disks were found. Since the list will never be that long and because if does simplify the code I have removed the check.
        3038 why not change it to append matched_disk.ctd ?
                This would also simplifty lines 3034-3035 as you don't need the 
list comprehension.
                Just `if matched_disk.ctd not in matched_disk_list:` would be 
enough.
That would be better.  Done

        3046: instead of checking here, you can take advantage of python's 
for/else:
                for candidate_disk in candidate_disk_list:
                        …
                else:
                        # you are guaranteed you didn't break out above so 
don't need to check
                        # if candidate_disk.mapped_disk is None
Done.
        3106 another extra check. you already raised a Selection error at 3048
Done.

test_target_selection_sparc.py:

        test_target_selection_props_1:

                OK so you are testing for the property FIXED.
                
                In order to make expected_xml a little more resilient (and 
since you don't care about size) I would replace the dev_size with a regex.
                That is line 1528:
                        dev_size="\d+secs"/>

                Similarly on 1531 I would change it to:
                        ......<size val="\d+" start_sector="\d+"/>

                If we were testing sizes I would leave them in, but this way if 
somebody changes c99t2d0 in DISCOVERED_TARGETS_XML you tests will still work.
                Also, mostly its ShadowLists job to test sizing things.

        test_target_selection_props_2_1:
                same, you are testing the dev_vendor not a size

        test_target_selection_props_2_2,
        test_target_selection_props_2_with_pools,
        test_target_selection_props_3_2,
        test_target_selection_props_3_3:
                you do specify a size for one of the disks, so you can leave 
its size in. but the other should also move to regex.


test_target_selection_x86.py:

        in general same comments as the sparc version. rip out as many sector 
sizes as you can.
All done.

cheers
-Dave



_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to