Author: ug Date: Tue Jul 1 10:32:26 2008 New Revision: 48691 URL: http://svn.opensuse.org/viewcvs/yast?rev=48691&view=rev Log: write to system feature added (fate#302171) Modified: trunk/autoinstallation/src/data/sysconfig.autoinstall trunk/autoinstallation/src/include/conftree.ycp trunk/autoinstallation/src/modules/AutoinstConfig.ycp Modified: trunk/autoinstallation/src/data/sysconfig.autoinstall URL: http://svn.opensuse.org/viewcvs/yast/trunk/autoinstallation/src/data/sysconfig.autoinstall?rev=48691&r1=48690&r2=48691&view=diff ============================================================================== --- trunk/autoinstallation/src/data/sysconfig.autoinstall (original) +++ trunk/autoinstallation/src/data/sysconfig.autoinstall Tue Jul 1 10:32:26 2008 @@ -20,3 +20,11 @@ # XSLT_DONTMERGE="addon,conf" +## Type: string +## Default: "add-on,suse_register,partitioning,bootloader,general,report,software" +# +# these modules don't support the "write now to system" feature of the +# AutoYaST UI +# +FORBID_WRITENOW="add-on,suse_register,partitioning,bootloader,general,report,software" + Modified: trunk/autoinstallation/src/include/conftree.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/autoinstallation/src/include/conftree.ycp?rev=48691&r1=48690&r2=48691&view=diff ============================================================================== --- trunk/autoinstallation/src/include/conftree.ycp (original) +++ trunk/autoinstallation/src/include/conftree.ycp Tue Jul 1 10:32:26 2008 @@ -18,6 +18,9 @@ import "Report"; import "AutoinstConfig"; import "Profile"; + import "Mode"; + import "Stage"; + import "AutoinstSoftware"; list<map> Tree = []; @@ -97,6 +100,7 @@ // push button label `PushButton(`id(`reset), _("Reset Confi&guration")), `HStretch(), + `PushButton(`id(`writeNow), _("Write to System") ), // push button label `PushButton(`id(`configure), _("Configur&e") ) ) @@ -234,6 +238,8 @@ "menu_settings" ); Menu = Wizard::AddMenuEntry ( Menu , "file-menu" , AutoinstConfig::ProfileEncrypted ? _("change to decrypted"):_("change to encrypted"), "change_encryption" ); + Menu = Wizard::AddMenuEntry ( Menu , "file-menu" , _("Apply Profile to this System"), + "write_to_system"); Menu = Wizard::AddMenuEntry ( Menu , "file-menu", _("E&xit"), "menu_exit" ); Menu = Wizard::AddMenuEntry ( Menu , "view-menu", _("Configu&ration Tree"), @@ -343,6 +349,7 @@ while(true) { + UI::ChangeWidget(`id(`writeNow), `Enabled, !contains( AutoinstConfig::noWriteNow, moduleName(tree_item) ) ); if( AutoinstConfig::runModule != "" ) { ret = `configure; Wizard::SelectTreeItem( "module@"+AutoinstConfig::runModule ); @@ -388,6 +395,20 @@ module_contents(modulename); } } + else if ( ret == `writeNow ) + { + string modulename=moduleName(tree_item); + if (modulename!="") { + map d = Y2ModuleConfig::ModuleMap[modulename]:$[]; + string module_auto = ""; + if (haskey(d,"X-SuSE-YaST-AutoInstClient")) + module_auto = d["X-SuSE-YaST-AutoInstClient"]:"none"; + else + module_auto = sformat("%1_auto", modulename); + if( Popup::YesNo( sformat( "Do you really want to apply the settings of the module '%1' to your current system?", modulename ) )) + Call::Function(module_auto, ["Write"]); + } + } else if ( issubstring((string)ret,"module@") || issubstring((string)ret,"group@") ) { tree_item = (string)ret; @@ -580,6 +601,29 @@ Wizard::DeleteMenus(); // FIXME: sucks sucks sucks sucks sucks menus(); } + else if ( ret == "write_to_system" ) { + if( Popup::YesNo( "Do you really want to apply the settings of the profile to your current system?" )) { + Profile::Prepare(); + string oldMode = Mode::mode(); + string oldStage = Stage::stage(); + Mode::SetMode("autoinstallation"); + Stage::Set ("continue"); + WFM::CallFunction("inst_autopost", []); + AutoinstSoftware::addPostPackages(Profile::current["software","post-packages"]:[]); + + // the following is needed since 10.3 + // otherwise the already configured network gets removed + if( !haskey(Profile::current, "networking") ) { + Profile::current = add( Profile::current, "networking", $[ "keep_install_network":true ] ); + } + + Pkg::TargetInit ("/", false); + WFM::CallFunction("inst_rpmcopy", []); + WFM::CallFunction("inst_autoconfigure", []); + Mode::SetMode(oldMode); + Stage::Set(oldStage); + } + } else if (ret == "menu_exit") // EXIT { ret = `menu_exit; Modified: trunk/autoinstallation/src/modules/AutoinstConfig.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/autoinstallation/src/modules/AutoinstConfig.ycp?rev=48691&r1=48690&r2=48691&view=diff ============================================================================== --- trunk/autoinstallation/src/modules/AutoinstConfig.ycp (original) +++ trunk/autoinstallation/src/modules/AutoinstConfig.ycp Tue Jul 1 10:32:26 2008 @@ -145,6 +145,11 @@ // global list<string> dontmerge = []; + // the "writo setting now" button is disabled for there modules + // + // + global list<string> noWriteNow = []; + // // Halt after initial phase // @@ -337,8 +342,10 @@ Repository = Misc::SysconfigRead( .sysconfig.autoinstall.REPOSITORY, "/var/lib/autoinstall/repository/"); classDir = Misc::SysconfigRead( .sysconfig.autoinstall.CLASS_DIR, Repository + "/classes" ); string tmp_dontmerge = Misc::SysconfigRead( .sysconfig.autoinstall.XSLT_DONTMERGE, "addon,conf" ); + string tmp_no_writenow = Misc::SysconfigRead( .sysconfig.autoinstall.FORBID_WRITENOW, "add-on,suse_register,partitioning,bootloader,general,report"); dontmerge = splitstring(tmp_dontmerge, ","); + noWriteNow = splitstring(tmp_no_writenow, ","); // Set the defaults, just in case. if (Repository == "" || Repository == nil ) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org