35 from optparse import OptionParser |
35 from optparse import OptionParser |
36 import os |
36 import os |
37 import signal |
37 import signal |
38 import sys |
38 import sys |
39 |
39 |
|
40 from solaris_install import engine |
40 from solaris_install.data_object import DataObject |
41 from solaris_install.data_object import DataObject |
41 from solaris_install import engine |
42 from solaris_install.data_object.data_dict import DataObjectDict |
42 from solaris_install.engine import InstallEngine, RollbackError |
43 from solaris_install.engine import InstallEngine, RollbackError |
|
44 from solaris_install.ict.apply_sysconfig import APPLY_SYSCONFIG_DICT, \ |
|
45 APPLY_SYSCONFIG_PROFILE_KEY |
43 |
46 |
44 _ = gettext.translation("sysconfig", "/usr/share/locale", |
47 _ = gettext.translation("sysconfig", "/usr/share/locale", |
45 fallback=True).ugettext |
48 fallback=True).ugettext |
46 SCI_HELP = "/usr/share/sysconfig/help" |
49 SCI_HELP = "/usr/share/sysconfig/help" |
47 |
50 |
219 sc_kwargs = {'xslt_file': xslt} |
222 sc_kwargs = {'xslt_file': xslt} |
220 sc_args = [sc_profile] |
223 sc_args = [sc_profile] |
221 eng.register_checkpoint(GENERATE_SC_PROFILE_CHKPOINT, |
224 eng.register_checkpoint(GENERATE_SC_PROFILE_CHKPOINT, |
222 "solaris_install/manifest/writer", |
225 "solaris_install/manifest/writer", |
223 "ManifestWriter", args=sc_args, kwargs=sc_kwargs) |
226 "ManifestWriter", args=sc_args, kwargs=sc_kwargs) |
224 |
227 |
|
228 # Add profile location to the ApplySysconfig checkpoint's data dict. |
|
229 # Try to find the ApplySysconfig data dict from the DOC in case it |
|
230 # already exists. |
|
231 as_doc_dict = None |
|
232 as_doc_dict = eng.doc.volatile.get_first_child(name=APPLY_SYSCONFIG_DICT) |
|
233 if as_doc_dict is None: |
|
234 # Initialize new dictionary in DOC |
|
235 as_dict = {APPLY_SYSCONFIG_PROFILE_KEY : sc_profile} |
|
236 as_doc_dict = DataObjectDict(APPLY_SYSCONFIG_DICT, as_dict) |
|
237 eng.doc.volatile.insert_children(as_doc_dict) |
|
238 else: |
|
239 # Add to existing dictionary in DOC |
|
240 as_doc_dict.data_dict[APPLY_SYSCONFIG_PROFILE_KEY] = sc_profile |
|
241 |
225 eng.doc.persistent.insert_children([ConfigProfile()]) |
242 eng.doc.persistent.insert_children([ConfigProfile()]) |
226 |
243 |
227 |
244 |
228 def parse_create_profile_args(parser, args): |
245 def parse_create_profile_args(parser, args): |
229 '''Parses command line options for 'create-profile' sysconfig subcommand. |
246 '''Parses command line options for 'create-profile' sysconfig subcommand. |