[PATCH] Fix issue #617: Base URL may be an empty string when updating YUM repo

Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com> --- src/kimchi/i18n.py | 2 +- src/kimchi/repositories.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py index df5422f..e4e1a89 100644 --- a/src/kimchi/i18n.py +++ b/src/kimchi/i18n.py @@ -298,7 +298,7 @@ messages = { "KCHREPOS0010E": _("GPG key must be a URL pointing to the ASCII-armored file."), "KCHREPOS0011E": _("Could not update repository %(repo_id)s."), "KCHREPOS0012E": _("Repository %(repo_id)s does not exist."), - "KCHREPOS0013E": _("Specify repository base URL or mirror list in order to create a YUM repository."), + "KCHREPOS0013E": _("Specify repository base URL or mirror list in order to create or update a YUM repository."), "KCHREPOS0014E": _("Repository management tool was not recognized for your system."), "KCHREPOS0015E": _("Repository %(repo_id)s is already enabled."), "KCHREPOS0016E": _("Repository %(repo_id)s is already disabled."), diff --git a/src/kimchi/repositories.py b/src/kimchi/repositories.py index f826ac9..f1e1eb3 100644 --- a/src/kimchi/repositories.py +++ b/src/kimchi/repositories.py @@ -1,7 +1,7 @@ # # Project Kimchi # -# Copyright IBM, Corp. 2014 +# Copyright IBM, Corp. 2014-2015 # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -269,19 +269,25 @@ class YumRepo(object): if repo_id not in repos.repos.keys(): raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id}) - config = params.get('config', {}) entry = repos.getRepo(repo_id) baseurl = params.get('baseurl', None) + config = params.get('config', {}) mirrorlist = config.get('mirrorlist', None) + if len(baseurl.strip()) == 0: + baseurl = None + + if len(mirrorlist.strip()) == 0: + mirrorlist = None + + if baseurl is None and mirrorlist is None: + raise MissingParameter("KCHREPOS0013E") + if baseurl is not None: validate_repo_url(baseurl) entry.baseurl = baseurl - if mirrorlist == '': - mirrorlist = None - if mirrorlist is not None: validate_repo_url(mirrorlist) entry.mirrorlist = mirrorlist -- 2.1.0

Reviewed-by: Daniel Barboza <dhbarboza82@gmail.com> On 03/19/2015 07:00 PM, Aline Manera wrote:
Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com> --- src/kimchi/i18n.py | 2 +- src/kimchi/repositories.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/kimchi/i18n.py b/src/kimchi/i18n.py index df5422f..e4e1a89 100644 --- a/src/kimchi/i18n.py +++ b/src/kimchi/i18n.py @@ -298,7 +298,7 @@ messages = { "KCHREPOS0010E": _("GPG key must be a URL pointing to the ASCII-armored file."), "KCHREPOS0011E": _("Could not update repository %(repo_id)s."), "KCHREPOS0012E": _("Repository %(repo_id)s does not exist."), - "KCHREPOS0013E": _("Specify repository base URL or mirror list in order to create a YUM repository."), + "KCHREPOS0013E": _("Specify repository base URL or mirror list in order to create or update a YUM repository."), "KCHREPOS0014E": _("Repository management tool was not recognized for your system."), "KCHREPOS0015E": _("Repository %(repo_id)s is already enabled."), "KCHREPOS0016E": _("Repository %(repo_id)s is already disabled."), diff --git a/src/kimchi/repositories.py b/src/kimchi/repositories.py index f826ac9..f1e1eb3 100644 --- a/src/kimchi/repositories.py +++ b/src/kimchi/repositories.py @@ -1,7 +1,7 @@ # # Project Kimchi # -# Copyright IBM, Corp. 2014 +# Copyright IBM, Corp. 2014-2015 # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -269,19 +269,25 @@ class YumRepo(object): if repo_id not in repos.repos.keys(): raise NotFoundError("KCHREPOS0012E", {'repo_id': repo_id})
- config = params.get('config', {}) entry = repos.getRepo(repo_id)
baseurl = params.get('baseurl', None) + config = params.get('config', {}) mirrorlist = config.get('mirrorlist', None)
+ if len(baseurl.strip()) == 0: + baseurl = None + + if len(mirrorlist.strip()) == 0: + mirrorlist = None + + if baseurl is None and mirrorlist is None: + raise MissingParameter("KCHREPOS0013E") + if baseurl is not None: validate_repo_url(baseurl) entry.baseurl = baseurl
- if mirrorlist == '': - mirrorlist = None - if mirrorlist is not None: validate_repo_url(mirrorlist) entry.mirrorlist = mirrorlist
participants (3)
-
Aline Manera
-
Crístian Viana
-
Daniel Henrique Barboza