src/modules/client/actuator.py
author Brock Pytlik <brock.pytlik@oracle.com>
Wed, 27 Apr 2011 20:30:32 -0700
changeset 2310 ce10607d5332
parent 2205 53d0be594162
child 2333 d7d310363aeb
permissions -rw-r--r--
11684 desire option to not propagate certs to non-global zones 17522 system repository should provide basic functionality 17523 Need a functioning sysdepo 17524 system depot should auto generate its configuration based on system image 17525 system depot should respond to versions/0 17526 system depot should provide publisher configuration 17527 caching should be enabled for system depot 17528 system depot should proxy http repositories 17529 system depot should proxy https repositories 17530 pkg client needs to be aware of the system repository 17531 pkg needs to cache system publisher information 17532 pkg should retrieve publisher information from the system repository when configured 17533 pkg needs to use the system repository as a proxy for http repositories 17534 pkg needs to use the system repository as a proxy for https repositories 17535 need an image property to indicate whether to use the system repository 17536 an image shouldn't require any configured publishers 17537 notion of preferred publisher should be removed 17538 pkg should be able to merge system publisher info with locally configured publishers 17539 pkg should notify that users cannot modify system publishers in certain ways 17540 pkg publisher needs to be updated to include information about system publishers 17541 pkg will need a way to specify alternate system repository urls 17547 file repositories need to be proxied by the system repository 17594 pkg set-publisher in GZ should refresh sysdepo service 17604 converting an imageconfig object to a string causes an infinite loop 17847 pkg set-publisher shouldn't allow -P along with --search-* 17911 pkg image-create should allow an image to be created without a publisher 18200 need a manpage for the sysrepo service
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1505
diff changeset
     1
#!/usr/bin/python
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     2
#
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     3
# CDDL HEADER START
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     4
#
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     8
#
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    12
# and limitations under the License.
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    13
#
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    19
#
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    20
# CDDL HEADER END
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    21
#
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    22
1992
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    23
#
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
    24
# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
1992
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    25
#
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    26
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
    27
import pkg.smf as smf
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    28
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
    29
from pkg.client.debugvalues import DebugValues
1992
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    30
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    31
class GenericActuator(object):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    32
        """Actuators are action attributes that cause side effects
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    33
        on live images when those actions are updated, installed
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    34
        or removed.  Since no side effects are caused when the
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    35
        affected image isn't the current root image, the OS may
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    36
        need to cause the equivalent effect during boot.
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    37
        """
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    38
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    39
        actuator_attrs = set()
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    40
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    41
        def __init__(self):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    42
                self.install = {}
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    43
                self.removal = {}
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    44
                self.update =  {}
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    45
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
    46
        def __nonzero__(self):
1992
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    47
                return bool(self.install or self.removal or self.update)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    48
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    49
        def scan_install(self, attrs):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    50
                self.__scan(self.install, attrs)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    51
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    52
        def scan_removal(self, attrs):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    53
                self.__scan(self.removal, attrs)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    54
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    55
        def scan_update(self, attrs):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    56
                self.__scan(self.update, attrs)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    57
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    58
        def __scan(self, dictionary, attrs):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    59
                for a in set(attrs.keys()) & self.actuator_attrs:
1992
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    60
                        values = attrs[a]
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    61
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    62
                        if not isinstance(values, list):
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    63
                                values = [values]
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    64
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    65
                        dictionary.setdefault(a, set()).update(values)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    66
