mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-05-13 18:01:28 +00:00
lpapiwrapper.py: Added methods needed for buildd.
This commit is contained in:
parent
3fb1ca0b7c
commit
f3e8c0ee84
@ -348,6 +348,11 @@ class SourcePackage(BaseWrapper):
|
|||||||
'''
|
'''
|
||||||
resource_type = 'https://api.edge.launchpad.net/beta/#source_package_publishing_history'
|
resource_type = 'https://api.edge.launchpad.net/beta/#source_package_publishing_history'
|
||||||
|
|
||||||
|
def __init__(self, *args):
|
||||||
|
# Don't share _builds between different SourcePackages
|
||||||
|
if '_builds' not in self.__dict__:
|
||||||
|
self._builds = dict()
|
||||||
|
|
||||||
def getPackageName(self):
|
def getPackageName(self):
|
||||||
'''
|
'''
|
||||||
Returns the source package name.
|
Returns the source package name.
|
||||||
@ -366,6 +371,57 @@ class SourcePackage(BaseWrapper):
|
|||||||
'''
|
'''
|
||||||
return self._lpobject.component_name
|
return self._lpobject.component_name
|
||||||
|
|
||||||
|
def _fetch_builds(self):
|
||||||
|
'''Populate self._builds with the build records.'''
|
||||||
|
builds = self.getBuilds()
|
||||||
|
for build in builds:
|
||||||
|
self._builds[build.arch_tag] = Build(build)
|
||||||
|
|
||||||
|
def getBuildStates(self, archs):
|
||||||
|
res = list()
|
||||||
|
|
||||||
|
if not self._builds:
|
||||||
|
self._fetch_builds()
|
||||||
|
|
||||||
|
for arch in archs:
|
||||||
|
build = self._builds.get(arch)
|
||||||
|
if build:
|
||||||
|
res.append(' %s' % build)
|
||||||
|
return "Build state(s) for '%s':\n%s" % (
|
||||||
|
self.getPackageName(), '\n'.join(res))
|
||||||
|
|
||||||
|
def rescoreBuilds(self, archs, score):
|
||||||
|
res = list()
|
||||||
|
|
||||||
|
if not self._builds:
|
||||||
|
self._fetch_builds()
|
||||||
|
|
||||||
|
for arch in archs:
|
||||||
|
build = self._builds.get(arch)
|
||||||
|
if build:
|
||||||
|
if build.rescore(score):
|
||||||
|
res.append(' %s: done' % arch)
|
||||||
|
else:
|
||||||
|
res.append(' %s: failed' % arch)
|
||||||
|
return "Rescoring builds of '%s' to %i:\n%s" % (
|
||||||
|
self.getPackageName(), score, '\n'.join(res))
|
||||||
|
|
||||||
|
def retryBuilds(self, archs):
|
||||||
|
res = list()
|
||||||
|
|
||||||
|
if not self._builds:
|
||||||
|
self._fetch_builds()
|
||||||
|
|
||||||
|
for arch in archs:
|
||||||
|
build = self._builds.get(arch)
|
||||||
|
if build:
|
||||||
|
if build.retry():
|
||||||
|
res.append(' %s: done' % arch)
|
||||||
|
else:
|
||||||
|
res.append(' %s: failed' % arch)
|
||||||
|
return "Retrying builds of '%s':\n%s" % (
|
||||||
|
self.PackageName(), '\n'.join(res))
|
||||||
|
|
||||||
|
|
||||||
class PersonTeam(BaseWrapper):
|
class PersonTeam(BaseWrapper):
|
||||||
'''
|
'''
|
||||||
@ -459,3 +515,24 @@ class PersonTeam(BaseWrapper):
|
|||||||
compon
|
compon
|
||||||
|
|
||||||
return self.canUploadPackage(archive, pkg, None)
|
return self.canUploadPackage(archive, pkg, None)
|
||||||
|
|
||||||
|
class Build(BaseWrapper):
|
||||||
|
'''
|
||||||
|
Wrapper class around a build object.
|
||||||
|
'''
|
||||||
|
resource_type = 'https://api.edge.launchpad.net/beta/#build'
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return u'%s: %s' % (self.arch_tag, self.buildstate)
|
||||||
|
|
||||||
|
def rescore(self, score):
|
||||||
|
if self.can_be_rescored:
|
||||||
|
self.rescore(score = score)
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def retry(self):
|
||||||
|
if self.can_be_tried:
|
||||||
|
self.retry()
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user