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-- |
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) |