1328
5c3747a4fe0a 9387 pkg fix should honor reboot-needed flag
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1019
diff changeset
    67
        def reboot_needed(self):
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    68
                return False
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    69
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    70
        def exec_prep(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    71
                pass
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    72
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    73
        def exec_pre_actuators(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    74
                pass
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    75
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    76
        def exec_post_actuators(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    77
                pass
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    78
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    79
        def exec_fail_actuators(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    80
                pass
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    81
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    82
        def __str__(self):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    83
                return "Removals: %s\nInstalls: %s\nUpdates: %s\n" % \
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    84
                    (self.removal, self.install, self.update)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    85
824
5a82212204d4 5597 service update failure during install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 691
diff changeset
    86
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    87
class Actuator(GenericActuator):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    88
        """Solaris specific Actuator implementation..."""
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    89
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    90
        actuator_attrs = set([
1328
5c3747a4fe0a 9387 pkg fix should honor reboot-needed flag
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1019
diff changeset
    91
            "reboot-needed",    # have to reboot to update this file
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    92
            "refresh_fmri",     # refresh this service on any change
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    93
            "restart_fmri",     # restart this service on any change
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    94
            "suspend_fmri",     # suspend this service during update
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    95
            "disable_fmri"      # disable this service prior to removal
1992
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
    96
        ])
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    97
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    98
        def __init__(self):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
    99
                GenericActuator.__init__(self)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   100
                self.suspend_fmris = None
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   101
                self.tmp_suspend_fmris = None
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   102
                self.do_nothing = True
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   103
                self.cmd_path = ""
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   104
2205
53d0be594162 3822 image plans should prevent conflicting actions from being installed
Danek Duvall <danek.duvall@oracle.com>
parents: 2040
diff changeset
   105
        def __bool__(self):
53d0be594162 3822 image plans should prevent conflicting actions from being installed
Danek Duvall <danek.duvall@oracle.com>
parents: 2040
diff changeset
   106
                return self.install or self.removal or self.update
53d0be594162 3822 image plans should prevent conflicting actions from being installed
Danek Duvall <danek.duvall@oracle.com>
parents: 2040
diff changeset
   107
2034
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   108
        def get_list(self):
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   109
                """Returns a list of actuator value pairs, suitable for printing"""
1521
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   110
                def check_val(dfmri):
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   111
                        # For actuators which are a single, global function that
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   112
                        # needs to get executed, simply print true.
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   113
                        if callable(dfmri):
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   114
                                return [ "true" ]
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   115
                        else:
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   116
                                return dfmri
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   117
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   118
                merge = {}
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   119
                for d in [self.removal, self.update, self.install]:
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   120
                        for a in d.keys():
1521
946bd128177d 8647 devices not usable immediately after install
Danek Duvall <danek.duvall@sun.com>
parents: 1516
diff changeset
   121
                                for smf in check_val(d[a]):
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   122
                                        merge.setdefault(a, set()).add(smf)
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   123
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   124
                if self.reboot_needed():
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   125
                        merge["reboot-needed"] = set(["true"])
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   126
                else:
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   127
                        merge["reboot-needed"] = set(["false"])
2034
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   128
                return [(fmri, smf)
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   129
                        for fmri in merge
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   130
                        for smf in merge[fmri]
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   131
                        ]
1505
cc598d70bbbe 4425 pkg install should deal w/ complex dependency changes in one install
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1328
diff changeset
   132
2034
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   133
        def get_services_list(self):
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   134
                """Returns a list of services that would be restarted"""
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   135
                return [(fmri, smf) for fmri, smf in self.get_list() 
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   136
                    if smf not in ["true", "false"]]
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   137
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   138
        def __str__(self):
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   139
                return "\n".join("  %16s: %s" % (fmri, smf) 
d5ee7746faeb 16108 boot environments should be created by default only when needed
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 1992
diff changeset
   140
                    for fmri, smf in self.get_list())
690
f01787008e69 4659 actuator printing w/ install -nv is incorrect
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 655
diff changeset
   141
1328
5c3747a4fe0a 9387 pkg fix should honor reboot-needed flag
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1019
diff changeset
   142
        def reboot_needed(self):
5c3747a4fe0a 9387 pkg fix should honor reboot-needed flag
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1019
diff changeset
   143
                return bool("true" in self.update.get("reboot-needed", [])) or \
5c3747a4fe0a 9387 pkg fix should honor reboot-needed flag
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents: 1019
diff changeset
   144
                    bool("true" in self.removal.get("reboot-needed", []))
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   145
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   146
        def exec_prep(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   147
                if not image.is_liveroot():
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   148
                        if not DebugValues.get_value("smf_cmds_dir"):
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   149
                                return
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   150
                self.do_nothing = False
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   151
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   152
        def exec_pre_actuators(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   153
                """do pre execution actuator processing..."""
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   154
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   155
                if self.do_nothing:
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   156
                        return
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   157
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   158
                suspend_fmris = self.update.get("suspend_fmri", set())
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   159
                tmp_suspend_fmris = set()
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   160
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   161
                disable_fmris = self.removal.get("disable_fmri", set())
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   162
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   163
                suspend_fmris = smf.check_fmris("suspend_fmri", suspend_fmris)
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   164
                disable_fmris = smf.check_fmris("disable_fmri", disable_fmris)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   165
                # eliminate services not loaded or not running
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   166
                # remember those services enabled only temporarily
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   167
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   168
                for fmri in suspend_fmris.copy():
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   169
                        state = smf.get_state(fmri)
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   170
                        if state <= smf.SMF_SVC_TMP_ENABLED:
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   171
                                suspend_fmris.remove(fmri)
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   172
                        if state == smf.SMF_SVC_TMP_ENABLED:
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   173
                                tmp_suspend_fmris.add(fmri)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   174
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   175
                for fmri in disable_fmris.copy():
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   176
                        if smf.is_disabled(fmri):
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   177
                                disable_fmris.remove(fmri)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   178
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   179
                self.suspend_fmris = suspend_fmris
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   180
                self.tmp_suspend_fmris = tmp_suspend_fmris
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   181
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   182
                params = tuple(suspend_fmris | tmp_suspend_fmris)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   183
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   184
                if params:
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   185
                        smf.disable(params, temporary=True)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   186
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   187
                params = tuple(disable_fmris)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   188
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   189
                if params:
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   190
                        smf.disable(params)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   191
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   192
        def exec_fail_actuators(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   193
                """handle a failed install"""
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   194
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   195
                if self.do_nothing:
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   196
                        return
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   197
1992
627a96abb313 15031 pkg install traceback if multiple actuator values present
Richard Lowe <richlowe@richlowe.net>
parents: 1747
diff changeset
   198
                params = tuple(self.suspend_fmris |
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   199
                    self.tmp_suspend_fmris)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   200
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   201
                if params:
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   202
                        smf.mark("maintenance", params)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   203
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   204
        def exec_post_actuators(self, image):
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   205
                """do post execution actuator processing"""
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   206
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   207
                if self.do_nothing:
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   208
                        return
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   209
2040
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   210
                # handle callables first
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   211
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   212
                for act in self.removal.itervalues():
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   213
                        if callable(act):
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   214
                                act()
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   215
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   216
                for act in self.install.itervalues():
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   217
                        if callable(act):
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   218
                                act()
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   219
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   220
                for act in self.update.itervalues():
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   221
                        if callable(act):
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   222
                                act()
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   223
e7fbac4a4ab1 16898 callable actuators (e.g. built-in ones) should fire before package-specified ones
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2034
diff changeset
   224
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   225
                refresh_fmris = self.removal.get("refresh_fmri", set()) | \
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   226
                    self.update.get("refresh_fmri", set()) | \
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   227
                    self.install.get("refresh_fmri", set())
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   228
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   229
                restart_fmris = self.removal.get("restart_fmri", set()) | \
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   230
                    self.update.get("restart_fmri", set()) | \
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   231
                    self.install.get("restart_fmri", set())
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   232
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   233
                refresh_fmris = smf.check_fmris("refresh_fmri", refresh_fmris)
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   234
                restart_fmris = smf.check_fmris("restart_fmri", restart_fmris)
1747
4e2bf9d7a383 11617 looking for missing property value in actuator code causes KeyError
Tim Foster <tim.foster@sun.com>
parents: 1540
diff changeset
   235
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   236
                # ignore services not present or not
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   237
                # enabled
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   238
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   239
                for fmri in refresh_fmris.copy():
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   240
                        if smf.is_disabled(fmri):
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   241
                                refresh_fmris.remove(fmri)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   242
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   243
                params = tuple(refresh_fmris)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   244
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   245
                if params:
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   246
                        smf.refresh(params)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   247
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   248
                for fmri in restart_fmris.copy():
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   249
                        if smf.is_disabled(fmri):
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   250
                                restart_fmris.remove(fmri)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   251
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   252
                params = tuple(restart_fmris)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   253
                if params:
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   254
                        smf.restart(params)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   255
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   256
                # reenable suspended services that were running
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   257
                # be sure to not enable services that weren't running
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   258
                # and temp. enable those services that were in that
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   259
                # state.
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   260
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   261
                params = tuple(self.suspend_fmris)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   262
                if params:
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   263
                        smf.enable(params)
584
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   264
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   265
                params = tuple(self.tmp_suspend_fmris)
22bc748edce6 577 need service action for smf(5) manifests
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
diff changeset
   266
                if params:
2310
ce10607d5332 11684 desire option to not propagate certs to non-global zones
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2205
diff changeset
   267
                        smf.enable(params, temporary=True)