[enh] Catch SSOwat persistent configuration write error.

This commit is contained in:
opi 2016-08-28 15:39:45 +02:00
parent 937f26bdaa
commit d95052a9e9
4 changed files with 11 additions and 6 deletions

View file

@ -209,7 +209,8 @@
"service_unknown": "Unknown service '{service:s}'", "service_unknown": "Unknown service '{service:s}'",
"ssowat_conf_generated": "The SSOwat configuration has been generated", "ssowat_conf_generated": "The SSOwat configuration has been generated",
"ssowat_conf_updated": "The SSOwat configuration has been updated", "ssowat_conf_updated": "The SSOwat configuration has been updated",
"ssowat_persistent_conf_error": "Erro while reading SSOwat persistent configuration", "ssowat_persistent_conf_read_error": "Error while reading SSOwat persistent configuration",
"ssowat_persistent_conf_write_error": "Error while saving SSOwat persistent configuration",
"system_upgraded": "The system has been upgraded", "system_upgraded": "The system has been upgraded",
"system_username_exists": "Username already exists in the system users", "system_username_exists": "Username already exists in the system users",
"unbackup_app": "App '{app:s}' will not be saved", "unbackup_app": "App '{app:s}' will not be saved",

View file

@ -808,7 +808,7 @@ def app_makedefault(auth, app, domain=None):
ssowat_conf = json.loads(str(json_conf.read())) ssowat_conf = json.loads(str(json_conf.read()))
except ValueError: except ValueError:
raise MoulinetteError(errno.EINVAL, raise MoulinetteError(errno.EINVAL,
m18n.n('ssowat_persistent_conf_error')) m18n.n('ssowat_persistent_conf_read_error'))
except IOError: except IOError:
ssowat_conf = {} ssowat_conf = {}

View file

@ -228,7 +228,7 @@ def tools_postinstall(domain, password, ignore_dyndns=False):
ssowat_conf = json.loads(str(json_conf.read())) ssowat_conf = json.loads(str(json_conf.read()))
except ValueError: except ValueError:
raise MoulinetteError(errno.EINVAL, raise MoulinetteError(errno.EINVAL,
m18n.n('ssowat_persistent_conf_error')) m18n.n('ssowat_persistent_conf_read_error'))
except IOError: except IOError:
ssowat_conf = {} ssowat_conf = {}

View file

@ -179,15 +179,19 @@ def user_create(auth, username, firstname, lastname, mail, password,
ssowat_conf = json.loads(str(json_conf.read())) ssowat_conf = json.loads(str(json_conf.read()))
except ValueError: except ValueError:
raise MoulinetteError(errno.EINVAL, raise MoulinetteError(errno.EINVAL,
m18n.n('ssowat_persistent_conf_error')) m18n.n('ssowat_persistent_conf_read_error'))
except IOError: except IOError:
ssowat_conf = {} ssowat_conf = {}
if 'redirected_urls' in ssowat_conf and '/' in ssowat_conf['redirected_urls']: if 'redirected_urls' in ssowat_conf and '/' in ssowat_conf['redirected_urls']:
del ssowat_conf['redirected_urls']['/'] del ssowat_conf['redirected_urls']['/']
try:
with open('/etc/ssowat/conf.json.persistent', 'w+') as f: with open('/etc/ssowat/conf.json.persistent', 'w+') as f:
json.dump(ssowat_conf, f, sort_keys=True, indent=4) json.dump(ssowat_conf, f, sort_keys=True, indent=4)
except IOError:
raise MoulinetteError(errno.EINVAL,
m18n.n('ssowat_persistent_conf_write_error'))
if auth.add(rdn, attr_dict): if auth.add(rdn, attr_dict):