I'm proposing the addition of an upgrade method for each service to be a 
possible solution for various types of upgrade issues. Currently, 
updated services perform their customizations through adding commands 
into the /var/svc/profile/upgrade file which are executed after 
manifest-import completed. A quick look at /var/svc/profile/upgrade* 
file shows how much customization currently exists.  Another example is 
those services that convert configuration parameters from *.conf files 
into the repository. Upon a reboot following an upgrade, the current 
recommended mechanism to migrate and preserve existing configuration 
into repository is to add "svccfg setprop" commands into 
/var/svc/profile/upgrade.

The use of /var/svc/profile/upgrade file requires a contract for all 
services. Can non-Sun services contract for the use of 
/var/svc/profile/upgrade? This /var/svc/profile/upgrade may get too 
cluttered and complicated over time as more and more upgrade 
customizations need to be done.

The proposed upgrade method is an extension to the current SMF service 
definition. The upgrade method ONLY executes on the first reboot 
following the upgrade of that particular service(after manifest-import 
completes the import of the new service manifest). This service specific 
upgrade method allows us to deliver customized commands/work into a 
service specific method rather than a common file for all services. 
Third-party and non-Sun services can easily deliver their upgrade 
customization without having to establish contracts.

I don't claim to have all the details figured out :^) but thought I 
should start the discussion. Would something like the proposed upgrade 
method make life easier for people? What problems may we encounter with 
this approach?

Comments and suggestions are very much welcome.
-tony

Reply via email to