Hi John,
My apologies this got dropped for so long. This looks good! My only catches are as follows:

delete-service:
---------------
511: why was this indentation chosen? I usually try to match under the
     punctuation(parens, brackets, braces, etc.) or simply do a four space
     indent.
old lines: 736+737: where did the service refresh move? As after removing
                    a service you must refresh it or it will linger in
                    aimdns and the webserver won't it?

installadm.c:
-------------
810-814: are we dropping support for creating services for clients older
         than this push?
architectural: If we are removing support for creating older services,
 (Perhaps for  should we do away with the backwards compatible setup on
  Ethan/Dave?) line 835 -- and just use $serverIP for srv_address?
               This would prevent the "fallback" mechanism from working
               when the boot server and AI server differ and mDNS AI
               broadcasts don't reach the AI client for some reason but
               would simplify our use-cases

installadm_util.c:
------------------
lines 114-118: do you need to free handle?

list.py:
--------
line 304: If I understand this correctly, this assumes the server
          is on a class C network which is not always true -- further it
          only looks at one network. My apologies for not realizing this
          during Multihomed!
          (Why not use a similar approach as delete_client which look
           under the entirity of /etc/netboot?)
lines 766/768: it seems these two comments are contradictory (we're not
      922/924: ensuring new server setup so much as testing it in
               line 767/923?)
lines 895-896: I believe we support platform, network and cpu?

setup-service.sh:
-----------------
(nit) line 148: I would suggest using "AI${name}/status" instead of
                "AI$name/status" but it's not necessary -- it simply helps
                one's code scan speed and calls out there is a variable
                there
line 189: so we're allowing reusing image directories? (If so, why?)
(nit) line 232: it would be nice to offer the user a reason why using
                this manifest is of concern -- e.g. "Warning: Using
                system default manifest instead of image specific
                manifest" -- also do we still support creating a service
                from an image which existed before we started putting
                manifests on the ISOs?

httpd.conf:
-----------
line 262: how do you provide access to wanboot.conf via the server? (This
          line was enacted for multihomed so we didn't have to copy
          wanboot.conf and IPS could properly manage it.)


svc-install-server:
-------------------
lines 74-99: There is no provision for one to add or remove a legacy
             service short of stopping and restarting the AI service?
             (E.g. this code doesn't run on a refresh?)

cgi_get_manifest.py:
--------------------
(nit) line 181: I would recommend partition instead of split
(nit) lines 192-204: LXML can generate HTML if that'd be easier for
maintainability (see lines 244-251 for an example) (observation) lines 271-288: if performance of serving the manifests
                             becomes too slow, this is a potential
                             bottleneck if the manifests grow
                             really large (e.g. for derived manifests) as
                             CherryPy and Apache will stream files (and do
                             other tricks) (see 
http://helpful.knobs-dials.com/index.php/CherryPy#Content)
architectural: Would it be easier to make a function to print to stderr &
               stdout since that's done pretty often through out -- with
               potential for typos between the two?
Otherwise, thank you for keeping the GUI list methods available!

General Architecture:
---------------------
It appears that installadm disable -t <service> is no a no-op as it doesn't change a service's SMF state property so we'd still run aimdns for it (as pointed out when aimdns went in) and now the webserver would still run for it too and it will keep the service from transitioning to maintenance -- should we get rid of disable -t or do people really use it?

There should be a check so that some clever jerk doesn't make an AI service named image-server causing all sorts of havoc (I didn't catch one)

Not directly related but you can get rid of all of the queuing in AI_database.py as that was only needed to support a multithreaded application -- the old AI webserver.

                                                        Thank you,
                                                        Clay


On Mon, 13 Dec 2010, John Fischer wrote:

All (Ethan, Clay and Joe),

This is a request for a first review of the webserver design project.
I suspect that there will be at least 2 rounds if not more of review.
Please have feedback to me by Friday, December 17th, 2010.

The webrev is located at:

   http://cr.opensolaris.org/~johnfisc/webserver-design/

This covers the design as specified in:

   
http://hub.opensolaris.org/bin/download/Project+caiman/auto_install/AI%2DWebserver%2DSpecification.pdf

I believe it covers the following CRs:

        9538 AI webserver not restarting after server reboot
        8282 Port sharing with multiple AI webservers
        8708 SMF: ai-webserver not restarted if it crashes
        8561 Blocker bug for AI Webserver design work
6047 HTTP_PORT should be obtained programmatically, rather than defined


The design is fairly simple.  The changes for the design include:

o replaces the cherrypy webserver with a cgi-bin script called cgi_get_manifest.py. - the scripts are very similar except without the cherrypy specific code
   o replacement of port reference for database with servicename
- an implication of the webserver consolidation, majority of the important code
        changes
   o shell scripts no longer start/stop webserver
   o compatibility for older services - configuration changes
   o build changes - Makefile changes

There are a few additional changes from pep8 checks.  I didn't
do the majority of the pylint changes because several of the files
require extensive changes.

Let me know if anyone needs a code walk through.

Thanks,

John
_______________________________________________
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