Enda O'Connor ( Sun Micro Systems Ireland) writes:
> Hi
> I am looking at a patchadd failure and the problem is that
> the patch is running a script that runs
> svccfg import console-login.xml ( full path to xml deleted here for 
> brevity )
> and this fails with
> 
> svccfg: Conflict upgrading svc:/system/console-login (property 
> "ttymon/terminal_type" has different values).

Did the import fail, or did it succeed and just issue this warning?

> 
> problem being that I have changed
> "ttymon/terminal_type" to xterm from sun.
> 
> Is there any way around this without resorting to having a customer 
> manually massaging things.
> This is generic as patches import manifests depending on the patch, 
> mainly Kernel patches though, and it appears that any custom 
> configuration will lead to this situation.
> 
> Plus any upgrade ( LU/jumpstart etc ) will almost certainly lead to the 
> same scenario.
> 
> Any way to get svccfg to import the config and keep any customisations 
> as well.
> 
> Enda
> _______________________________________________
> smf-discuss mailing list
> smf-discuss at opensolaris.org

If an administrator has changed a property value and the new manifest has
changed the same property in a different way, the import will not override
the administrator's changes.  In this case it issues the warning message
that you see above.  The import still succeeds, but the property that has
been changed by the administrator does not get changed.

Here is an example.  I created a manifest for a service called bogus_1 with
4 properties.  Here are the properties and my plans for them in this
experiment.

    ttymon/cmd_change -         Will be changed using the svccfg command.
    ttymon/man_change -         Will be changed in the manifest
    ttymon/no_change -          Will not be changed at all.
    ttymon/terminal_type -      Will be changed with svccfg and in manifest

When I import the original manifest, here are the initial values for
these properties as shown by svcprop.

    ttymon/cmd_change astring original
    ttymon/man_change astring abc
    ttymon/no_change astring forever
    ttymon/terminal_type astring krang

I then used svccfg to change the cmd_change and terminal_type properties:
    $ sudo svccfg
    svc:> select bogus_1
    svc:/system/bogus_1> setprop ttymon/cmd_change = changed
    svc:/system/bogus_1> setprop ttymon/terminal_type = crung
    svc:/system/bogus_1> quit
    $ sudo svcadm refresh bogus_1

Here are the current property values:
    ttymon/man_change astring abc
    ttymon/no_change astring forever
    ttymon/cmd_change astring changed
    ttymon/terminal_type astring crung

Next I edit the manifest changing the property values for man_change and
terminal_type:
        man_change      'abc' -> 'dev'
        terminal_type   'krang' -> 'vt100'

Next I reimported the manifest using the -v option of svccfg to get verbose
output:
    $ sudo svccfg -v import bogus_1.xml ; echo $?
    svccfg: Taking "previous" snapshot for svc:/system/bogus_1:default.
    svccfg: Upgrading properties of svc:/system/bogus_1 according to instance 
"default".
    svccfg: svc:/system/bogus_1: Upgrading property "ttymon/man_change".
    svccfg: Conflict upgrading svc:/system/bogus_1 (property 
"ttymon/terminal_type" has different values).
    svccfg: Taking "last-import" snapshot for svc:/system/bogus_1:default.
    svccfg: Refreshed svc:/system/bogus_1:default.
    svccfg: Successful import.
    0

Notice that I did get the same conflict warning that you did.  The import
did succeed, howerver, and exited with 0.  As we will see the import did
not override the administrator's customizations.  That is the reason for
the warning.  We will also see the man_change property did get changed by
the import shince there was no conflict.  Here are the values after the
import:
    ttymon/no_change astring forever
    ttymon/cmd_change astring changed
    ttymon/terminal_type astring crung
    ttymon/man_change astring def

tom



Reply via email to