Fixes issue with loading default settings.yaml

fuelmenu fails to start with its default /etc/fuel/astute.yaml.
For now if some indexes failed to load just a warning message will be printed.

Change-Id: I83c0f90c66944c225ce7642df3a3a2e7b9b83371
Closes-Bug: #1513719
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Co-Authored-By: Fedor Zhadaev <fzhadaev@mirantis.com>
This commit is contained in:
Ruslan Aliev 2015-11-25 22:26:24 +03:00 committed by Fedor Zhadaev
parent 680b720291
commit 12d8313b31
1 changed files with 16 additions and 10 deletions

View File

@ -13,6 +13,7 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import six
from fuelmenu.common import dialog
from fuelmenu.common import network
@ -63,16 +64,21 @@ class ModuleHelper(object):
defaultsettings = Settings().read(modobj.parent.defaultsettingsfile)
usersettings = Settings().read(modobj.parent.settingsfile)
oldsettings = dict_merge(defaultsettings, usersettings)
for setting in modobj.defaults.keys():
if "label" in setting:
continue
elif ignoredparams and setting in ignoredparams:
continue
elif "/" in setting:
part1, part2 = setting.split("/")
modobj.defaults[setting]["value"] = oldsettings[part1][part2]
else:
modobj.defaults[setting]["value"] = oldsettings[setting]
types_to_skip = (WidgetType.BUTTON, WidgetType.LABEL)
for setting, setting_def in six.iteritems(modobj.defaults):
if (setting_def.get('type') in types_to_skip or
ignoredparams and setting in ignoredparams):
continue
try:
if "/" in setting:
part1, part2 = setting.split("/")
new_value = oldsettings[part1][part2]
else:
new_value = oldsettings[setting]
setting_def["value"] = new_value
except KeyError:
log.warning("Failed to load %s value from settings", setting)
return oldsettings
@classmethod