Hi Neil, Nick, Ed et al,

thanks for your review. I have fixed the typos found by Neil. In 
addition a new problem got identified, where I would like an additional 
review - the fix is again very small. The webrev is updated to contain 
the fix for the new CR as well:

http://cr.opensolaris.org/~frueauf/colorado-1-ha-ipkg-zone-6812924-6814263/

The additional problem is with the validate method for the sczsmf component:

If a native non-global zone is getting created and installed on Solaris 
10 and Solaris Express (aka Nevada), it will inherit the locales 
installed within the global zone. So while the default locales do not 
need to be set to match between global zone and non.global zones, the 
locale itself would be
available.
OpenSolaris does not have a native brand-type - the default there is the
ipkg brand type. If a ipkg non-global zone is getting created and installed
on OpenSolaris, it will not inherit the locales installed within the
global zone. Instead it has the very basic set (like C, POSIX), but none
else. Even the locale command is not getting installed.
On such a default installation, if you perform

zlogin <zonename> <command>

you will see a message send to stderr like:

en_US.UTF-8: unknown locale

if en_US.UTF-8 is the default locale within the global zone.
And in most cases stderr is not being processed. But within the validate 
method for sczsmf there is one check to see if the SMF service being 
provided in the config file exists and all of the services it depends on 
are online:

[...]        if STATE=`${ZLOGIN} ${ZONE} svcs -Hd ${SERVICE} 2> 
${LOGFILE} | /usr/bin/awk '{if ($1 != "online") print $3 " which is " $1}'`
         then
            if [ -s "${LOGFILE}" ]
            then
                 # e.g. svcs: Pattern 'X' doesn't match any instances
                 log_message error validate
                 rc_validate=1
            fi
[...]

And here the output to stderr is captured and evaluated. Normally it is 
expected
to be empty - if it is not it triggers validate to fail.Since the zlogin 
will always create the "unknown locale" message to stderr,
the code will always think the provided SMF service does not exist and
error out.

I would appreciate a quick review so that I could still be able to 
putback later today.

Greets
       Thorsten

Neil Garthwaite wrote:
> Hi Thorsten,
> 
> Good explanation, just some minor nits.
> 
> line 930 retreive should be retrieve
> line 931 Therefor should be Therefore
> 
> Also the blog link didn't work, instead I used http://blogs.sun.com/stw/
> 
> Regards
> Neil
> 
> On 4 Mar 2009, at 23:05, Thorsten Frueauf wrote:
> 
>> Hi,
>>
>> please review the following webrev:
>> http://cr.opensolaris.org/~frueauf/colorado-1-ha-ipkg-zone-6812924/
>>
>> The sczbt components allows to make an IP configured through a 
>> SUNW.LogicalHostname (LH) resource available within the non-global 
>> zone, after the zone is booting.
>>
>> This is done by setting the zone flag with ifconfig on the 
>> corresponding adapter, which hosts the IP for the LH, when the zone is 
>> booting, and removing that flag before the zone is halted.
>>
>> Clearview did change the way IPMP works. Details can be found at
>> http://www.opensolaris.org/os/project/clearview/ipmp-highlevel-design.pdf
>>
>> and a very good blog with many example output:
>> http://blogs.sun.com/stw/entry/ipmp_re_architecture_is_delivered
>>
>> The sczbt functions file does implement the get_ipmp_state() function. 
>> In the lack of a better CLI API (pre Clearview), it uses scstat to 
>> retrieve the adapter list for a given IPMP group, for which the LH is 
>> configured, and tries to determine the adapter where the IP is 
>> currently configured on, to then set the zone flag.
>>
>> scstat does not display any Clearview information. Clearview will 
>> configure the IP not on any physical adapter, instead it uses the new 
>> ipmp<number> interface.
>>
>> The current code does not work with that logic and needs modification, 
>> which is tracked with CR 6812924.
>>
>> Clearview did introduce a new command line interface: /sbin/ipmpstat
>>
>> The option -g will output information that can be used to determine 
>> the ipmp interface for which the zone flag needs to get set. Example:
>>
>> # ipmpstat -g
>> GROUP       GROUPNAME   STATE     FDT       INTERFACES
>> ipmp0       sc_ipmp0    ok        --        e1000g0
>>
>> The fix has been verified with OpenSolaris build 108. Regression test 
>> has been done on OpenSolaris 2008.11 (build 101a), which has no 
>> Clearview.
>>
>> The review will timeout at Friday, 6. March, COB MET.
>>
>> Greets
>>      Thorsten

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Sitz der Gesellschaft:
   Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten
   Amtsgericht Muenchen: HRB 161028
   Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer
   Vorsitzender des Aufsichtsrates: Martin Haering
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to