mirror of
https://github.com/openSUSE/osc.git
synced 2024-11-12 23:56:13 +01:00
- make 'results' subcommand many times faster, by making only a single request
on _result?view=status&package=%s (new api)
This commit is contained in:
parent
2e0927ddfd
commit
0b47b21719
25
TODO
25
TODO
@ -97,9 +97,6 @@ osc repos server:search:ui :
|
||||
#http://api.opensuse.org/result/KDE:KDE3/packstatus?summary
|
||||
#http://api.opensuse.org/result/KDE:KDE3/packstatus?summaryonly
|
||||
|
||||
results seems very slow, it presumably does more network accesses than necessary
|
||||
it shouldn't take more time than prjresults
|
||||
|
||||
|
||||
# osc build SUSE_Factory i586 xorg-x11-libX11.spec
|
||||
> ['/usr/bin/osc', 'build', 'i38', 'i386', 'SUSE_Factory', 'i586', 'xorg-x11-libX11.spec']
|
||||
@ -165,9 +162,6 @@ show request body of 400 responses (bad request)
|
||||
|
||||
geht print self.USAGE % self.__dict__ ?
|
||||
|
||||
if import cElememtTree fails, use elementtree
|
||||
if that fails, point to home:cthiel1 repository (or devel:languages:python)
|
||||
|
||||
|
||||
a merge issue:
|
||||
|
||||
@ -188,3 +182,22 @@ build command:
|
||||
buildinfo aenderungen:
|
||||
preinstall="1" runscripts="1"
|
||||
|
||||
|
||||
when can this happen?
|
||||
% osc up
|
||||
checking out new package t
|
||||
A home:poeml/t
|
||||
A home:poeml/t/foo
|
||||
At revision 16.
|
||||
At revision 9.
|
||||
D bar1
|
||||
Traceback (most recent call last):
|
||||
File "/suse/poeml/bin/osc", line 7, in ?
|
||||
commandline.main()
|
||||
File "/suse/poeml/osc-stable/osc/commandline.py", line 1072, in main
|
||||
cmd(args)
|
||||
File "/suse/poeml/osc-stable/osc/commandline.py", line 572, in update
|
||||
if state == 'M' and p.findfilebyname(filename).md5 == oldp.findfilebyname(filename).md5:
|
||||
AttributeError: 'NoneType' object has no attribute 'md5'
|
||||
[1] 11871 exit 1 osc up
|
||||
|
||||
|
@ -684,17 +684,12 @@ usage 1. osc platforms
|
||||
def results_meta(args):
|
||||
"""Shows the build results of the package in raw XML
|
||||
|
||||
usage: osc results_meta [platform]
|
||||
usage: osc results_meta
|
||||
"""
|
||||
wd = os.curdir
|
||||
package = store_read_package(wd)
|
||||
project = store_read_project(wd)
|
||||
if args:
|
||||
platform = args[0]
|
||||
print ''.join(show_results_meta(project, package, platform))
|
||||
else:
|
||||
for platform in get_platforms_of_project(project):
|
||||
print ''.join(show_results_meta(project, package, platform))
|
||||
print ''.join(show_results_meta(project, package))
|
||||
|
||||
|
||||
def results(args):
|
||||
@ -712,11 +707,14 @@ usage: 1. osc results # package = current dir
|
||||
wd = args[0]
|
||||
else:
|
||||
wd = os.curdir
|
||||
package = store_read_package(wd)
|
||||
project = store_read_project(wd)
|
||||
|
||||
for platform in get_platforms_of_project(project):
|
||||
print '\n'.join(get_results(project, package, platform))
|
||||
try:
|
||||
package = store_read_package(wd)
|
||||
project = store_read_project(wd)
|
||||
except:
|
||||
sys.exit('\'%s\' is not an osc package directory' % wd)
|
||||
|
||||
print '\n'.join(get_results(project, package))
|
||||
|
||||
|
||||
def prjresults(args):
|
||||
@ -738,7 +736,7 @@ usage: 1. osc prjresults # package = current dir
|
||||
try:
|
||||
project = store_read_project(wd)
|
||||
except:
|
||||
sys.exit('\'%s\' is not an osc project directory' % wd)
|
||||
sys.exit('\'%s\' is neither an osc project or package directory' % wd)
|
||||
|
||||
print '\n'.join(get_prj_results(project))
|
||||
|
||||
|
26
osc/core.py
26
osc/core.py
@ -1135,8 +1135,8 @@ def get_repos_of_project(prj):
|
||||
return r
|
||||
|
||||
|
||||
def show_results_meta(prj, package, platform):
|
||||
u = makeurl(['result', prj, platform, package, 'result'])
|
||||
def show_results_meta(prj, package):
|
||||
u = makeurl(['build', prj, '_result?view=status&package=%s' % package])
|
||||
f = urlopen(u)
|
||||
return f.readlines()
|
||||
|
||||
@ -1147,31 +1147,26 @@ def show_prj_results_meta(prj):
|
||||
return f.readlines()
|
||||
|
||||
|
||||
def get_results(prj, package, platform):
|
||||
#print '----------------------------------------'
|
||||
|
||||
def get_results(prj, package):
|
||||
r = []
|
||||
#result_line_templ = '%(prj)-15s %(pac)-15s %(rep)-15s %(arch)-10s %(status)s'
|
||||
result_line_templ = '%(rep)-15s %(arch)-10s %(status)s'
|
||||
|
||||
f = show_results_meta(prj, package, platform)
|
||||
f = show_results_meta(prj, package)
|
||||
tree = ET.parse(StringIO(''.join(f)))
|
||||
|
||||
root = tree.getroot()
|
||||
|
||||
rmap = {}
|
||||
rmap['prj'] = root.get('project')
|
||||
rmap['pac'] = root.get('package')
|
||||
rmap['rep'] = root.get('repository')
|
||||
|
||||
for node in root.findall('archresult'):
|
||||
for node in root.findall('result'):
|
||||
rmap = {}
|
||||
rmap['prj'] = prj
|
||||
rmap['pac'] = package
|
||||
rmap['rep'] = node.get('repository')
|
||||
rmap['arch'] = node.get('arch')
|
||||
|
||||
statusnode = node.find('status')
|
||||
rmap['status'] = statusnode.get('code')
|
||||
|
||||
if rmap['status'] in ['expansion error', 'broken']:
|
||||
rmap['status'] += ': ' + statusnode.find('summary').text
|
||||
rmap['status'] += ': ' + statusnode.find('details').text
|
||||
|
||||
if rmap['status'] == 'failed':
|
||||
rmap['status'] += ': %s://%s' % (conf.config['scheme'], conf.config['apisrv']) + \
|
||||
@ -1180,7 +1175,6 @@ def get_results(prj, package, platform):
|
||||
r.append(result_line_templ % rmap)
|
||||
return r
|
||||
|
||||
|
||||
def get_prj_results(prj):
|
||||
#print '----------------------------------------'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user