usr/src/cmd/system-config/__init__.py
changeset 1160 6f7e708c38ec
parent 1155 4eb6bb7bb4a0
child 1164 65b1a3a35195
--- a/usr/src/cmd/system-config/__init__.py	Tue May 31 11:07:18 2011 -0700
+++ b/usr/src/cmd/system-config/__init__.py	Tue May 31 14:21:09 2011 -0700
@@ -37,9 +37,12 @@
 import signal
 import sys
 
+from solaris_install import engine
 from solaris_install.data_object import DataObject
-from solaris_install import engine
+from solaris_install.data_object.data_dict import DataObjectDict
 from solaris_install.engine import InstallEngine, RollbackError
+from solaris_install.ict.apply_sysconfig import APPLY_SYSCONFIG_DICT, \
+    APPLY_SYSCONFIG_PROFILE_KEY
 
 _ = gettext.translation("sysconfig", "/usr/share/locale",
                         fallback=True).ugettext
@@ -221,7 +224,21 @@
     eng.register_checkpoint(GENERATE_SC_PROFILE_CHKPOINT,
                             "solaris_install/manifest/writer",
                             "ManifestWriter", args=sc_args, kwargs=sc_kwargs)
-    
+
+    # Add profile location to the ApplySysconfig checkpoint's data dict.
+    # Try to find the ApplySysconfig data dict from the DOC in case it
+    # already exists.
+    as_doc_dict = None
+    as_doc_dict = eng.doc.volatile.get_first_child(name=APPLY_SYSCONFIG_DICT)
+    if as_doc_dict is None:
+        # Initialize new dictionary in DOC
+        as_dict = {APPLY_SYSCONFIG_PROFILE_KEY : sc_profile}
+        as_doc_dict = DataObjectDict(APPLY_SYSCONFIG_DICT, as_dict)
+        eng.doc.volatile.insert_children(as_doc_dict)
+    else:
+        # Add to existing dictionary in DOC
+        as_doc_dict.data_dict[APPLY_SYSCONFIG_PROFILE_KEY] = sc_profile
+
     eng.doc.persistent.insert_children([ConfigProfile()])