[PATCH] add/use strict option in find_build_id
Ralph Bean
rbean at redhat.com
Tue Mar 10 19:33:56 UTC 2015
On Tue, Mar 10, 2015 at 03:17:03PM -0400, Mike McLean wrote:
> ---
> hub/kojihub.py | 37 ++++++++++++++-----------------------
> 1 file changed, 14 insertions(+), 23 deletions(-)
>
> diff --git a/hub/kojihub.py b/hub/kojihub.py
> index a6360af..9decf7c 100644
> --- a/hub/kojihub.py
> +++ b/hub/kojihub.py
> @@ -3176,7 +3176,7 @@ def get_user(userInfo=None,strict=False):
> raise koji.GenericError, 'invalid type for userInfo: %s' % type(userInfo)
> return _singleRow(q,locals(),fields,strict=strict)
>
> -def find_build_id(X):
> +def find_build_id(X, strict=False):
> if isinstance(X,int) or isinstance(X,long):
> return X
> elif isinstance(X,str):
> @@ -3201,7 +3201,10 @@ def find_build_id(X):
> r=c.fetchone()
> #log_error("%r" % r )
> if not r:
> - return None
> + if strict:
> + raise koji.GenericError, 'No matching build found: %r' % X
> + else:
> + return None
> return r[0]
>
> def get_build(buildInfo, strict=False):
> @@ -3231,12 +3234,9 @@ def get_build(buildInfo, strict=False):
> If there is no build matching the buildInfo given, and strict is specified,
> raise an error. Otherwise return None.
> """
> - buildID = find_build_id(buildInfo)
> + buildID = find_build_id(buildInfo, strict=strict)
> if buildID == None:
> - if strict:
> - raise koji.GenericError, 'No matching build found: %s' % buildInfo
> - else:
> - return None
> + return None
>
> fields = (('build.id', 'id'), ('build.version', 'version'), ('build.release', 'release'),
> ('build.epoch', 'epoch'), ('build.state', 'state'), ('build.completion_time', 'completion_time'),
> @@ -3475,12 +3475,9 @@ def get_maven_build(buildInfo, strict=False):
> """
> fields = ('build_id', 'group_id', 'artifact_id', 'version')
>
> - build_id = find_build_id(buildInfo)
> + build_id = find_build_id(buildInfo, strict=strict)
> if not build_id:
> - if strict:
> - raise koji.GenericError, 'No matching build found: %s' % buildInfo
> - else:
> - return None
> + return None
> query = """SELECT %s
> FROM maven_builds
> WHERE build_id = %%(build_id)i""" % ', '.join(fields)
> @@ -3498,12 +3495,9 @@ def get_win_build(buildInfo, strict=False):
> """
> fields = ('build_id', 'platform')
>
> - build_id = find_build_id(buildInfo)
> + build_id = find_build_id(buildInfo, strict=strict)
> if not build_id:
> - if strict:
> - raise koji.GenericError, 'No matching build found: %s' % buildInfo
> - else:
> - return None
> + return None
> query = QueryProcessor(tables=('win_builds',), columns=fields,
> clauses=('build_id = %(build_id)i',),
> values={'build_id': build_id})
> @@ -3522,12 +3516,9 @@ def get_image_build(buildInfo, strict=False):
> Returns a map containing the following keys:
> build_id: id of the build
> """
> - build_id = find_build_id(buildInfo)
> + build_id = find_build_id(buildInfo, strict=strict)
> if not build_id:
> - if strict:
> - raise koji.GenericError, 'No matching build found: %s' % buildInfo
> - else:
> - return None
> + return None
> query = QueryProcessor(tables=('image_builds',), columns=('build_id',),
> clauses=('build_id = %(build_id)i',),
> values={'build_id': build_id})
> @@ -8268,7 +8259,7 @@ class RootExports(object):
> If no build has the given ID, or the build generated no RPMs, an empty list is returned."""
> if not isinstance(build, int):
> #lookup build id
> - build = self.findBuildID(build)
> + build = self.findBuildID(build, strict=True)
> return self.listRPMs(buildID=build)
>
> getRPM = staticmethod(get_rpm)
> --
> 1.9.3
Looks good.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/buildsys/attachments/20150310/51b89bf1/attachment.sig>
More information about the buildsys
mailing list