Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2:Test
yast2-drbd
bug-295546_res-conf-deleted.pathch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bug-295546_res-conf-deleted.pathch of Package yast2-drbd
diff -Nru yast2-drbd-2.13.1.ori/src/Drbd.ycp yast2-drbd-2.13.1/src/Drbd.ycp --- yast2-drbd-2.13.1.ori/src/Drbd.ycp 2007-07-30 14:58:26.000000000 +0800 +++ yast2-drbd-2.13.1/src/Drbd.ycp 2007-07-30 16:58:45.000000000 +0800 @@ -193,6 +193,26 @@ } +map del_empty_item(map old_map) +{ + map new_map = old_map; + foreach (string key, any val, (map<string, any>) old_map, + { + if (is(val, map)) + { + new_map[key] = del_empty_item((map)val); + } else //if (is(val, string)) + { + if (size((string)val) == 0) + new_map[key] = nil; + //new_map = remove(new_map, key); + } + }); + + return new_map; +} + + global boolean Write() { /* DRBD write dialog caption */ string caption = _("Writing DRBD Configuration"); @@ -229,6 +249,7 @@ //resource config here Progress::NextStage(); + resource_config = del_empty_item(resource_config); recursive_write_map(.drbd.resources, (map<string, any>)resource_config); y2debug("to write resource config: resource_config=%1", resource_config); diff -Nru yast2-drbd-2.13.1.ori/src/resource_conf.ycp yast2-drbd-2.13.1/src/resource_conf.ycp --- yast2-drbd-2.13.1.ori/src/resource_conf.ycp 2007-07-30 14:58:26.000000000 +0800 +++ yast2-drbd-2.13.1/src/resource_conf.ycp 2007-07-31 00:08:51.000000000 +0800 @@ -157,6 +157,9 @@ map<string, any> save_basic_config(map<string, any> res_config) { + if (UI::QueryWidget(`id(`resname), `Value) == nil) + return res_config; + res_config["resname"] = (string) UI::QueryWidget(`id(`resname), `Value); res_config["on"] = $[ (string) UI::QueryWidget(`id(`n1_name), `Value) : $[ @@ -241,8 +244,18 @@ map<string, any> save_advance_config(map<string, any> res_config) { + if (UI::QueryWidget(`id(`protocol), `Value) == nil) + { + if (res_config["protocol"]:nil == nil) res_config["protocol"] = "C"; + if (res_config["incon-degr-cmd"]:nil == nil) res_config["incon-degr-cmd"] = "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f"; + if (res_config["disk", "on-io-error"]:nil == nil) res_config["disk"] = $["on-io-error" : "pass_on"]; + if (res_config["net", "on-disconnect"]:nil == nil) res_config["net"] = $["on-disconnect" : "reconnect"]; + return res_config; + } + + res_config["protocol"] = (string) UI::QueryWidget(`id(`protocol), `Value); - res_config["cmd"] = (string) UI::QueryWidget(`id(`cmd), `Value); + res_config["incon-degr-cmd"] = (string) UI::QueryWidget(`id(`cmd), `Value); res_config["startup"] = $[ "wfc-timeout" : (string) UI::QueryWidget(`id(`wfc_timeout), `Value), @@ -267,14 +280,11 @@ res_config["syncer"] = $[ "al-extents" : (string) UI::QueryWidget(`id(`al_extents), `Value), - "group " : (string) UI::QueryWidget(`id(`group), `Value), + "group" : (string) UI::QueryWidget(`id(`group), `Value), "rate" : (string) UI::QueryWidget(`id(`rate), `Value) ]; - if (res_config["protocol"]:nil == nil) res_config["protocol"] = "C"; - if (res_config["disk", "on-io-error"]:nil == nil) res_config["disk", "on-io-error"] = "pass_on"; - if (res_config["net", "on-disconnect"]:nil == nil) res_config["net", "on-disconnect"] = "reconnect"; - + y2debug("ret = %1", res_config); return res_config; } @@ -287,11 +297,10 @@ if (is(val, map)) { new_map[key] = del_empty_item((map)val); - } else //if (is(val, string)) + } else { if (size((string)val) == 0) new_map[key] = nil; - //new_map = remove(new_map, key); } }); @@ -303,7 +312,7 @@ { any ret = nil; symbol cur_page = `basic; - map<string, any> res_config = Drbd::resource_config[resname]:$[]; + map<string, any> res_config = Drbd::resource_config[resname]:$[]; res_config["resname"] = resname; my_SetContents("resource_conf", res_basic_config_get_dialog(res_config)); @@ -313,7 +322,7 @@ while (true) { - Wizard::SelectTreeItem("resource_conf"); + Wizard::SelectTreeItem("resource_conf"); ret = UI::UserInput(); y2debug("in ResDialog(), UserInput ret=%1", ret); @@ -334,8 +343,8 @@ } - if (ret == `advance || (ret == `ok && cur_page == `basic)) - { + if (ret == `advance || (ret == `ok && cur_page == `basic)) + { if ((string)UI::QueryWidget(`id(`n1_name), `Value) == (string)UI::QueryWidget(`id(`n2_name), `Value)) { Popup::Warning("Node names must be different."); @@ -348,7 +357,7 @@ string str = (string) UI::QueryWidget(`id(the_id), `Value); if (str == nil || size(str) == 0) { - Popup::Warning("Pleas fill all the items."); + Popup::Warning("Pleas fill out all the items."); ret = nil; break; } @@ -362,6 +371,7 @@ cur_page = `advance; res_config = save_basic_config(res_config); + y2debug("res_config = %1", res_config); my_SetContents("resource_conf", res_advance_config_get_dialog(res_config)); @@ -398,8 +408,7 @@ res_config = save_basic_config(res_config); res_config = save_advance_config(res_config); - res_config = (map<string, any>) del_empty_item(res_config); - y2debug("del_empty_item(res_config)=%1", res_config); + y2debug("res_config=%1", res_config); if (size(resname) > 0) { //edit
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor