author | William Schumann <william.schumann@sun.com> |
Mon, 15 Aug 2011 02:37:08 -0700 | |
changeset 1385 | 0f74e9631185 |
parent 1339 | 18ceb31d2b0b |
permissions | -rw-r--r-- |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.6 |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
2 |
# |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
3 |
# CDDL HEADER START |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
4 |
# |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
5 |
# The contents of this file are subject to the terms of the |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
6 |
# Common Development and Distribution License (the "License"). |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
7 |
# You may not use this file except in compliance with the License. |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
8 |
# |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
10 |
# or http://www.opensolaris.org/os/licensing. |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
11 |
# See the License for the specific language governing permissions |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
12 |
# and limitations under the License. |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
13 |
# |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
19 |
# |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
20 |
# CDDL HEADER END |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
21 |
# |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
22 |
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
23 |
# |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
24 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
25 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
26 |
'''System Configuration Interactive (SCI) Tool''' |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
27 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
28 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
29 |
import gettext |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
30 |
import atexit |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
31 |
import curses |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
32 |
import locale |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
33 |
import logging |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
34 |
from optparse import OptionParser |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
35 |
import os |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
36 |
import shutil |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
37 |
import signal |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
38 |
import sys |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
39 |
|
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
40 |
from solaris_install import engine |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
41 |
from solaris_install.data_object import DataObject |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
42 |
from solaris_install.data_object.data_dict import DataObjectDict |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
43 |
from solaris_install import Popen, CalledProcessError |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
44 |
from solaris_install.engine import InstallEngine, RollbackError |
1322
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
45 |
from solaris_install.getconsole import get_console, SERIAL_CONSOLE |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
46 |
from solaris_install.ict.apply_sysconfig import APPLY_SYSCONFIG_DICT, \ |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
47 |
APPLY_SYSCONFIG_PROFILE_KEY |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
48 |
|
1322
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
49 |
# |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
50 |
# Determine whether LC_MESSAGES environment variable needs to be set |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
51 |
# or not. This must be done before the gettext.translation() call so the |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
52 |
# correct localized messages are used. |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
53 |
# |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
54 |
console_type = get_console() |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
55 |
|
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
56 |
# |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
57 |
# If running from a serial console, translation will be enabled. |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
58 |
# If running on a physical console, translation will |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
59 |
# be disabled by setting LC_MESSAGES to C |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
60 |
# |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
61 |
if console_type != SERIAL_CONSOLE: |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
62 |
os.environ["LC_MESSAGES"] = "C" |
101ceefb29c6
6985652 changes in text installer iso image for safe provision of localization without garbled display
Karen Tung <Karen.Tung@oracle.com>
parents:
1297
diff
changeset
|
63 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
64 |
_ = gettext.translation("sysconfig", "/usr/share/locale", |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
65 |
fallback=True).ugettext |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
66 |
SCI_HELP = "/usr/share/sysconfig/help" |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
67 |
COMMA = "," |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
68 |
DASH_G = "-g" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
69 |
SUPPORT_ERR = "system is the only supported grouping for configure " \ |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
70 |
"and unconfigure" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
71 |
SUBCOMMANDS = "unconfigure, configure, create-profile" |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
72 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
73 |
# system configuration groups |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
74 |
# hostname |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
75 |
SC_GROUP_IDENTITY = 'identity' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
76 |
# networking |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
77 |
SC_GROUP_NETWORK = "network" |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
78 |
# naming services |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
79 |
SC_GROUP_NS = 'naming_services' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
80 |
# keyboard layout |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
81 |
SC_GROUP_KBD = 'kbd_layout' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
82 |
# date and time |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
83 |
SC_GROUP_DATETIME = 'date_time' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
84 |
# timezone and locale |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
85 |
SC_GROUP_LOCATION = 'location' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
86 |
# user and root account |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
87 |
SC_GROUP_USERS = 'users' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
88 |
# pseudo-group - includes all available groups |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
89 |
SC_GROUP_SYSTEM = 'system' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
90 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
91 |
# list of configuration groups |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
92 |
SC_ALL_GROUPS = [SC_GROUP_IDENTITY, SC_GROUP_NETWORK, SC_GROUP_NS, |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
93 |
SC_GROUP_KBD, SC_GROUP_LOCATION, SC_GROUP_DATETIME, |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
94 |
SC_GROUP_USERS] |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
95 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
96 |
# all valid configuration groups including 'system' pseudo-group |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
97 |
SC_VALID_GROUPS = SC_ALL_GROUPS + [SC_GROUP_SYSTEM] |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
98 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
99 |
SMF_REPOSITORY = "etc/svc/repository.db" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
100 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
101 |
CUSTOM_PROFILE_DIR = "etc/svc/profile/sc" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
102 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
103 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
104 |
def get_sc_options_from_doc(): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
105 |
'''Obtains list of sysconfig CLI options from Data Object Cache''' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
106 |
doc = InstallEngine.get_instance().doc.persistent |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
107 |
sc_options = doc.get_first_child(name=SC_OPTIONS_LABEL) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
108 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
109 |
if sc_options is not None: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
110 |
return sc_options.options |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
111 |
else: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
112 |
return None |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
113 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
114 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
115 |
def configure_group(group=None): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
116 |
'''Returns True if specified group is to be configured, |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
117 |
otherwise returns False''' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
118 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
119 |
sc_options = get_sc_options_from_doc() |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
120 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
121 |
# if list of groups can't be obtained, assume everything |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
122 |
# is to be configured |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
123 |
if sc_options is None: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
124 |
return True |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
125 |
elif group in sc_options.grouping: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
126 |
return True |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
127 |
else: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
128 |
return False |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
129 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
130 |
from solaris_install.logger import FileHandler, INSTALL_LOGGER_NAME |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
131 |
from solaris_install.sysconfig.date_time import DateTimeScreen |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
132 |
from solaris_install.sysconfig.network_nic_configure import NICConfigure |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
133 |
from solaris_install.sysconfig.network_nic_select import NICSelect |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
134 |
from solaris_install.sysconfig.network_type import NetworkTypeScreen |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
135 |
from solaris_install.sysconfig.profile import ConfigProfile, SMFConfig, \ |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
136 |
SMFInstance, SMFPropertyGroup, \ |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
137 |
SMFProperty |
1281
1e322933782d
7054440 Allow combination of name services to be configured in S11 text installer: DNS+NIS, DNS+LDAP
William Schumann <william.schumann@sun.com>
parents:
1279
diff
changeset
|
138 |
from solaris_install.sysconfig.nameservice import NSDNSChooser, NSAltChooser, \ |
1e322933782d
7054440 Allow combination of name services to be configured in S11 text installer: DNS+NIS, DNS+LDAP
William Schumann <william.schumann@sun.com>
parents:
1279
diff
changeset
|
139 |
NSDomain, \ |
1164
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
140 |
NSDNSServer, NSDNSSearch, \ |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
141 |
NSLDAPProfile, \ |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
142 |
NSLDAPProxyBindChooser, \ |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
143 |
NSLDAPProxyBindInfo, \ |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
144 |
NSNISAuto, NSNISIP |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
145 |
from solaris_install.sysconfig.summary import SummaryScreen |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
146 |
from solaris_install.sysconfig.timezone import TimeZone |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
147 |
from solaris_install.sysconfig.users import UserScreen |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
148 |
from solaris_install.sysconfig.welcome import WelcomeScreen |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
149 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
150 |
import terminalui |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
151 |
from terminalui import LOG_LEVEL_INPUT, LOG_NAME_INPUT |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
152 |
from terminalui.action import Action |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
153 |
from terminalui.base_screen import BaseScreen |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
154 |
from terminalui.help_screen import HelpScreen |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
155 |
from terminalui.i18n import get_encoding, set_wrap_on_whitespace |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
156 |
from terminalui.main_window import MainWindow |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
157 |
from terminalui.screen_list import ScreenList |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
158 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
159 |
SU_OK = 0 |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
160 |
SU_FATAL_ERR = 1 |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
161 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
162 |
# profile names |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
163 |
# profile configuring svc:/milestone/config:default service |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
164 |
CONFIG_PROFILE = "enable_sci.xml" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
165 |
# profile configuring svc:/milestone/unconfig milestone |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
166 |
UNCONFIG_PROFILE = "unconfig.xml" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
167 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
168 |
# directories |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
169 |
# temporary directory |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
170 |
VOLATILE_PATH = "/system/volatile" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
171 |
# smf site-profile directory |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
172 |
PROFILE_PATH = "/etc/svc/profile/site" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
173 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
174 |
# temporary profiles |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
175 |
TMP_CONFIG_PROFILE = os.path.join(VOLATILE_PATH, CONFIG_PROFILE) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
176 |
TMP_UNCONFIG_PROFILE = os.path.join(VOLATILE_PATH, UNCONFIG_PROFILE) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
177 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
178 |
# destination for profile configuring svc:/milestone/config:default service |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
179 |
CONFIG_PROFILE_DEST = os.path.join(PROFILE_PATH, CONFIG_PROFILE) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
180 |
# destination for profile configuring svc:/milestone/unconfig milestone |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
181 |
UNCONFIG_PROFILE_DEST = os.path.join(PROFILE_PATH, UNCONFIG_PROFILE) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
182 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
183 |
# default locations |
1385
0f74e9631185
7079223 Default name of profile created by 'sysconfig create-profile' not consistent
William Schumann <william.schumann@sun.com>
parents:
1339
diff
changeset
|
184 |
DEFAULT_SC_PROFILE = "sc_profile.xml" |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
185 |
DEFAULT_SC_LOCATION = os.path.join(VOLATILE_PATH, "profile", |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
186 |
DEFAULT_SC_PROFILE) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
187 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
188 |
DEFAULT_LOG_LOCATION = "/var/tmp/install/sysconfig.log" |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
189 |
DEFAULT_LOG_LEVEL = "info" |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
190 |
LOG_FORMAT = ("%(asctime)s - %(levelname)-8s: " |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
191 |
"%(filename)s:%(lineno)d %(message)s") |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
192 |
LOGGER = None |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
193 |
XSLT_FILE = os.environ.get('SC_XSLT', |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
194 |
'/usr/share/sysconfig/xslt/doc2sc_profile.xslt') |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
195 |
SC_FILE = DEFAULT_SC_LOCATION |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
196 |
GENERATE_SC_PROFILE_CHKPOINT = 'generate-sc-profile' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
197 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
198 |
# sysconfig subcommands |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
199 |
CONFIGURE = "configure" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
200 |
UNCONFIGURE = "unconfigure" |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
201 |
CREATE_PROFILE = "create-profile" |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
202 |
SVCADM = "/usr/sbin/svcadm" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
203 |
SVCPROP = "/usr/bin/svcprop" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
204 |
SVCCFG = "/usr/sbin/svccfg" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
205 |
SYSTEM = "system" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
206 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
207 |
# Commands for the console |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
208 |
CTSTAT = "/usr/bin/ctstat" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
209 |
SVCPROP = "/usr/bin/svcprop" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
210 |
CONSOLE_LOGIN = "svc:/system/console-login:default" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
211 |
TTY = "/usr/bin/tty" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
212 |
CONSOLE = "/dev/console" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
213 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
214 |
ALT_ROOT_ENV_VAR = "_UNCONFIG_ALT_ROOT" |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
215 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
216 |
# DOC label for SysConfig options |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
217 |
SC_OPTIONS_LABEL = "sc_options" |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
218 |
|
1081
209bcdf4a456
7037236 After doing a net TI install, scitools is still invoked and ask about configuration
William Schumann <william.schumann@sun.com>
parents:
1026
diff
changeset
|
219 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
220 |
class SysConfigOptions(DataObject): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
221 |
'''System Configuration options''' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
222 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
223 |
def __init__(self, options=None): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
224 |
super(SysConfigOptions, self).__init__(SC_OPTIONS_LABEL) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
225 |
self.options = options |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
226 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
227 |
def to_xml(self): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
228 |
return None |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
229 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
230 |
@classmethod |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
231 |
def can_handle(cls, element): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
232 |
return False |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
233 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
234 |
@classmethod |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
235 |
def from_xml(cls, element): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
236 |
return None |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
237 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
238 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
239 |
# Public functions for consumers of sysconfig |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
240 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
241 |
def get_all_screens(main_win): |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
242 |
'''Initializes a full set of configuration screens''' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
243 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
244 |
result = [] |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
245 |
result.append(NetworkTypeScreen(main_win, True)) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
246 |
result.append(NICSelect(main_win)) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
247 |
result.append(NICConfigure(main_win)) |
1164
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
248 |
_append_nameservice_screens(result, main_win) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
249 |
result.append(TimeZone(main_win, screen=TimeZone.REGIONS)) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
250 |
result.append(TimeZone(main_win, screen=TimeZone.LOCATIONS)) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
251 |
result.append(TimeZone(main_win)) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
252 |
result.append(DateTimeScreen(main_win)) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
253 |
result.append(UserScreen(main_win)) |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
254 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
255 |
return result |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
256 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
257 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
258 |
def get_screens_from_groups(main_win): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
259 |
'''Initializes subset of configuration screens matching list of specified |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
260 |
configuration groups''' |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
261 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
262 |
result = [] |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
263 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
264 |
# hostname |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
265 |
if configure_group(SC_GROUP_IDENTITY): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
266 |
result.append(NetworkTypeScreen(main_win, |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
267 |
configure_group(SC_GROUP_NETWORK))) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
268 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
269 |
# network |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
270 |
if configure_group(SC_GROUP_NETWORK): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
271 |
result.append(NICSelect(main_win)) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
272 |
result.append(NICConfigure(main_win)) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
273 |
|
1164
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
274 |
# name services |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
275 |
if configure_group(SC_GROUP_NS): |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
276 |
_append_nameservice_screens(result, main_win) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
277 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
278 |
# timezone |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
279 |
if configure_group(SC_GROUP_LOCATION): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
280 |
result.append(TimeZone(main_win, screen=TimeZone.REGIONS)) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
281 |
result.append(TimeZone(main_win, screen=TimeZone.LOCATIONS)) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
282 |
result.append(TimeZone(main_win)) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
283 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
284 |
# date and time |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
285 |
if configure_group(SC_GROUP_DATETIME): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
286 |
result.append(DateTimeScreen(main_win)) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
287 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
288 |
# initial user |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
289 |
if configure_group(SC_GROUP_USERS): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
290 |
result.append(UserScreen(main_win)) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
291 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
292 |
return result |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
293 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
294 |
|
1164
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
295 |
def _append_nameservice_screens(result, main_win): |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
296 |
''' Initialize and append all name service screens ''' |
1281
1e322933782d
7054440 Allow combination of name services to be configured in S11 text installer: DNS+NIS, DNS+LDAP
William Schumann <william.schumann@sun.com>
parents:
1279
diff
changeset
|
297 |
result.append(NSDNSChooser(main_win)) |
1e322933782d
7054440 Allow combination of name services to be configured in S11 text installer: DNS+NIS, DNS+LDAP
William Schumann <william.schumann@sun.com>
parents:
1279
diff
changeset
|
298 |
result.append(NSAltChooser(main_win)) |
1164
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
299 |
result.append(NSDomain(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
300 |
result.append(NSDNSServer(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
301 |
result.append(NSDNSSearch(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
302 |
result.append(NSLDAPProfile(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
303 |
result.append(NSLDAPProxyBindChooser(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
304 |
result.append(NSLDAPProxyBindInfo(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
305 |
result.append(NSNISAuto(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
306 |
result.append(NSNISIP(main_win)) |
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
307 |
|
65b1a3a35195
7031613 Enhance system configuration tool adding name services configuration
William Schumann <william.schumann@sun.com>
parents:
1160
diff
changeset
|
308 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
309 |
def register_checkpoint(sc_profile=SC_FILE, xslt=XSLT_FILE): |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
310 |
'''Registers the GENERATE_SC_PROFILE_CHKPOINT checkpoint with the engine. |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
311 |
Also adds config_profile to InstallEngine.doc.persistent''' |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
312 |
eng = InstallEngine.get_instance() |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
313 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
314 |
sc_kwargs = {'xslt_file': xslt} |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
315 |
sc_args = [sc_profile] |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
316 |
eng.register_checkpoint(GENERATE_SC_PROFILE_CHKPOINT, |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
317 |
"solaris_install/manifest/writer", |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
318 |
"ManifestWriter", args=sc_args, kwargs=sc_kwargs) |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
319 |
|
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
320 |
# Add profile location to the ApplySysconfig checkpoint's data dict. |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
321 |
# Try to find the ApplySysconfig data dict from the DOC in case it |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
322 |
# already exists. |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
323 |
as_doc_dict = None |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
324 |
as_doc_dict = eng.doc.volatile.get_first_child(name=APPLY_SYSCONFIG_DICT) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
325 |
if as_doc_dict is None: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
326 |
# Initialize new dictionary in DOC |
1194
1c704d419abb
7054032 S11 text installer LDAP configuration does not work
William Schumann <william.schumann@sun.com>
parents:
1164
diff
changeset
|
327 |
as_dict = {APPLY_SYSCONFIG_PROFILE_KEY: sc_profile} |
1160
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
328 |
as_doc_dict = DataObjectDict(APPLY_SYSCONFIG_DICT, as_dict) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
329 |
eng.doc.volatile.insert_children(as_doc_dict) |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
330 |
else: |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
331 |
# Add to existing dictionary in DOC |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
332 |
as_doc_dict.data_dict[APPLY_SYSCONFIG_PROFILE_KEY] = sc_profile |
6f7e708c38ec
16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents:
1155
diff
changeset
|
333 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
334 |
eng.doc.persistent.insert_children([ConfigProfile()]) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
335 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
336 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
337 |
def vararg_callback(option, opt_str, value, parser): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
338 |
'''Callback function to parse the -g option. Multiple groups are |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
339 |
allowed to be specified. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
340 |
''' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
341 |
value = list() |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
342 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
343 |
def floatable(arg_str): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
344 |
'''Checks for a float variable''' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
345 |
try: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
346 |
float(arg_str) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
347 |
return True |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
348 |
except ValueError: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
349 |
return False |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
350 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
351 |
for arg in parser.rargs: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
352 |
if arg[:2] == "--" and len(arg) > 2: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
353 |
break |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
354 |
if arg[:1] == "-" and len(arg) > 1 and not floatable(arg): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
355 |
break |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
356 |
# Strip off the comma separating the groups if it's there |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
357 |
# and check that the user hasn't specified the same grouping |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
358 |
# more than once. If they have, only keep one. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
359 |
if arg.strip(",") not in value: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
360 |
value.append(arg.strip(",")) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
361 |
del parser.rargs[:len(value)] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
362 |
setattr(parser.values, option.dest, value) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
363 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
364 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
365 |
def create_config_profiles(sub_cmd, options): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
366 |
''' Create two separate SMF profiles configuring milestone/config and |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
367 |
milestone/unconfig services. Place them in /etc/svc/profile/site |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
368 |
directory. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
369 |
''' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
370 |
# Remove any old profile files. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
371 |
if os.path.exists(TMP_CONFIG_PROFILE): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
372 |
os.unlink(TMP_CONFIG_PROFILE) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
373 |
if os.path.exists(TMP_UNCONFIG_PROFILE): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
374 |
os.unlink(TMP_UNCONFIG_PROFILE) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
375 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
376 |
# create profile configuring milestone/config service |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
377 |
fhdl = open(TMP_CONFIG_PROFILE, "w") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
378 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
379 |
# Header and DTD |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
380 |
fhdl.writelines("<?xml version='1.0'?>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
381 |
fhdl.writelines("<!DOCTYPE service_bundle SYSTEM " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
382 |
"'/usr/share/lib/xml/dtd/service_bundle.dtd.1'>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
383 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
384 |
fhdl.writelines("<service_bundle type=\"profile\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
385 |
"name=\"config_profile\">\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
386 |
fhdl.writelines("<service name=\"milestone/config\" version=\"1\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
387 |
"type=\"service\">\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
388 |
fhdl.writelines("<instance name=\"default\" enabled=\"true\">\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
389 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
390 |
# sysconfig property group |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
391 |
fhdl.writelines("<property_group name=\"sysconfig\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
392 |
"type=\"application\">\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
393 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
394 |
# interactive_config property |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
395 |
# Set to true if no profiles were provided in reconfiguration scenario. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
396 |
# Othwerwise set it to false. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
397 |
if sub_cmd == CONFIGURE and not options.profile: |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
398 |
fhdl.writelines("<propval name=\"interactive_config\" type=\"boolean\"" |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
399 |
" value=\"true\"/>\n") |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
400 |
else: |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
401 |
fhdl.writelines("<propval name=\"interactive_config\" type=\"boolean\"" |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
402 |
" value=\"false\"/>\n") |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
403 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
404 |
# config_group from -g option |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
405 |
fhdl.writelines("<propval name=\"config_groups\" type=\"astring\"" |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
406 |
" value=\"") |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
407 |
for grp in options.grouping: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
408 |
fhdl.writelines("%s " % grp) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
409 |
fhdl.writelines("\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
410 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
411 |
# configure flag |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
412 |
# Set to true in reconfiguration scenario, otherwise set to false. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
413 |
if sub_cmd == CONFIGURE: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
414 |
fhdl.writelines("<propval name=\"configure\" type=\"boolean\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
415 |
"value=\"true\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
416 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
417 |
fhdl.writelines("<propval name=\"configure\" type=\"boolean\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
418 |
"value=\"false\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
419 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
420 |
fhdl.writelines("</property_group>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
421 |
fhdl.writelines("</instance>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
422 |
fhdl.writelines("</service>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
423 |
fhdl.writelines("</service_bundle>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
424 |
fhdl.close() |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
425 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
426 |
profile = CONFIG_PROFILE_DEST |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
427 |
if options.alt_root: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
428 |
profile = options.alt_root + profile |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
429 |
# Move file to target destination |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
430 |
shutil.move(TMP_CONFIG_PROFILE, profile) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
431 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
432 |
# create profile configuring milestone/unconfig milestone |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
433 |
fhdl = open(TMP_UNCONFIG_PROFILE, "w") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
434 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
435 |
# Header and DTD |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
436 |
fhdl.writelines("<?xml version='1.0'?>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
437 |
fhdl.writelines("<!DOCTYPE service_bundle SYSTEM " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
438 |
"'/usr/share/lib/xml/dtd/service_bundle.dtd.1'>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
439 |
fhdl.writelines("<service_bundle type=\"profile\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
440 |
"name=\"unconfig_profile\">\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
441 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
442 |
# unconfig milestone |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
443 |
fhdl.writelines("<service name=\"milestone/unconfig\" version=\"1\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
444 |
"type=\"service\">\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
445 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
446 |
# configuration property group |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
447 |
fhdl.writelines("<property_group name=\"sysconfig\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
448 |
"type=\"application\">\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
449 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
450 |
# shutdown property default is false, true if -s was specified. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
451 |
if options.shutdown: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
452 |
fhdl.writelines("<propval name=\"shutdown\" type=\"boolean\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
453 |
"value=\"true\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
454 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
455 |
fhdl.writelines("<propval name=\"shutdown\" type=\"boolean\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
456 |
"value=\"false\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
457 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
458 |
# destructive property default is false, true if --destructive |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
459 |
# was specified. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
460 |
if options.destructive: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
461 |
fhdl.writelines("<propval name=\"destructive_unconfig\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
462 |
"type=\"boolean\" value=\"true\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
463 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
464 |
fhdl.writelines("<propval name=\"destructive_unconfig\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
465 |
"type=\"boolean\" value=\"false\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
466 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
467 |
# unconfig_groups from -g option |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
468 |
fhdl.writelines("<propval name=\"unconfig_groups\" type=\"astring\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
469 |
"value=\"") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
470 |
for grp in options.grouping: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
471 |
fhdl.writelines("%s " % grp) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
472 |
fhdl.writelines("\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
473 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
474 |
# unconfigure flag, always true |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
475 |
fhdl.writelines("<propval name=\"unconfigure\" type=\"boolean\" " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
476 |
"value=\"true\"/>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
477 |
fhdl.writelines("</property_group>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
478 |
fhdl.writelines("</service>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
479 |
fhdl.writelines("</service_bundle>\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
480 |
fhdl.close() |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
481 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
482 |
profile = UNCONFIG_PROFILE_DEST |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
483 |
if options.alt_root: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
484 |
profile = options.alt_root + profile |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
485 |
# Move file to target destination |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
486 |
shutil.move(TMP_UNCONFIG_PROFILE, profile) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
487 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
488 |
|
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
489 |
def profile_is_valid(profile_name): |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
490 |
'''Validate system configuration profile: |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
491 |
- profile has to have .xml extension, |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
492 |
otherwise smf(5) refuses to apply it |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
493 |
- profile has to syntactically validate using 'svccfg apply -n' |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
494 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
495 |
Return: True if profile is valid, otherwise False |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
496 |
''' |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
497 |
# Check if profile contains .xml suffix. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
498 |
if not profile_name.endswith(".xml"): |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
499 |
print _("Custom site profile %s is invalid, missing .xml suffix." |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
500 |
% profile_name) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
501 |
return False |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
502 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
503 |
# Validate file syntactically. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
504 |
try: |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
505 |
Popen.check_call(["svccfg", "apply", "-n", profile_name]) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
506 |
except CalledProcessError: |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
507 |
print _("Custom site profile %s is invalid or has" |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
508 |
"invalid permissions." % profile_name) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
509 |
return False |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
510 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
511 |
return True |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
512 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
513 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
514 |
def apply_profiles(profile_list): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
515 |
'''Apply config profiles to the SMF repository.''' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
516 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
517 |
for profile in profile_list: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
518 |
cmd = [SVCCFG, "apply", profile] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
519 |
try: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
520 |
Popen.check_call(cmd, stderr=Popen.PIPE, |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
521 |
check_result=(Popen.STDERR_EMPTY, 0)) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
522 |
except CalledProcessError as err: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
523 |
print err.popen.stderr |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
524 |
print _("Unable to apply SMF profile %s." % profile) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
525 |
raise |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
526 |
|
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
527 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
528 |
def valid_group_check(groupings, sub_cmd, parser): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
529 |
'''Check to see if the grouping(s) specified are valid.''' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
530 |
if sub_cmd[0] == CREATE_PROFILE: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
531 |
'''Check to see if the grouping(s) specified are valid.''' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
532 |
cmd = [SVCCFG, "-s", "milestone/unconfig", "listprop", |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
533 |
"sysconfig/valid_groups"] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
534 |
try: |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
535 |
p_ret = Popen.check_call(cmd, stdout=Popen.STORE, |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
536 |
stderr=Popen.PIPE, |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
537 |
check_result=(Popen.STDERR_EMPTY, 0)) |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
538 |
except CalledProcessError as err: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
539 |
print err.popen.stderr |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
540 |
print _("System is not properly configured. You are likely") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
541 |
print _("trying to unconfigure or re-configure freshly") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
542 |
print _("installed system which is not supported.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
543 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
544 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
545 |
valid_groupings = p_ret.stdout.split('"')[1].split(' ') |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
546 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
547 |
# Check that the grouping specified is valid. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
548 |
for grp in groupings: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
549 |
if grp not in valid_groupings: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
550 |
err = "Grouping must be one of " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
551 |
for grping in valid_groupings: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
552 |
err += grping + " " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
553 |
parser.error(err) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
554 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
555 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
556 |
if len(groupings) > 1: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
557 |
parser.error(SUPPORT_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
558 |
if groupings[0] != SYSTEM: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
559 |
parser.error(SUPPORT_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
560 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
561 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
562 |
def parse_create_profile_args(parser, args): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
563 |
'''Parses command line options for 'create-profile' sysconfig subcommand. |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
564 |
''' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
565 |
(options, sub_cmd) = parser.parse_args(args) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
566 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
567 |
# List of configuration groups - entries are separated by commas |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
568 |
options.grouping = options.grouping.split(',') |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
569 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
570 |
# Check that the functional groups requested are valid |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
571 |
valid_group_check(options.grouping, sub_cmd, parser) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
572 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
573 |
# If the user specified 'system' in a list of groups, configure all groups. |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
574 |
if SC_GROUP_SYSTEM in options.grouping: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
575 |
options.grouping = SC_ALL_GROUPS |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
576 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
577 |
# Run Install Engine in debug mode |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
578 |
options.debug = (options.log_level.lower() in ['debug', 'input']) |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
579 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
580 |
log_level = options.log_level.upper() |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
581 |
if hasattr(logging, log_level): |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
582 |
options.log_level = getattr(logging, log_level.upper()) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
583 |
elif log_level == LOG_NAME_INPUT: |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
584 |
options.log_level = LOG_LEVEL_INPUT |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
585 |
else: |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
586 |
raise IOError(2, "Invalid --log-level parameter", log_level.lower()) |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
587 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
588 |
return (options, sub_cmd) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
589 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
590 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
591 |
def do_create_profile(options): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
592 |
'''Run System Configuration Interactive Tool in order to create |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
593 |
System Configuration profile''' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
594 |
try: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
595 |
_prepare_engine(options) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
596 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
597 |
# insert sysconfig CLI options into DOC |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
598 |
doc_options = SysConfigOptions(options) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
599 |
doc = InstallEngine.get_instance().doc.persistent |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
600 |
doc.insert_children(doc_options) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
601 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
602 |
_show_screens(options) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
603 |
_exit(options.logname, errcode=0) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
604 |
except SystemExit: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
605 |
raise |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
606 |
except: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
607 |
if LOGGER is None: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
608 |
# Error occurred before logging is setup; no place to |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
609 |
# dump the traceback |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
610 |
raise |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
611 |
LOGGER.exception(_("An unhandled exception occurred.")) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
612 |
exc_type, exc_value = sys.exc_info()[:2] |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
613 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
614 |
try: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
615 |
doc = InstallEngine.get_instance().doc.persistent |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
616 |
sc_prof = doc.get_first_child(name="sysconfig") |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
617 |
LOGGER.error("Sysconfig profile:\n%s", sc_prof) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
618 |
except: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
619 |
# Ignore any errors to avoid masking the original exception |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
620 |
pass |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
621 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
622 |
print _("An unhandled exception occurred.") |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
623 |
if exc_value: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
624 |
print '\t%s: "%s"' % (exc_type.__name__, exc_value) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
625 |
else: |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
626 |
print "\t%s" % exc_type.__name__ |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
627 |
print _("Full traceback data is in the log") |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
628 |
_exit(options.logname, errcode=1) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
629 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
630 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
631 |
def do_unconfigure(sub_cmd, options): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
632 |
'''Performs the requested unconfigure operations''' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
633 |
try: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
634 |
create_config_profiles(sub_cmd, options) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
635 |
except IOError: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
636 |
print _("IO error creating profile") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
637 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
638 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
639 |
if not options.alt_root: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
640 |
try: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
641 |
apply_profiles([CONFIG_PROFILE_DEST, UNCONFIG_PROFILE_DEST]) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
642 |
except: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
643 |
print _("Unable to apply the unconfigure parameters to the image") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
644 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
645 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
646 |
# system-unconfig is an SMF milestone. Bring the |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
647 |
# system down to the milestone. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
648 |
cmd = [SVCADM, "milestone", "unconfig"] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
649 |
try: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
650 |
Popen.check_call(cmd, stderr=Popen.PIPE, |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
651 |
check_result=(Popen.STDERR_EMPTY, 0)) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
652 |
except CalledProcessError as err: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
653 |
print err.popen.stderr |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
654 |
print _("Unable to initiate unconfiguration process.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
655 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
656 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
657 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
658 |
def parse_unconfig_args(parser, args): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
659 |
# Now parse options specific to the subcommand |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
660 |
(options, sub_cmd) = parser.parse_args(args) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
661 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
662 |
options.alt_root = os.getenv(ALT_ROOT_ENV_VAR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
663 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
664 |
# |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
665 |
# unconfiguration/reconfiguration is not permitted in ROZR non-global |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
666 |
# zone unless such zone is booted in writable mode. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
667 |
# |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
668 |
rozr_test_binary = '/sbin/sh' |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
669 |
if options.alt_root: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
670 |
if not os.access(options.alt_root, os.W_OK): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
671 |
print _("Root filesystem provided for the non-global zone" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
672 |
" does not exist") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
673 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
674 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
675 |
rozr_test_binary = options.alt_root + rozr_test_binary |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
676 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
677 |
if not os.access(rozr_test_binary, os.W_OK): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
678 |
print _("Root filesystem mounted read-only, '%s' operation" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
679 |
" not permitted." % sub_cmd[0]) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
680 |
print _("The likely cause is that sysconfig(1m) was invoked" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
681 |
" in ROZR non-global zone.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
682 |
print _("In that case, see mwac(5) and zonecfg(1m) man pages" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
683 |
" for additional information.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
684 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
685 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
686 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
687 |
# At this time, it is believed that there is no point in allowing |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
688 |
# the prompt to be displayed in the alternate root case. Since there is no |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
689 |
# use case, let's not explode our test matrix. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
690 |
if options.alt_root and options.shutdown: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
691 |
parser.error("Invalid to specify -s option with an alternate root") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
692 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
693 |
# If no grouping is specified, that implies a system level unconfiguration. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
694 |
# Confirm with the user that this is what they want for security reasons. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
695 |
if not options.grouping: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
696 |
if sub_cmd[0] == CONFIGURE: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
697 |
print _("This program will re-configure your system.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
698 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
699 |
print _("This program will unconfigure your system.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
700 |
print _("The system will be reverted to a \"pristine\" state.") |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
701 |
print _("It will not have a name or know about other systems" |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
702 |
" or networks.") |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
703 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
704 |
confirm = raw_input(_("Do you want to continue (y/[n])? ")) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
705 |
if confirm.lower() != "y": |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
706 |
sys.exit(SU_OK) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
707 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
708 |
# They have confirmed, set grouping to system. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
709 |
options.grouping = [SYSTEM] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
710 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
711 |
# Formulate the comma separated string into a list |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
712 |
for grp in options.grouping: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
713 |
if COMMA in grp: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
714 |
options.grouping.extend(map(str.strip, grp.split(","))) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
715 |
options.grouping.remove(grp) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
716 |
break |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
717 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
718 |
# If the user specifies a list of groups and one of them is system set |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
719 |
# to just system since it is a superset of all other groupings. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
720 |
if len(options.grouping) > 1 and SYSTEM in options.grouping: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
721 |
options.grouping = [SYSTEM] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
722 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
723 |
if options.alt_root: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
724 |
svccfg_repository = os.path.join(options.alt_root, SMF_REPOSITORY) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
725 |
os.environ["SVCCFG_REPOSITORY"] = svccfg_repository |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
726 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
727 |
# Check that the functional groups requested are valid |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
728 |
valid_group_check(options.grouping, sub_cmd, parser) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
729 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
730 |
# If not operating on the alternate root, we can and must check to make |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
731 |
# sure that the grouping specified has services of that grouping on the |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
732 |
# image. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
733 |
if not options.alt_root and SYSTEM not in options.grouping: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
734 |
# Check that there exist unconfigurable services with the specified |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
735 |
# grouping on the machine. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
736 |
cmd = [SVCPROP, "-p", "unconfigure/exec", "*"] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
737 |
p_ret = Popen.check_call(cmd, stdout=Popen.STORE, stderr=Popen.DEVNULL, |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
738 |
check_result=Popen.ANY) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
739 |
unconfigurable_svcs = p_ret.stdout.split("\n") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
740 |
for opt_grp in options.grouping: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
741 |
found = False |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
742 |
for svcs in unconfigurable_svcs: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
743 |
if svcs: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
744 |
svc = svcs.split("/:properties")[0] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
745 |
cmd = [SVCPROP, "-p", "sysconfig/group", svc] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
746 |
p_ret = Popen.check_call(cmd, stdout=Popen.STORE, |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
747 |
stderr=Popen.DEVNULL, check_result=Popen.ANY) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
748 |
grping = p_ret.stdout.strip() |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
749 |
if grping == opt_grp: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
750 |
found = True |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
751 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
752 |
if not found: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
753 |
print _("There are no services on the system with grouping " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
754 |
"of %s" % opt_grp) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
755 |
sys.exit(1) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
756 |
|
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
757 |
# |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
758 |
# The user specified a profile file or a directory with profiles to use |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
759 |
# on the configure. Verify that supplied profiles contain .xml suffix |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
760 |
# (otherwise smf(5) will not apply them) and syntactically |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
761 |
# validate them. Then copy them to the temporary location, |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
762 |
# /etc/svc/profile/sc/ directory. The unconfig milestone will move |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
763 |
# them to the site area when it runs. We can't put profiles |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
764 |
# to site directory right now because they may end up applied before |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
765 |
# unconfiguration runs and then removed during unconfiguration. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
766 |
# |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
767 |
if sub_cmd[0] == CONFIGURE and options.profile: |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
768 |
# Verify that supplied path (file or directory) exists. |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
769 |
if not os.path.exists(options.profile): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
770 |
parser.error("%s does not exist." % options.profile) |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
771 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
772 |
# Remove all of /etc/svc/profile/sc |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
773 |
custom_profile_dir = CUSTOM_PROFILE_DIR |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
774 |
if options.alt_root: |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
775 |
custom_profile_dir = os.path.join(options.alt_root, |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
776 |
custom_profile_dir) |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
777 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
778 |
custom_profile_dir = os.path.join("/", custom_profile_dir) |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
779 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
780 |
if os.path.exists(custom_profile_dir): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
781 |
for root, dirs, files in os.walk(custom_profile_dir): |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
782 |
for profile_file in files: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
783 |
os.unlink(os.path.join(root, profile_file)) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
784 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
785 |
os.mkdir(custom_profile_dir) |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
786 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
787 |
if os.path.isdir(options.profile): |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
788 |
# |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
789 |
# Profile directory is specified. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
790 |
# Directory has to contain at least one profile. Start with |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
791 |
# assumption that given directory does not contain any |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
792 |
# profile. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
793 |
# |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
794 |
profile_dir_is_empty = True |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
795 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
796 |
# Validate profiles - all supplied profiles have to validate. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
797 |
for root, dirs, files in os.walk(options.profile): |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
798 |
for pfile in files: |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
799 |
profile_file = os.path.join(root, pfile) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
800 |
# Abort if profile is invalid. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
801 |
if not profile_is_valid(profile_file): |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
802 |
sys.exit(SU_FATAL_ERR) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
803 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
804 |
# Place profile in the temporary site profile area. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
805 |
shutil.copyfile(profile_file, |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
806 |
os.path.join(custom_profile_dir, pfile)) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
807 |
profile_dir_is_empty = False |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
808 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
809 |
# If no profile was found in given directory, abort. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
810 |
if profile_dir_is_empty: |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
811 |
print _("Directory %s does not contain any profile." |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
812 |
% options.profile) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
813 |
sys.exit(SU_FATAL_ERR) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
814 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
815 |
else: |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
816 |
# Profile is a file - validate it. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
817 |
if not profile_is_valid(options.profile): |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
818 |
sys.exit(SU_FATAL_ERR) |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
819 |
|
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
820 |
# Place profile in the temporary site profile area. |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
821 |
shutil.copyfile(options.profile, os.path.join(custom_profile_dir, |
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
822 |
os.path.basename(options.profile))) |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
823 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
824 |
# |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
825 |
# if there is a request to re-configure system in interactive way |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
826 |
# (using SCI tool), check if we are on console, since this is where SCI |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
827 |
# tool will be lauched. If we are not on console, let user confirm this |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
828 |
# is really what one wants to do. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
829 |
# |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
830 |
if sub_cmd[0] == CONFIGURE and not options.profile \ |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
831 |
and not options.alt_root: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
832 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
833 |
print _("Interactive configuration requested.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
834 |
print _("System Configuration Interactive (SCI) tool will be" + |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
835 |
" launched on console.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
836 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
837 |
cmd = [TTY] |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
838 |
try: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
839 |
p = Popen.check_call(cmd, stdout=Popen.STORE, stderr=Popen.PIPE, |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
840 |
check_result=(Popen.STDERR_EMPTY, 0)) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
841 |
except CalledProcessError as err: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
842 |
print err.popen.stderr |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
843 |
# if tty fails, we may not be able to interact with user. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
844 |
# In this case, skip the confirmation prompt. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
845 |
else: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
846 |
terminal_device = p.stdout.strip() |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
847 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
848 |
if terminal_device != CONSOLE: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
849 |
print _("Since you are currently not logged on console,\n" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
850 |
"you may not be able to navigate SCI tool.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
851 |
confirm = raw_input(_("Would you like to proceed with" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
852 |
" re-configuration (y/[n])? ")) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
853 |
if confirm.lower() != "y": |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
854 |
sys.exit(SU_OK) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
855 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
856 |
return (options, sub_cmd) |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
857 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
858 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
859 |
def _parse_options(arguments): |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
860 |
''' Parses sysconfig subcommands''' |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
861 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
862 |
usage = "\t%prog unconfigure [-s] [-g system] " + \ |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
863 |
"[--destructive]" + \ |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
864 |
"\n\t%prog configure [-s] [-g system] " + \ |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
865 |
"[-c config_profile.xml | dir] [--destructive]" + \ |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
866 |
"\n\t%prog create-profile [-g system] " + \ |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
867 |
"[-o output_file] [-l logfile] [-v verbosity] [-b]" |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
868 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
869 |
parser = OptionParser(usage=usage) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
870 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
871 |
try: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
872 |
i = arguments.index(DASH_G) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
873 |
try: |
1339
18ceb31d2b0b
7061367 Install technologies should benefit from PSARC/2011/097 for purposes of locale(5) configuration
Jan Damborsky <dambi@opensolaris.org>
parents:
1322
diff
changeset
|
874 |
if ' ' in arguments[i + 1]: |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
875 |
parser.error("groupings must be a comma separated list") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
876 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
877 |
except IndexError: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
878 |
# Not necessarily an error if there isn't something at the |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
879 |
# index value. The user may have passed in configuration with |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
880 |
# no options, which defaults to system |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
881 |
pass |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
882 |
except ValueError: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
883 |
# no -g option found |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
884 |
pass |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
885 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
886 |
# This allows parsing of different subcommand options. It stops |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
887 |
# parsing after the subcommand is populated. |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
888 |
parser.disable_interspersed_args() |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
889 |
(options, sub_cmd) = parser.parse_args(arguments) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
890 |
parser.enable_interspersed_args() |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
891 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
892 |
if not sub_cmd: |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
893 |
parser.error("Subcommand not specified\n" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
894 |
"Please select one of the following subcommands: " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
895 |
"%s" % SUBCOMMANDS) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
896 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
897 |
if sub_cmd[0] == CONFIGURE or sub_cmd[0] == UNCONFIGURE: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
898 |
# Set up valid options shared by configure and unconfigure subcommands. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
899 |
parser.add_option("-g", dest="grouping", action="callback", |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
900 |
callback=vararg_callback, |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
901 |
help="Grouping to %s" % sub_cmd[0]) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
902 |
parser.add_option("-s", action="store_true", |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
903 |
dest="shutdown", default=False, |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
904 |
help="Shuts down the system after the " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
905 |
"unconfiguration") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
906 |
parser.add_option("--destructive", dest="destructive", |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
907 |
default=False, action="store_true", |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
908 |
help="Do not preserve system data for a " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
909 |
"group") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
910 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
911 |
# configure subcommand additionally supports '-c profile'. |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
912 |
if sub_cmd[0] == CONFIGURE: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
913 |
parser.add_option("-c", dest="profile", |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
914 |
help="Custom site profile to use") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
915 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
916 |
(options, sub_cmd) = parse_unconfig_args(parser, arguments) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
917 |
elif sub_cmd[0] == CREATE_PROFILE: |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
918 |
parser.add_option("-g", dest="grouping", |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
919 |
help=_("Grouping to configure"), |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
920 |
default=SC_GROUP_SYSTEM) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
921 |
parser.add_option("-o", dest="profile", metavar="FILE", |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
922 |
help=_("Saves created system configuration profile " |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
923 |
"into FILE.\t\t[default: %default]"), |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
924 |
default=DEFAULT_SC_LOCATION) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
925 |
parser.add_option("-l", "--log-location", dest="logname", |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
926 |
help=_("Set log location to FILE " |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
927 |
"(default: %default)"), |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
928 |
metavar="FILE", default=DEFAULT_LOG_LOCATION) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
929 |
parser.add_option("-v", "--log-level", dest="log_level", |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
930 |
default=DEFAULT_LOG_LEVEL, |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
931 |
help=_("Set log verbosity to LEVEL. In order of " |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
932 |
"increasing verbosity, valid values are 'error' " |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
933 |
"'warn' 'info' 'debug' or 'input'\n[default:" |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
934 |
" %default]"), |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
935 |
choices=["error", "warn", "info", "debug", "input"], |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
936 |
metavar="LEVEL") |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
937 |
parser.add_option("-b", "--no-color", action="store_true", |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
938 |
dest="force_bw", default=False, |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
939 |
help=_("Force the tool to run in " |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
940 |
"black and white. This may be useful on some SPARC " |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
941 |
"machines with unsupported frame buffers\n")) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
942 |
(options, sub_cmd) = parse_create_profile_args(parser, arguments) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
943 |
else: |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
944 |
parser.error("Invalid subcommand \n" |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
945 |
"Please select one of the following subcommands: " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
946 |
"%s" % SUBCOMMANDS) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
947 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
948 |
return (options, sub_cmd) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
949 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
950 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
951 |
def _exit(logname, errcode=0): |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
952 |
'''Close out the logger and exit with errcode''' |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
953 |
LOGGER.info("**** END ****") |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
954 |
# LOGGER.close() # LOGGER.close() is broken - CR 7012566 |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
955 |
print _("Exiting System Configuration Tool. Log is available at:\n" |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
956 |
"%s") % logname |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
957 |
if isinstance(errcode, unicode): |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
958 |
# pylint: disable-msg=E1103 |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
959 |
errcode = errcode.encode(get_encoding()) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
960 |
sys.exit(errcode) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
961 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
962 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
963 |
def _make_screen_list(main_win): |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
964 |
screens = [] |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
965 |
screens.append(WelcomeScreen(main_win)) |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
966 |
screens.extend(get_screens_from_groups(main_win)) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
967 |
screens.append(SummaryScreen(main_win)) |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
968 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
969 |
return screens |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
970 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
971 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
972 |
def _show_screens(options): |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
973 |
with terminalui as initscr: |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
974 |
win_size_y, win_size_x = initscr.getmaxyx() |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
975 |
if win_size_y < 24 or win_size_x < 80: |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
976 |
msg = _(" Terminal too small. Min size is 80x24." |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
977 |
" Current size is %(x)ix%(y)i.") % \ |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
978 |
{'x': win_size_x, 'y': win_size_y} |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
979 |
sys.exit(msg) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
980 |
screen_list = ScreenList() |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
981 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
982 |
actions = [Action(curses.KEY_F2, _("Continue"), screen_list.get_next), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
983 |
Action(curses.KEY_F3, _("Back"), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
984 |
screen_list.previous_screen), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
985 |
Action(curses.KEY_F6, _("Help"), screen_list.show_help), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
986 |
Action(curses.KEY_F9, _("Quit"), screen_list.quit)] |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
987 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
988 |
main_win = MainWindow(initscr, screen_list, actions, |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
989 |
force_bw=options.force_bw) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
990 |
screen_list.help = HelpScreen(main_win, _("Help Topics"), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
991 |
_("Help Index"), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
992 |
_("Select a topic and press Continue.")) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
993 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
994 |
win_list = _make_screen_list(main_win) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
995 |
screen_list.help.setup_help_data(win_list) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
996 |
screen_list.screen_list = win_list |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
997 |
screen = screen_list.get_next() |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
998 |
|
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
999 |
signal.signal(signal.SIGINT, signal.SIG_IGN) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1000 |
while screen is not None: |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1001 |
eng = InstallEngine.get_instance() |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1002 |
sc_prof = eng.doc.persistent.get_first_child(name="sysconfig") |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1003 |
LOGGER.debug("Sysconfig profile:\n%s", sc_prof) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1004 |
LOGGER.debug("Displaying screen: %s", type(screen)) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1005 |
screen = screen.show() |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1006 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1007 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1008 |
def _prepare_engine(options): |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1009 |
'''Initialize the InstallEngine''' |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1010 |
InstallEngine(loglevel=options.log_level, debug=options.debug) |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1011 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1012 |
logger = logging.getLogger(INSTALL_LOGGER_NAME) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1013 |
logger.addHandler(FileHandler(options.logname, mode='w')) |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1014 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1015 |
# Don't set the global LOGGER until we're certain that logging |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1016 |
# is up and running, so the main() except clause can figure out |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1017 |
# if exception data can be written to the log or if it needs to |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1018 |
# dump to stdout |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1019 |
global LOGGER |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1020 |
LOGGER = logger |
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1021 |
|
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1022 |
terminalui.init_logging(INSTALL_LOGGER_NAME) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1023 |
|
1279
27b2fdc9e5e8
7067136 S11 SCI tool will not write profile to default directory, generating unhandled exception
William Schumann <william.schumann@sun.com>
parents:
1194
diff
changeset
|
1024 |
# if no directory in output profile path |
27b2fdc9e5e8
7067136 S11 SCI tool will not write profile to default directory, generating unhandled exception
William Schumann <william.schumann@sun.com>
parents:
1194
diff
changeset
|
1025 |
if not os.path.dirname(options.profile): |
27b2fdc9e5e8
7067136 S11 SCI tool will not write profile to default directory, generating unhandled exception
William Schumann <william.schumann@sun.com>
parents:
1194
diff
changeset
|
1026 |
# explicitly provide default directory for manifest writer |
27b2fdc9e5e8
7067136 S11 SCI tool will not write profile to default directory, generating unhandled exception
William Schumann <william.schumann@sun.com>
parents:
1194
diff
changeset
|
1027 |
options.profile = './' + options.profile |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1028 |
register_checkpoint(sc_profile=options.profile) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1029 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1030 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1031 |
def _init_locale(): |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1032 |
'''Initializes the locale''' |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1033 |
locale.setlocale(locale.LC_ALL, "") |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1034 |
gettext.install("sysconfig", "/usr/share/locale", unicode=True) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1035 |
set_wrap_on_whitespace(_("DONT_TRANSLATE_BUT_REPLACE_msgstr_WITH_True_" |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1036 |
"OR_False: Should wrap text on whitespace in" |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1037 |
" this language")) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1038 |
BaseScreen.set_default_quit_text(_("Confirm: Quit?"), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1039 |
_("Do you really want to quit?"), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1040 |
_("Cancel"), |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1041 |
_("Quit")) |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1042 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1043 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1044 |
def main(): |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1045 |
'''Main Function''' |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1046 |
_init_locale() |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1047 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1048 |
# Check that the command is executed by the root user |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1049 |
if os.geteuid() != 0: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1050 |
print _("Error: Root privileges are required for " |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1051 |
"this command.") |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1052 |
sys.exit(SU_FATAL_ERR) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1053 |
|
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1054 |
(options, sub_cmd) = _parse_options(sys.argv[1:]) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1055 |
|
1297
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1056 |
if sub_cmd[0] == CONFIGURE or sub_cmd[0] == UNCONFIGURE: |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1057 |
do_unconfigure(sub_cmd[0], options) |
f4b29916f914
7003817 New system unconfiguration
Jan Damborsky <dambi@opensolaris.org>
parents:
1281
diff
changeset
|
1058 |
elif sub_cmd[0] == CREATE_PROFILE: |
1155
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1059 |
do_create_profile(options) |
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1060 |
|
4eb6bb7bb4a0
7032012 Make interactive system configuration scenario zone aware
Jan Damborsky <dambi@opensolaris.org>
parents:
1081
diff
changeset
|
1061 |
sys.exit(SU_OK) |
1026
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1062 |
|
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1063 |
if __name__ == '__main__': |
91b57d590dfa
6998974 Deliver System Configuration Interactive Tool
Jan Damborsky <dambi@opensolaris.org>
parents:
diff
changeset
|
1064 |
main() |