Danek Duvall wrote:
> On Thu, Apr 03, 2008 at 09:16:11PM -0600, Tim Knitter wrote:
>
>>> bootenv.py:
>>>
>>> - Please follow the indentation used everywhere else -- eight spaces.
>> Yes I noticed this throughout the pkg stuff. Why spaces instead of tabs?
>> spaces are tiring. I changed them to be consistent.
>
> Ask Stephen. I don't know what editor you use, but if you use vim:
>
> :set ai sw=8 et
>
> will give you the basics without a lot of pain. I'm not sure how to coerce
> /bin/vi to expand tabs, but there's little reason to use it at this point,
> anyway. Bart can probably give you the right settings for emacs.
>
>>> [ 70's druggie code fantasy elided ]
>> Is this a requirement? I may not have time to implement this.
>
> I wouldn't be happy letting it into the gate as it is. I think it's pretty
> straightforward to implement, and I think pretty close to what Krister had
> asked you to do already, though he'd left more to the imagination.
>
OK I'll implement this before the end of the day tomorrow.
>>> - line 30: are these constants defined in libbe, too? If so, I'd
>>> extract
>>> them from that, rather than having to keep two lists in sync.
>>>
>> Yes there currently defined like:
>>
>> #define BE_ATTR_MOUNTED "mounted"
>>
>> So I don't think there retrievable unless you know how to extract them?
>
> They should be properties on the module: libbe.be_name, and so on.
yeah.
>
>>> - line 76: why is a "beList" a dictionary?
>> Seemed the most appropriate type to use when creating the C wrapper and
>> extracting values passed by be_list. So all BE keys and values are one dict
>> entry and another BE's keys and values are another dict entry... Here's an
>> example of the dict:
>>
>> [{'orig_be_name': 'BE3', 'space_used': 108032L, 'active': False,
>> 'mountpoint': 'legacy', 'active_boot': False, 'mounted': False,
>> 'orig_be_pool': 'rpool'}, {'status': False, 'mountpoint': 'legacy',
>> 'mounted': False, 'space_used': 18432L, 'dataset': 'BE3/opt'},
>> {'orig_be_name': 'BE1', 'space_used': 1924565504L, 'active': False,
>> 'mountpoint': '/tt', 'active_boot': True, 'mounted': True, 'orig_be_pool':
>> 'rpool'}, {'status': False, 'mountpoint': '/tt/opt', 'mounted': False,
>> 'space_used': 18432L, 'dataset': 'BE1/opt'}, {'date': 1207154668L,
>> 'policy': 'static', 'snap_name': '[EMAIL PROTECTED]'}]
>>
>> So once I find BE3 I know I know all the other keys and values relate to
>> that BE.
>
> So instead of a list of dicts, why not a dict of dicts, mapping a BE's name
> to its key/value dict? Though I'm a bit confused by your example, given
Seemed a list of dicts made sense given what was returned by libbe:be_list.
> the dicts have wildly differing keys.
Those are BE dicts, dataset dicts and snapshot dicts.
>
> As with the class restructuring, I think these changes need to be made.
> The loop you have is ugly and unnecessary.
>
The install gate is closed, I think, or the last I heard, so any changes
in libbe won't be made by tomorrow.
> Whether it has to get done for tomorrow, I dunno. I'll let Stephen tell
> you that you get the time you need to make it right. I'd say make the
> effort, but if it doesn't make it in before code freeze, then make sure
> it's the first thing you work on afterwards.
ok
>
>>> - I'm a bit confused by why you have the if clause on 91 at all. If I'm
>>> reading it correctly, if we run across the active BE, we end up
>>> ignoring the fact that we were asked to create an object based on
>>> "root". Is that correct? Why is that right?
>> hmm. your right. if root = '/' then be_mountpoint = "legacy" so I needed to
>> check be_active for the '/' case. However if we run across '/' before the
>> intended target of the -R argument the this is wrong. Good catch!
>
> This is hardcoding some scarily broken zfs behavior. Please provide a
> comment explaining that be_mountpoint will be "legacy" when the be in
> question is the active BE mounted at /. I hope that the ZFS folks correct
> this. If they aren't going to, it's probably worthwhile having your code
> go figure out what the real mountpoints are.
Yeah I agree. The "legacy" notation will eventually go away so my
changes need to be dynamic enough to deal with it now and later.
>
>>> - line 192: Don't we need to call bootadm for a non-live BE, too?
>> The design was to only activate the live BE since it seemed less intrusive.
>
> I'm not talking about activation, but just calling bootadm. The bootadm
> call isn't part of activation in the live BE case; why should it be in the
> non-live case?
>
I agree. I'll put it in.
Thanks
Tim
> Danek
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss