a couple comments below are very nit-picky, so they are prefixed with
"ffti" and you should "feel free to ignore" them.  :)

----------
general:

- since the -p output doesn't match the normal output, -p should not
  imply -H.  (otherwise how are people supposed to know what the columns
  are without reading the source?)

---------
src/brand/common.ksh

- comment nit: are you missing something before "and" here?
        publisher name which can be and URL type which

- nit: our normal shell style for "if" statements has the "then" part on
  the same line as the "if".  ie:
        if [ ... ]; then

- get_publisher_attr_args(): i'm really surprised that creating a
  sub-block with "{ ... }" works.  i've never seen that syntax before
  (outside function declerations and variable references) and it doesn't
  work in other shells like sh, ksh88, and bash.  if you needed a
  sub-block you should use "( ... )", but in this case there is no need
  for a sub-block.

- ffti: personally, i think that using "'"$var"'" with nawk scripts and
  shell veriables is kinda clunky.  did you know that nawk supports
  parameters?  so instead of doing:
        nawk '$0 == "'"$var"'" {...}'
  you could do:
        nawk '$0 == var {...}' var="$var"

---------
src/brand/pkgcreatezone

- could you move the following comment:
        # --no-refresh is used here so that update operations can be
        # coalesced.
  closer to the following code:
        $PKG set-publisher --no-refresh
  right now they seem a little spread apart.

- why bother with SAVE_PKG_IMAGE?  why not just reset PKG_IMAGE to
  ZONEROOT?

- looking at this code i'm concerned that it will only work if the gz is
  running the latest bits from the repo.  specifically, if "entire" is
  not installed in the gz, then you install SUNWcsd/SUNWcs but you don't
  put any version constraints on those packages.  so imagine if you had a
  system running snv_128, then you remove "entire" and add the on-ips
  publishers.  then you try to install a zone.  then what syncs
  SUNWcsd/SUNWcs with the global zone?

  or another example.  if a system is already running on-ips nightly
  bits.  then the on-ips nightly repo is updated with new bits.  then if
  you try to install a zone, you'll happily install bits that aren't
  in sync with the global zone, right?

  it seems to me that when installing zones you need to add explicit
  version syncs (which include timestamp granularity) for the following
  packages:

        SUNWcsd/SUNWcs
        SUNWips

  if you do that, then since those packages depend on their
  incorporations you'll also sync the ON and IPS gate incorporations.

  doing this won't sync every ON/IPS package at a timestamp granularity
  (which is ultimately what we need), but it wouldn't be worse that what
  we have today.

---------
src/client.py

- ffti: i've never seen this syntax before:

        "%(publisher)s\t%(sticky)s\t\ %(preferred)s\t%(enabled)s" % field_dict

  and i think it's kinda cool that you can do this with python.  but in
  this case the resultant "output = " line is not all that readable and
  doesn't 80 col wrap that well.  you could probably improve the
  readability of this code by doing something like:

        output = pfx
        if p.sticky:
                output += "\t" + true"
        else:
                output += "\t" + "false"

ed


On Wed, Jan 27, 2010 at 12:36:21PM +0000, Gary Pennington wrote:
> Hi,
>
> (I'm hoping to get these changes in b132 to help on-ips work with zones)
>
> Webrev:
>
> http://cr.opensolaris.org/~garypen/gate/
>
> bash-4.0$ hg comment
> 12738 zone install/attach incorporation logic needs enhancement
> 14053 pkg brand creation potentially broken with new publisher data
>
> The change to client.py is probably most controversial. I've introduced
> a (very simple) parseable output mode for the publisher sub-command so
> that I can access the information easily when installing zones.
>
> The guiding principles are:
>
>  - produce output that standard unix text processing tools can process
>  - assume that repetition of redundant data to support line-oriented
>    reporting is fine
>  - don't print headers when using parseable mode
>  - assume that "something better" is coming along in the future and this
>    approach is good enough for now
>
> Example outputs:
>
> gary...@osol:~$ pkg publisher
> PUBLISHER                             TYPE     STATUS   URI
> opensolaris.org          (preferred)  origin   online   
> http://pkg.opensolaris.org/dev/
> opensolaris.org          (preferred)  mirror   online   
> http://pkg-na-2.opensolaris.org/dev/
> osol                     (non-sticky, disabled) origin   online   
> http://192.168.2.100:10000/
>
> gary...@osol:~$ pkg publisher -p
> opensolaris.org       true    true    true    http://pkg.opensolaris.org/dev/ 
> origin  online
> opensolaris.org       true    true    true    
> http://pkg-na-2.opensolaris.org/dev/    mirror  online
> osol  false   false   false   http://192.168.2.100:10000/     origin  online
>
> gary...@osol:~$ pkg publisher -pn
> opensolaris.org       true    true    true    http://pkg.opensolaris.org/dev/ 
> origin  online
> opensolaris.org       true    true    true    
> http://pkg-na-2.opensolaris.org/dev/    mirror  online
>
> The changes to common.ksh and pkgcreatezone are less controversial and take
> advantage of this new output option to fix the two bugs.
>
> I'd like to make this change available to everyone using the pkg command,
> but I would agree if it made more sense to make this option project
> private and undocumented given the time pressure against the 132 deadline.
>
> Gary
> _______________________________________________
> pkg-discuss mailing list
> [email protected]
> http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to