[yast-commit] r63439 - in /trunk/storage: package/ storage/src/ storage/src/include/ storage/src/modules/ storage/src/testsuite/

Author: fehr Date: Thu Feb 17 15:49:12 2011 New Revision: 63439 URL: http://svn.opensuse.org/viewcvs/yast?rev=63439&view=rev Log: add option to demand and proposal using btrfs as default filesystem Added: trunk/storage/storage/src/testsuite/.cvsignore Modified: trunk/storage/package/yast2-storage.changes trunk/storage/storage/src/include/custom_part_dialogs.ycp trunk/storage/storage/src/inst_disk_proposal.ycp trunk/storage/storage/src/inst_target_part.ycp trunk/storage/storage/src/modules/Partitions.ycp trunk/storage/storage/src/modules/StorageProposal.ycp Modified: trunk/storage/package/yast2-storage.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/package/yast2-storage.cha... ============================================================================== --- trunk/storage/package/yast2-storage.changes (original) +++ trunk/storage/package/yast2-storage.changes Thu Feb 17 15:49:12 2011 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Thu Feb 17 15:47:57 CET 2011 - fehr@suse.de + +- add option to demand and proposal using btrfs as default + filesystem + +------------------------------------------------------------------- Wed Jan 26 16:03:35 CET 2011 - fehr@suse.de - add button to trigger query for crypt password (bnc #666883) Modified: trunk/storage/storage/src/include/custom_part_dialogs.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/include/custo... ============================================================================== --- trunk/storage/storage/src/include/custom_part_dialogs.ycp (original) +++ trunk/storage/storage/src/include/custom_part_dialogs.ycp Thu Feb 17 15:49:12 2011 @@ -70,74 +70,6 @@ } - boolean QueryProposalPassword() - { - if (!isempty(StorageProposal::GetProposalPassword())) - return true; - - UI::OpenDialog(`VBox( - `Label(_("Enter your password for the proposal encryption.")), - `MinWidth(40, - `Password(`id(`pw1), - // Label: get password for user root - // Please use newline if label is longer than 40 characters - _("Password:"), "")), - `VSpacing(0.5), - `MinWidth(40, - `Password(`id(`pw2), - // Label: get same password again for verification - // Please use newline if label is longer than 40 characters - _("Reenter the password for verification:"), "")), - `Label(_("Don't forget what you enter here!")), - `ButtonBox( - `PushButton(`id(`ok), `opt(`default), Label::OKButton()), - `PushButton(`id(`cancel), Label::CancelButton()) - ) - )); - - string password = ""; - symbol widget = nil; - - repeat - { - // Clear password fields on every round. - UI::ChangeWidget(`id(`pw1), `Value, ""); - UI::ChangeWidget(`id(`pw2), `Value, ""); - - UI::SetFocus(`id(`pw1)); - - widget = (symbol) UI::UserInput(); - - switch (widget) - { - case `ok: - - password = (string) UI::QueryWidget(`id(`pw1), `Value); - string tmp = (string) UI::QueryWidget(`id(`pw2), `Value); - - if (!Storage::CheckEncryptionPasswords(password, tmp, 8, false)) - widget = `again; - - break; - } - - } until (widget == `cancel || widget == `ok); - - UI::CloseDialog(); - - if (widget == `ok) - { - StorageProposal::SetProposalPassword(password); - return true; - } - else - { - return false; - } - - } - - ////////////////////////////////////////////////////////////////////////////// // Dialog Password for Crypted FS Update ////////////////////////////////////////////////////////////////////////////// Modified: trunk/storage/storage/src/inst_disk_proposal.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/inst_disk_pro... ============================================================================== --- trunk/storage/storage/src/inst_disk_proposal.ycp (original) +++ trunk/storage/storage/src/inst_disk_proposal.ycp Thu Feb 17 15:49:12 2011 @@ -141,12 +141,6 @@ string detailed_str = _("&Create Partition Setup..."); // Radiobutton for partition dialog string import_str = _("&Import Partition Setup..."); -// Radiobutton for partition dialog -string part_str = _("&Partition Based"); -// Radiobutton for partition dialog -string lvm_str = _("&LVM Based"); -// Checkbox for partition dialog -string encrypt_str = _("Encrypt Volume Group"); string target_is = ""; @@ -185,18 +179,10 @@ y2milestone( "current proposal: %1", changes ); -term rframe = - `HBox( - `HSpacing(3), - `Top(`MinWidth(20, `Left(`RadioButton(`id(`part), `opt(`notify), part_str, - !StorageProposal::GetProposalLvm())))), - `HSpacing(3), - `Top(`MinWidth(20, `VBox(`Left(`RadioButton(`id(`lvm), `opt(`notify), lvm_str, - StorageProposal::GetProposalLvm())), - `Left(`HBox(`HSpacing(4), `CheckBox(`id(`encrypt), `opt(`notify), encrypt_str, - StorageProposal::GetProposalEncrypt())))))), - `HSpacing(3) - ); +term rframe = + `HBox( `HSpacing(20), + StorageProposal::AddCommonWidgets(), + `HSpacing(3) ); term bframe = `VBox( @@ -215,8 +201,7 @@ `HSpacing(2), `VBox( `MinHeight(8, `RichText(`id(`richtext), changes)), - `VSpacing(1), - `RadioButtonGroup( `id("prop_mode"), rframe ), + rframe, `VSpacing(2), bframe, `VStretch() @@ -282,8 +267,7 @@ repeat { - symbol old_mode = (symbol) UI::QueryWidget(`id("prop_mode"), `CurrentButton); - y2milestone( "old_mode %1", old_mode ); + boolean val = false; Wizard::SetFocusToNextButton(); ret = (symbol)Wizard::UserInput(); y2milestone( "USERINPUT %1", ret ); @@ -291,45 +275,13 @@ if( ret == `abort && Popup::ReallyAbort(true) ) return `abort; - if( contains( [ `lvm, `part, `encrypt ], ret ) ) + if( contains( [ `lvm, `home, `btrfs, `encrypt ], ret ) ) { + val = (boolean) UI::QueryWidget(`id(ret), `Value); if( AskOverwriteChanges() ) { target_is = "SUGGESTION"; - - switch (ret) - { - case `part: - StorageProposal::SetProposalLvm(false); - UI::ChangeWidget(`id(`encrypt), `Enabled, false); - break; - - case `lvm: - StorageProposal::SetProposalLvm(true); - UI::ChangeWidget(`id(`encrypt), `Enabled, true); - break; - - case `encrypt: - - if ((boolean) UI::QueryWidget(`id(`encrypt), `Value)) - { - if (QueryProposalPassword()) - { - StorageProposal::SetProposalEncrypt(true); - } - else - { - UI::ChangeWidget(`id(`encrypt), `Value, false); - continue; - } - } - else - { - StorageProposal::SetProposalEncrypt(false); - } - break; - } - + StorageProposal::HandleCommonWidgets( ret ); Storage::ResetOndiskTarget(); Storage::AddMountPointsForWin(Storage::GetTargetMap()); map prop = StorageProposal::get_inst_prop(Storage::GetTargetMap()); @@ -350,9 +302,7 @@ UI::ChangeWidget(`id(`richtext), `Value, changes); } else - { - UI::ChangeWidget( `id("prop_mode"), `CurrentButton, old_mode ); - } + UI::ChangeWidget(`id(ret), `Value, !val); } else if (contains([ `modify, `detailed, `import ], ret)) { @@ -395,13 +345,15 @@ execSubscreens( ret ); changes = Storage::ChangeText(); UI::ChangeWidget(`id(`richtext), `Value, changes); - if( ret==`detailed ) - { - UI::ChangeWidget(`id(`part), `Value, !StorageProposal::GetProposalLvm()); - UI::ChangeWidget(`id(`lvm), `Value, StorageProposal::GetProposalLvm()); - UI::ChangeWidget(`id(`encrypt), `Enabled, StorageProposal::GetProposalLvm()); - UI::ChangeWidget(`id(`encrypt), `Value, StorageProposal::GetProposalEncrypt()); - } + val = StorageProposal::GetProposalLvm(); + UI::ChangeWidget(`id(`lvm), `Value, val ); + UI::ChangeWidget(`id(`encrypt), `Enabled, val ); + UI::ChangeWidget( `id(`encrypt), `Value, + val && StorageProposal::GetProposalEncrypt() ); + UI::ChangeWidget(`id(`home), `Value, + StorageProposal::GetProposalHome() ); + UI::ChangeWidget(`id(`btrfs), `Value, + StorageProposal::GetProposalBtrfs() ); } } until ( ret == `next || ret == `back || ret == `cancel ); Modified: trunk/storage/storage/src/inst_target_part.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/inst_target_p... ============================================================================== --- trunk/storage/storage/src/inst_target_part.ycp (original) +++ trunk/storage/storage/src/inst_target_part.ycp Thu Feb 17 15:49:12 2011 @@ -17,6 +17,7 @@ import "Mode"; import "Popup"; import "Storage"; + import "StorageProposal"; import "Partitions"; import "Product"; import "Label"; @@ -160,7 +161,7 @@ // this is the resize case // vbox = create_resize_dialog (partitions, target["cyl_size"]:1 ); - vbox = add_common_widgets( vbox ); + vbox = add( vbox, StorageProposal::AddCommonWidgets()); y2milestone ("can resize !"); } else @@ -170,7 +171,7 @@ map tmp = construct_partition_dialog( partitions, target["label"]:"", target["cyl_size"]:1 ); - vbox = add_common_widgets( tmp["term"]:`Empty() ); + vbox = add( tmp["term"]:`VBox(), StorageProposal::AddCommonWidgets()); } } @@ -179,7 +180,7 @@ else { vbox = create_whole_disk_dialog(); - vbox = add_common_widgets( vbox ); + vbox = add( vbox, StorageProposal::AddCommonWidgets()); } // Since resize case and normal case have different help texts we need @@ -220,18 +221,10 @@ { break; } - else if (ret == `lvm) - { - UI::ChangeWidget(`id(`encrypt), `Enabled, (boolean) UI::QueryWidget(`id(`lvm), `Value)); - } - else if (ret == `encrypt) - { - if ((boolean) UI::QueryWidget(`id(`encrypt), `Value)) + else if( contains( [ `lvm, `home, `btrfs, `encrypt ], ret ) ) { - if (!QueryProposalPassword()) - UI::ChangeWidget(`id(`encrypt), `Value, false); - } - } + StorageProposal::HandleCommonWidgets(ret); + } else if (ret == `full) { // Set all checkboxes @@ -396,12 +389,7 @@ y2milestone ("partitions '%1'", partitions); - StorageProposal::SetProposalHome( (boolean)UI::QueryWidget( `id(`home), `Value )); - StorageProposal::SetProposalLvm((boolean) UI::QueryWidget(`id(`lvm), `Value)); - StorageProposal::SetProposalEncrypt((boolean) UI::QueryWidget(`id(`encrypt), `Value)); - ok = create_partitions( targetMap, target, partitions ); - StorageProposal::SetProposalDefault(true); if( !ok ) { string reason = _("Too few partitions are marked for removal Modified: trunk/storage/storage/src/modules/Partitions.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/modules/Parti... ============================================================================== --- trunk/storage/storage/src/modules/Partitions.ycp (original) +++ trunk/storage/storage/src/modules/Partitions.ycp Thu Feb 17 15:49:12 2011 @@ -131,7 +131,11 @@ { if (default_boot_fs == `unknown) { - default_boot_fs = DefaultFs(); + + if( DefaultFs()!=`btrfs ) + default_boot_fs = DefaultFs(); + else + default_boot_fs = `ext4; if (EfiBoot()) { default_boot_fs = `vfat; Modified: trunk/storage/storage/src/modules/StorageProposal.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/modules/Stora... ============================================================================== --- trunk/storage/storage/src/modules/StorageProposal.ycp (original) +++ trunk/storage/storage/src/modules/StorageProposal.ycp Thu Feb 17 15:49:12 2011 @@ -19,6 +19,7 @@ import "FileSystems"; import "Partitions"; + import "Label"; import "Storage"; import "ProductFeatures"; import "Arch"; @@ -49,6 +50,7 @@ boolean proposal_home = false; boolean proposal_lvm = false; boolean proposal_encrypt = false; + boolean proposal_btrfs = false; string proposal_password = ""; map<string, any> cfg_xml = $[]; @@ -87,6 +89,17 @@ y2milestone("SetProposalEncrypt val:%1", val); } + global boolean GetProposalBtrfs() + { + return proposal_btrfs; + } + + global void SetProposalBtrfs(boolean val) + { + proposal_btrfs = val; + y2milestone("SetProposalBtrfs val:%1", val); + } + global string GetProposalPassword() { return proposal_password; @@ -107,8 +120,10 @@ SetProposalEncrypt(false); SetProposalPassword(""); } - y2milestone("SetProposalDefault home:%1 lvm:%2 encypt:%3 home_only:%4", proposal_home, - proposal_lvm, proposal_encrypt, home_only); + SetProposalBtrfs(cfg_xml["btrfs"]:false); + y2milestone("SetProposalDefault home:%1 lvm:%2 encypt:%3 home_only:%4 btrfs:%5", + proposal_home, proposal_lvm, proposal_encrypt, home_only, + proposal_btrfs); } @@ -162,7 +177,6 @@ return cfg_xml; } - global string GetProposalVM() { string ret = ""; @@ -174,6 +188,14 @@ return ret; } +symbol PropDefaultFs() + { + symbol ret = Partitions::DefaultFs(); + if( GetProposalBtrfs() ) + ret = `btrfs; + return( ret ); + } + map<string, map> EncryptDevices(map<string, map> target, string vg) { @@ -399,7 +421,10 @@ boolean need_boot( map disk ) { - return( Partitions::NeedBoot() || + y2milestone( "need_boot NeedBoot:%1 GetProposalBtrfs:%2 type:%3", + Partitions::NeedBoot(), GetProposalBtrfs(), + disk["type"]:`CT_UNKNOWN ); + return( Partitions::NeedBoot() || GetProposalBtrfs() || disk["type"]:`CT_UNKNOWN == `CT_DMRAID ); } @@ -413,7 +438,8 @@ ``(e["mount"]:""=="/"))) > 0; map tc = conf; y2milestone( "try_add_boot conf %1", conf ); - y2milestone( "try_add_boot boot %1 root %2 force %3", boot, root, force ); + y2milestone( "try_add_boot boot %1 root %2 force %3 need_boot:%4", + boot, root, force, need_boot(disk) ); if( !boot && (root||force) && (disk["cyl_count"]:0>Partitions::BootCyl() || need_boot(disk)) ) { @@ -2543,7 +2569,6 @@ return( ret ); } - list<map> can_mp_reuse( string mp, integer min, integer max, list<map> partitions ) { @@ -2571,8 +2596,7 @@ if( !p["delete"]:false && p["device"]:""==pl[0,"device"]:"" ) { - p = Storage::SetVolOptions( p, mp, - Partitions::DefaultFs(), + p = Storage::SetVolOptions( p, mp, PropDefaultFs(), "", "", "" ); } return( p ); @@ -2609,7 +2633,7 @@ list<map> ret = []; y2milestone( "get_proposal have_swap:%1 disk %2", have_swap, disk ); map root = $[ "mount" : "/", "increasable" : true, - "fsys" : Partitions::DefaultFs(), "size" : 0 ]; + "fsys" : PropDefaultFs(), "size" : 0 ]; map opts = GetControlCfg(); map conf = $[ "partitions" : [] ]; list<integer> swap_sizes = []; @@ -2627,7 +2651,7 @@ if( GetProposalHome() && opts["home_limit"]:0 < avail_size ) { map home = $[ "mount" : "/home", "increasable" : true, - "fsys" : Partitions::DefaultFs(), "size" : 512*1024*1024, + "fsys" : PropDefaultFs(), "size" : 512*1024*1024, "pct" : 100-opts["root_percent"]:40 ]; conf["partitions"] = maplist( map p, conf["partitions"]:[], ``{ @@ -2946,7 +2970,7 @@ target = AddWinInfo(target); ret["target"] = target; map root = $[ "mount" : "/", "increasable" : true, - "fsys" : Partitions::DefaultFs(), "size" : 0 ]; + "fsys" : PropDefaultFs(), "size" : 0 ]; map opts = GetControlCfg(); list<string> ddev = get_disk_try_list( target, true ); string sol_disk = ""; @@ -3149,7 +3173,7 @@ opts["home_limit"]:0 < avail_size ) { map home = $[ "mount" : "/home", "increasable" : true, - "fsys" : Partitions::DefaultFs(), + "fsys" : PropDefaultFs(), "size" : 512*1024*1024, "pct" : 100-opts["root_percent"]:40 ]; conf["partitions"] = @@ -3609,8 +3633,7 @@ map p = $[ "create":true, "name" : "root", "device" : ret["device"]:"" + "/root", "size_k" : pe_to_sizek(root_pe,pe) ]; - p = Storage::SetVolOptions( p, "/", Partitions::DefaultFs(), - "", "", "" ); + p = Storage::SetVolOptions( p, "/", PropDefaultFs(), "", "", "" ); y2milestone( "modify_vm created %1", p ); ret["partitions"] = add( ret["partitions"]:[], p ); } @@ -3620,7 +3643,7 @@ ``{ if( p["name"]:"" == "root" ) { - p = Storage::SetVolOptions( p, "/", Partitions::DefaultFs(), + p = Storage::SetVolOptions( p, "/", PropDefaultFs(), "", "", "" ); y2milestone( "modify_vm reuse %1", p ); } @@ -3655,8 +3678,7 @@ map p = $[ "create":true, "name" : "home", "device" : ret["device"]:"" + "/home", "size_k" : pe_to_sizek(home_pe,pe) ]; - p = Storage::SetVolOptions( p, "/home", Partitions::DefaultFs(), - "", "", "" ); + p = Storage::SetVolOptions( p, "/home", PropDefaultFs(), "", "", "" ); y2milestone( "modify_vm created %1", p ); ret["partitions"] = add( ret["partitions"]:[], p ); } @@ -3666,7 +3688,7 @@ ``{ if( p["name"]:"" == "home" ) { - p = Storage::SetVolOptions( p, "/home", Partitions::DefaultFs(), + p = Storage::SetVolOptions( p, "/home", PropDefaultFs(), "", "", "" ); y2milestone( "modify_vm reuse %1", p ); } @@ -4012,4 +4034,144 @@ return ret; } +global term AddCommonWidgets() + { + term vb = `VBox(); + vb = add( vb, + `Left(`HBox(`HSpacing(3), `CheckBox(`id(`lvm), `opt(`notify), + // Label text + _("Create &LVM Based Proposal"), GetProposalLvm() )))); + vb = add( vb, + `Left(`HBox(`HSpacing(7), `CheckBox(`id(`encrypt), `opt(`notify), + // Label text + _("Encr&ypt Volume Group"), GetProposalEncrypt())))); + vb = add( vb, `VSpacing(0.5) ); + vb = add( vb, + `Left(`HBox(`HSpacing(3), `CheckBox( `id(`home), `opt(`notify), + // Label text + _("Propose Separate &Home Partition"), + GetProposalHome() )))); + vb = add( vb, `VSpacing(0.5) ); + vb = add( vb, + `Left(`HBox(`HSpacing(3), `CheckBox(`id(`btrfs), `opt(`notify), + // Label text + _("Use &Btrfs as default Filesystem"), + GetProposalBtrfs() )))); + term frame = `VBox( `VSpacing(1.5), + `HVCenter( `VBox( `Left(`Label( `opt(`boldFont), _("Proposal settings"))), `VSpacing(0.3), `HVCenter(vb)) )); + //`HVCenter(`Frame( _("Proposal settings"), `HVCenter(vb) ))); + y2milestone( "AddCommonWidgets Home:%1 Btrfs:%2", GetProposalHome(), + GetProposalBtrfs() ); + return( frame ); + } + +boolean QueryProposalPassword() + { + if (!isempty(StorageProposal::GetProposalPassword())) + return true; + + UI::OpenDialog(`VBox( + `Label(_("Enter your password for the proposal encryption.")), + `MinWidth(40, + `Password(`id(`pw1), + // Label: get password for user root + // Please use newline if label is longer than 40 characters + _("Password:"), "")), + `VSpacing(0.5), + `MinWidth(40, + `Password(`id(`pw2), + // Label: get same password again for verification + // Please use newline if label is longer than 40 characters + _("Reenter the password for verification:"), "")), + `Label(_("Don't forget what you enter here!")), + `ButtonBox( + `PushButton(`id(`ok), `opt(`default), Label::OKButton()), + `PushButton(`id(`cancel), Label::CancelButton()) + ) + )); + + string password = ""; + symbol widget = nil; + + repeat + { + // Clear password fields on every round. + UI::ChangeWidget(`id(`pw1), `Value, ""); + UI::ChangeWidget(`id(`pw2), `Value, ""); + + UI::SetFocus(`id(`pw1)); + + widget = (symbol) UI::UserInput(); + + switch (widget) + { + case `ok: + + password = (string) UI::QueryWidget(`id(`pw1), `Value); + string tmp = (string) UI::QueryWidget(`id(`pw2), `Value); + + if (!Storage::CheckEncryptionPasswords(password, tmp, 8, false)) + widget = `again; + + break; + } + } until (widget == `cancel || widget == `ok); + + UI::CloseDialog(); + + if (widget == `ok) + { + StorageProposal::SetProposalPassword(password); + return true; + } + else + { + return false; + } + } + +global boolean HandleCommonWidgets( symbol id ) + { + boolean ret = false; + boolean val = (boolean) UI::QueryWidget(`id(id), `Value); + y2milestone( "id:%1 val:%2", ret, val ); + switch( id ) + { + case `lvm: + StorageProposal::SetProposalLvm(val); + UI::ChangeWidget(`id(`encrypt), `Enabled, val); + ret = true; + break; + + case `encrypt: + if( val ) + { + if (QueryProposalPassword()) + { + StorageProposal::SetProposalEncrypt(true); + } + else + { + UI::ChangeWidget(`id(`encrypt), `Value, false); + } + } + else + { + StorageProposal::SetProposalEncrypt(false); + } + ret = true; + break; + + case `btrfs: + StorageProposal::SetProposalBtrfs(val); + ret = true; + break; + + case `home: + StorageProposal::SetProposalHome(val); + ret = true; + break; + } + return( ret ); + } } Added: trunk/storage/storage/src/testsuite/.cvsignore URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/testsuite/.cv... ============================================================================== --- trunk/storage/storage/src/testsuite/.cvsignore (added) +++ trunk/storage/storage/src/testsuite/.cvsignore Thu Feb 17 15:49:12 2011 @@ -0,0 +1,11 @@ +Makefile +Makefile.in +site.exp +*.sum +*.log +tmp.out* +tmp.err* +tmp.log* +config +run +*.test -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org
participants (1)
-
fehr@svn2.opensuse.org