Jack,

The fix looks OK to me.


thanks,
-ethan


On 09/19/11 11:31, Jack Schwartz wrote:
Hi Darren and Sue.

On 09/19/11 06:26 AM, Darren Kenny wrote:
Looks cleaner alright :)

With respect to Sue's comments on testing for None, it would be more correct to say that we're "testing for None or empty string" with that test. If it was just None we were testing for then "is None" would be more correct in the if statement.
I should make one more small change, to restore allowing an empty string for a value. Empty string paths would still be rejected.

I have updated the code for both set and add to look like this:

# Explicitly test for a None value as etree accepts it and we do not.
-        # Test other values for consistency.
-        if not path or not value:
+        # "" value is OK.  A None or "" path is not accepted.
+        if not path or value is None:
             raise milib.MimInvalidError(milib.ERR_ARG_INVALID)

Delta webrev with just this change is here:
https://cr.opensolaris.org/action/browse/caiman/schwartz/7090604_4_3/webrev/

Please let me know if you have any questions/comments about this.

    Thanks,
    Jack





Thanks,

Darren.

On 16/09/2011 23:05, Jack Schwartz wrote:
Hi everyone.

During the review period I came to find a flaw in the code, and had to revise some of it. Please see the bug report for details. This review accounts for
this plus all other relevant code review comments previously received.

Hopefully this is the last update to this code review. I have retested this code and it now works for the cases it failed before, as well as for the ones which passed. See below for testing info. It is also 15 lines simpler than before.

webrev vs slim_source:
https://cr.opensolaris.org/action/browse/caiman/schwartz/7090604_3

webrev vs previous webrev:
https://cr.opensolaris.org/action/browse/caiman/schwartz/7090604_3_2

I would like to ask Ethan and Darren to re-review this code as they are most familiar with it at this point, and for Dave to bless it so that it gets in
before 175 closes.

     Thanks,
     Jack

P.S. Note: due to curtailment of new messages at this point, I could only reuse the error messages I already had. The new method in process_dtd.py could use a better one, and I will be filing a bug to fix this later once this wad is
approved for push.

P.P.S. New passing "aimanifest add" cases with the following paths:
   disk
   - Errs due to ambiguity of possible parent paths
   disk/disk_name@name
   - Errs due to ambiguity of possible parent paths
   target
   - Succeeds when manifest doesn't already have a target.
   - Errs when manifest already has a target.
   target/disk/disk_name@name
   - succeeds.  Adds new disk each time
   zvol@action
   - succeeds.  Adds a new zvol to the target/logical each time
   badname
   - Errs out
   disk/badname
   - Errs out
I also regression tested other cases which used to work, including:
- simple absolute cases such as:
   /auto_install/ai_instance/software/source/publisher/origin
- non-simple absolute cases such as:

/auto_install/ai_instance[@name=default]/software/software_data[@action=install]/name
- non-simple, non-absolute cases such as:
ai_instance[@name=default]/software/software_data[@action=install]/name
   software/software_data[@action=install]/name



On 09/14/11 07:59 PM, Jack Schwartz wrote:
Hi everyone.

Seeking two reviews by Thursday COB and Dave's approval please. I'd like to
request Ethan be one of the reviewers.

Here is a code review that fixes a hole in aimanifest path processing.
Without this bugfix,
   aimanifest add diskname@name c0t0d0s0
or other references to non-absolute paths which have no values in them fails.

webrev:
https://cr.opensolaris.org/action/browse/caiman/schwartz/7090604_1

bug report:
http://monaco.us.oracle.com/detail.jsf?cr=7090604

While it introduces a new method to find the path leading to the referenced element, all code introduced by this fix affects only the failing cases;
codepaths of working cases are not affected.*

* While in there, I added some additional args checking for set(), get() and add(), which I have tested but can remove if it makes the difference between
being allowed in or not.

     Thanks for your time,
     Jack


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

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

Reply via email to