Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2018-05-16 18:44:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old) and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools" Wed May 16 18:44:07 2018 rev:94 rq:609140 version:20180516.629cada Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2018-05-15 10:33:49.615251751 +0200 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes 2018-05-16 18:45:07.911621919 +0200 @@ -1,0 +2,44 @@ +Wed May 16 12:50:46 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180516.629cada: + * [openqa-maint] fix apimap for SLE12SP2 HA + +------------------------------------------------------------------- +Tue May 15 12:55:36 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180515.75b8a82: + * Skip nonfree for ports scope + * pkglistgen: Add ppc64le for Leap 15.0 Ports + +------------------------------------------------------------------- +Tue May 15 05:12:39 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180515.fd25d09: + * ttm: Load and Store the ignored issues in an OBS attribute + * ttm: Store the last seen build number for each issue + +------------------------------------------------------------------- +Mon May 14 16:04:30 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180514.8af3e4a: + * Add maxsize for JeOS to handle openSUSE:Factory:ARM + +------------------------------------------------------------------- +Mon May 14 12:02:06 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180514.f35a199: + * ttm: Allow to ignore job failures without bug reference + +------------------------------------------------------------------- +Mon May 14 09:25:31 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180514.5f4f4ef: + * Begin porting to python3 (osc branch) + +------------------------------------------------------------------- +Mon May 14 07:20:56 UTC 2018 - opensuse-releaset...@opensuse.org + +- Update to version 20180514.3ca5e48: + * config/manager_42/leap:15.0: increase priority of SLE-workarounds. + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20180511.eff4e45.obscpio New: ---- openSUSE-release-tools-20180516.629cada.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.JL5ure/_old 2018-05-16 18:45:09.099578987 +0200 +++ /var/tmp/diff_new_pack.JL5ure/_new 2018-05-16 18:45:09.099578987 +0200 @@ -20,7 +20,7 @@ %define source_dir openSUSE-release-tools %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20180511.eff4e45 +Version: 20180516.629cada Release: 0 Summary: Tools to aid in staging and release work for openSUSE/SUSE License: GPL-2.0-or-later AND MIT ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.JL5ure/_old 2018-05-16 18:45:09.147577253 +0200 +++ /var/tmp/diff_new_pack.JL5ure/_new 2018-05-16 18:45:09.151577108 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param> - <param name="changesrevision">eff4e459c0c645ac00caf22298cec30193f274fc</param> + <param name="changesrevision">633b0524a5f834aa21a61c12ffb12d9c991742de</param> </service> </servicedata> ++++++ openSUSE-release-tools-20180511.eff4e45.obscpio -> openSUSE-release-tools-20180516.629cada.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/config/manager_42/openSUSE:Leap:15.0.yml new/openSUSE-release-tools-20180516.629cada/config/manager_42/openSUSE:Leap:15.0.yml --- old/openSUSE-release-tools-20180511.eff4e45/config/manager_42/openSUSE:Leap:15.0.yml 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/config/manager_42/openSUSE:Leap:15.0.yml 2018-05-16 14:36:16.000000000 +0200 @@ -2,9 +2,9 @@ from_prj: openSUSE:Leap:15.0 project_preference_order: - SUSE:SLE-15:GA +- openSUSE:Leap:15.0:SLE-workarounds - openSUSE:Factory - openSUSE:Factory:NonFree -- openSUSE:Leap:15.0:SLE-workarounds drop_if_vanished_from: - SUSE:SLE-15:GA - openSUSE:Factory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/data/apimap.json new/openSUSE-release-tools-20180516.629cada/data/apimap.json --- old/openSUSE-release-tools-20180511.eff4e45/data/apimap.json 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/data/apimap.json 2018-05-16 14:36:16.000000000 +0200 @@ -92,7 +92,7 @@ "SUSE:Updates:SLE-HA:12-SP2:" : { "version" : "12-SP2", "issues" : { - "OS_TEST_ISSUES" : "SUSE:Updates:SLE-SERVER:12-SP2:", + "OS_TEST_ISSUES" : "SUSE:Updates:SLE-SERVER:12-SP2-LTSS:", "HA_TEST_ISSUES" : "SUSE:Updates:SLE-HA:12-SP2:" }, "flavor" : "Server-DVD-Incidents-HA", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/oqamaint/cli.py new/openSUSE-release-tools-20180516.629cada/oqamaint/cli.py --- old/openSUSE-release-tools-20180511.eff4e45/oqamaint/cli.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/oqamaint/cli.py 2018-05-16 14:36:16.000000000 +0200 @@ -55,7 +55,7 @@ elif i.startswith('openSUSE'): project[i] = openSUSEUpdate(j) else: - raise "Unknown openQA", i + raise Exception("Unknown openQA", i) return project, target, api def postoptparse(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/accept_command.py new/openSUSE-release-tools-20180516.629cada/osclib/accept_command.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/accept_command.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/accept_command.py 2018-05-16 14:36:16.000000000 +0200 @@ -1,5 +1,11 @@ import re -import urllib2 + +try: + from urllib.error import HTTPError +except ImportError: + #python 2.x + from urllib2 import HTTPError + import warnings from xml.etree import cElementTree as ET @@ -155,7 +161,7 @@ clean_list = set(pkglist) - set(self.api.cnocleanup_packages) for package in clean_list: - print "[cleanup] deleted %s/%s" % (project, package) + print("[cleanup] deleted %s/%s" % (project, package)) delete_package(self.api.apiurl, project, package, force=True, msg="autocleanup") # wipe Test-DVD binaries and breaks kiwi build @@ -178,7 +184,7 @@ url = self.api.makeurl(['build', project], query) try: http_POST(url) - except urllib2.HTTPError as err: + except HTTPError as err: # failed to wipe isos but we can just continue pass @@ -202,7 +208,7 @@ for req in rqlist: oldspecs = self.api.get_filelist_for_package(pkgname=req['packages'][0], project=self.api.project, extension='spec') - print 'Accepting request %d: %s' % (req['id'], ','.join(req['packages'])) + print('Accepting request %d: %s' % (req['id'], ','.join(req['packages']))) if req['type'] == 'delete': # Remove devel project/package tag before accepting the request self.remove_obsoleted_develtag(self.api.project, req['packages'][0]) @@ -227,10 +233,10 @@ for spec in removedspecs: # Deleting all the packages that no longer have a .spec file url = self.api.makeurl(['source', project, spec[:-5]]) - print "Deleting package %s from project %s" % (spec[:-5], project) + print("Deleting package %s from project %s" % (spec[:-5], project)) try: http_DELETE(url) - except urllib2.HTTPError as err: + except HTTPError as err: if err.code == 404: # the package link was not yet created, which was likely a mistake from earlier pass @@ -252,7 +258,7 @@ continue # Check if the target package already exists, if it does not, we get a HTTP error 404 to catch if not self.api.item_exists(project, package): - print "Creating new package %s linked to %s" % (package, pkgname) + print("Creating new package %s linked to %s" % (package, pkgname)) # new package does not exist. Let's link it with new metadata newmeta = re.sub(r'(<package.*name=.){}'.format(pkgname), r'\1{}'.format(package), @@ -318,7 +324,7 @@ rebuild_result = self.api.check_pkgs(rebuild_result) result = set(rebuild_result) ^ set(fact_result) - print sorted(result) + print(sorted(result)) for package in result: self.api.rebuild_pkg(package, self.api.project, arch, None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/adi_command.py new/openSUSE-release-tools-20180516.629cada/osclib/adi_command.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/adi_command.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/adi_command.py 2018-05-16 14:36:16.000000000 +0200 @@ -1,5 +1,12 @@ +from __future__ import print_function + import json -import urllib2 + +try: + from urllib.error import HTTPError +except ImportError: + #python 2.x + from urllib2 import HTTPError from colorama import Fore @@ -24,43 +31,43 @@ info = self.api.project_status(project, True) if len(info['selected_requests']): if len(info['building_repositories']): - print query_project, Fore.MAGENTA + 'building' + print(query_project + " " + Fore.MAGENTA + 'building') return if len(info['untracked_requests']): - print query_project, Fore.YELLOW + 'untracked:', ', '.join(['{}[{}]'.format( - Fore.CYAN + req['package'] + Fore.RESET, req['number']) for req in info['untracked_requests']]) + print(query_project + " " + Fore.YELLOW + 'untracked: ' + ', '.join(['{}[{}]'.format( + Fore.CYAN + req['package'] + Fore.RESET + " " + req['number']) for req in info['untracked_requests']])) return if len(info['obsolete_requests']): - print query_project, Fore.YELLOW + 'obsolete:', ', '.join(['{}[{}]'.format( - Fore.CYAN + req['package'] + Fore.RESET, req['number']) for req in info['obsolete_requests']]) + print(query_project + " " + Fore.YELLOW + 'obsolete: ' + ', '.join(['{}[{}]'.format( + Fore.CYAN + req['package'] + Fore.RESET, req['number']) for req in info['obsolete_requests']])) return if len(info['broken_packages']): - print query_project, Fore.RED + 'broken:', ', '.join([ - Fore.CYAN + p['package'] + Fore.RESET for p in info['broken_packages']]) + print(query_project + " " + Fore.RED + 'broken: ' + ', '.join([ + Fore.CYAN + p['package'] + Fore.RESET for p in info['broken_packages']])) return for review in info['missing_reviews']: - print query_project, Fore.WHITE + 'review:', '{} for {}[{}]'.format( + print(query_project + " " + Fore.WHITE + 'review: ' + '{} for {}[{}]'.format( Fore.YELLOW + review['by'] + Fore.RESET, Fore.CYAN + review['package'] + Fore.RESET, - review['request']) + review['request'])) return if self.api.is_user_member_of(self.api.user, self.api.cstaging_group): - print query_project, Fore.GREEN + 'ready' + print(query_project + " " + Fore.GREEN + 'ready') packages = [] for req in info['selected_requests']: - print ' - {} [{}]'.format(Fore.CYAN + req['package'] + Fore.RESET, req['number']) + print(' - {} [{}]'.format(Fore.CYAN + req['package'] + Fore.RESET, req['number'])) self.api.rm_from_prj(project, request_id=req['number'], msg='ready to accept') packages.append(req['package']) self.api.accept_status_comment(project, packages) try: delete_project(self.api.apiurl, project, force=True) - except urllib2.HTTPError as e: + except HTTPError as e: print(e) pass else: - print query_project, Fore.GREEN + 'ready:', ', '.join(['{}[{}]'.format( - Fore.CYAN + req['package'] + Fore.RESET, req['number']) for req in info['selected_requests']]) + print(query_project, Fore.GREEN + 'ready:', ', '.join(['{}[{}]'.format( + Fore.CYAN + req['package'] + Fore.RESET, req['number']) for req in info['selected_requests']])) def check_adi_projects(self): for p in self.api.get_adi_projects(): @@ -132,7 +139,7 @@ requests = set() if move: items = RequestFinder.find_staged_sr(packages, self.api).items() - print items + print(items) for request, request_project in items: staging_project = request_project['staging'] self.api.rm_from_prj(staging_project, request_id=request) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/check_command.py new/openSUSE-release-tools-20180516.629cada/osclib/check_command.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/check_command.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/check_command.py 2018-05-16 14:36:16.000000000 +0200 @@ -1,6 +1,5 @@ import json - class CheckCommand(object): def __init__(self, api): self.api = api @@ -134,6 +133,6 @@ # newline to split multiple prjs at once print('') else: - print '\n'.join(self._check_project(project)) + print('\n'.join(self._check_project(project))) return True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/check_duplicate_binaries_command.py new/openSUSE-release-tools-20180516.629cada/osclib/check_duplicate_binaries_command.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/check_duplicate_binaries_command.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/check_duplicate_binaries_command.py 2018-05-16 14:36:16.000000000 +0200 @@ -3,7 +3,6 @@ from osclib.core import target_archs import yaml - class CheckDuplicateBinariesCommand(object): def __init__(self, api): self.api = api @@ -45,4 +44,3 @@ self.api.save_file_content(*args) else: print(current) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/cleanup_rings.py new/openSUSE-release-tools-20180516.629cada/osclib/cleanup_rings.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/cleanup_rings.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/cleanup_rings.py 2018-05-16 14:36:16.000000000 +0200 @@ -4,7 +4,11 @@ from osc.core import http_GET from osclib.core import fileinfo_ext_all -import urllib2 +try: + from urllib.error import HTTPError +except ImportError: + #python 2.x + from urllib2 import HTTPError class CleanupRings(object): def __init__(self, api): @@ -40,31 +44,31 @@ links = si.findall('linked') pkg = si.get('package') if links is None or len(links) == 0: - print '# {} not a link'.format(pkg) + print('# {} not a link'.format(pkg)) else: linked = links[0] dprj = linked.get('project') dpkg = linked.get('package') if dprj != self.api.project: if not dprj.startswith(self.api.crings): - print "#{} not linking to base {} but {}".format(pkg, self.api.project, dprj) + print("#{} not linking to base {} but {}".format(pkg, self.api.project, dprj)) self.links[dpkg] = pkg # multi spec package must link to ring elif len(links) > 1: mainpkg = links[1].get('package') mainprj = links[1].get('project') if mainprj != self.api.project: - print '# FIXME: {} links to {}'.format(pkg, mainprj) + print('# FIXME: {} links to {}'.format(pkg, mainprj)) else: destring = None if mainpkg in self.api.ring_packages: destring = self.api.ring_packages[mainpkg] if not destring: - print '# {} links to {} but is not in a ring'.format(pkg, mainpkg) - print "osc linkpac {}/{} {}/{}".format(mainprj, mainpkg, prj, mainpkg) + print('# {} links to {} but is not in a ring'.format(pkg, mainpkg)) + print("osc linkpac {}/{} {}/{}".format(mainprj, mainpkg, prj, mainpkg)) else: if pkg != 'glibc.i686': # FIXME: ugly exception - print "osc linkpac -f {}/{} {}/{}".format(destring, mainpkg, prj, pkg) + print("osc linkpac -f {}/{} {}/{}".format(destring, mainpkg, prj, pkg)) self.links[mainpkg] = pkg @@ -123,7 +127,7 @@ try: url = makeurl(self.api.apiurl, ['build', project, 'images', arch, dvd, '_buildinfo']) root = ET.parse(http_GET(url)).getroot() - except urllib2.HTTPError as e: + except HTTPError as e: if e.code == 404: continue raise @@ -132,7 +136,7 @@ continue b = bdep.attrib['name'] if b not in self.bin2src: - print "{} not found in bin2src".format(b) + print("{} not found in bin2src".format(b)) continue b = self.bin2src[b] self.pkgdeps[b] = 'MYdvd{}'.format(self.api.rings.index(project)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/conf.py new/openSUSE-release-tools-20180516.629cada/osclib/conf.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/conf.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/conf.py 2018-05-16 14:36:16.000000000 +0200 @@ -93,7 +93,7 @@ # - F-C-C submitter requests (maxlin_factory) 'unselect-cleanup-whitelist': 'leaper maxlin_factory', 'pkglistgen-archs': 'x86_64', - 'pkglistgen-archs-ports': 'aarch64', + 'pkglistgen-archs-ports': 'aarch64 ppc64le', 'pkglistgen-locales-from': 'openSUSE.product', 'pkglistgen-include-suggested': 'False', 'pkglistgen-delete-kiwis-rings': 'openSUSE-ftp-ftp-x86_64.kiwi openSUSE-cd-mini-x86_64.kiwi', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/core.py new/openSUSE-release-tools-20180516.629cada/osclib/core.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/core.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/core.py 2018-05-16 14:36:16.000000000 +0200 @@ -4,7 +4,12 @@ import re from xml.etree import cElementTree as ET from lxml import etree as ETL -from urllib2 import HTTPError + +try: + from urllib.error import HTTPError +except ImportError: + #python 2.x + from urllib2 import HTTPError from osc.core import get_binarylist from osc.core import get_dependson diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/cpio.py new/openSUSE-release-tools-20180516.629cada/osclib/cpio.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/cpio.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/cpio.py 2018-05-16 14:36:16.000000000 +0200 @@ -94,7 +94,7 @@ fh = open(fn, 'rb') cpio = Cpio(fh.read()) for i in cpio: - print i + print(i) ofh = open(i.name, 'wb') ofh.write(i.header()) ofh.close() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/request_finder.py new/openSUSE-release-tools-20180516.629cada/osclib/request_finder.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/request_finder.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/request_finder.py 2018-05-16 14:36:16.000000000 +0200 @@ -1,4 +1,10 @@ -import urllib2 +try: + from urllib.parse import quote + from urllib.error import HTTPError +except ImportError: + #python 2.x + from urllib2 import HTTPError, quote + from xml.etree import cElementTree as ET from osc import oscerr @@ -42,7 +48,7 @@ url = makeurl(self.api.apiurl, ['request', str(request_id)]) try: f = http_GET(url) - except urllib2.HTTPError: + except HTTPError: return None root = ET.parse(f).getroot() @@ -66,7 +72,7 @@ """ query = 'types=submit,delete&states=new,review&project={}&view=collection&package={}' - query = query.format(self.api.project, urllib2.quote(package)) + query = query.format(self.api.project, quote(package)) url = makeurl(self.api.apiurl, ['request'], query) f = http_GET(url) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/osclib/stagingapi.py new/openSUSE-release-tools-20180516.629cada/osclib/stagingapi.py --- old/openSUSE-release-tools-20180511.eff4e45/osclib/stagingapi.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/osclib/stagingapi.py 2018-05-16 14:36:16.000000000 +0200 @@ -168,8 +168,8 @@ def retried_GET(self, url): return self._retried_request(url, http_GET) - def retried_POST(self, url): - return self._retried_request(url, http_POST) + def retried_POST(self, url, data=None): + return self._retried_request(url, http_POST, data) def retried_PUT(self, url, data): return self._retried_request(url, http_PUT, data) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/pkglistgen.py new/openSUSE-release-tools-20180516.629cada/pkglistgen.py --- old/openSUSE-release-tools-20180511.eff4e45/pkglistgen.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/pkglistgen.py 2018-05-16 14:36:16.000000000 +0200 @@ -1257,7 +1257,7 @@ self.do_update('update', opts) nonfree = target_config.get('nonfree') - if nonfree and drop_list: + if opts.scope != 'ports' and nonfree and drop_list: print('-> do_update nonfree') # Switch to nonfree repo (ugly, but that's how the code was setup). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/requestfinder.py new/openSUSE-release-tools-20180516.629cada/requestfinder.py --- old/openSUSE-release-tools-20180511.eff4e45/requestfinder.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/requestfinder.py 2018-05-16 14:36:16.000000000 +0200 @@ -26,9 +26,7 @@ import sys import cmdln import logging -import urllib2 import osc.core -import yaml import os import ToolBase @@ -229,4 +227,3 @@ if __name__ == "__main__": app = CommandLineInterface() sys.exit(app.main()) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20180511.eff4e45/totest-manager.py new/openSUSE-release-tools-20180516.629cada/totest-manager.py --- old/openSUSE-release-tools-20180511.eff4e45/totest-manager.py 2018-05-11 18:23:06.000000000 +0200 +++ new/openSUSE-release-tools-20180516.629cada/totest-manager.py 2018-05-16 14:36:16.000000000 +0200 @@ -8,6 +8,8 @@ # (C) 2017 ok...@suse.de, openSUSE.org # Distribute under GPLv2 or GPLv3 +from __future__ import print_function + import cmdln import datetime import json @@ -18,6 +20,7 @@ import logging import signal import time +import yaml from xml.etree import cElementTree as ET from openqa_client.client import OpenQA_Client @@ -30,8 +33,6 @@ logger = logging.getLogger() -ISSUE_FILE = 'issues_to_ignore' - # QA Results QA_INPROGRESS = 1 QA_FAILED = 2 @@ -62,15 +63,31 @@ test_subproject = 'ToTest' self.test_project = '%s:%s' % (self.project, test_subproject) self.openqa = OpenQA_Client(server=openqa_server) - self.issues_to_ignore = [] - self.issuefile = "{}_{}".format(self.project, ISSUE_FILE) - if os.path.isfile(self.issuefile): - with open(self.issuefile, 'r') as f: - for line in f.readlines(): - self.issues_to_ignore.append(line.strip()) + self.load_issues_to_ignore() self.project_base = project.split(':')[0] self.update_pinned_descr = False + def load_issues_to_ignore(self): + url = self.api.makeurl(['source', self.project, '_attribute', 'OSRT:IgnoredIssues']) + f = self.api.retried_GET(url) + root = ET.parse(f).getroot() + root = root.find('./attribute/value') + if root is not None: + root = yaml.load(root.text) + self.issues_to_ignore = root.get('last_seen') + else: + self.issues_to_ignore = dict() + + def save_issues_to_ignore(self): + if self.dryrun: + return + text = yaml.dump({'last_seen': self.issues_to_ignore}, default_flow_style=False) + root = ET.fromstring('<attributes><attribute name="IgnoredIssues" namespace="OSRT">' + + '<value/></attribute></attributes>') + root.find('./attribute/value').text = text + url = self.api.makeurl(['source', self.project, '_attribute']) + self.api.retried_POST(url, data=ET.tostring(root)) + def openqa_group(self): return self.project @@ -195,7 +212,7 @@ return pinned_ignored_issue = 0 - issues = ' , '.join(self.issues_to_ignore) + issues = ' , '.join(self.issues_to_ignore.keys()) status_flag = 'publishing' if self.status_for_openqa['is_publishing'] else \ 'preparing' if self.status_for_openqa['can_release'] else \ 'testing' if self.status_for_openqa['snapshotable'] else \ @@ -255,32 +272,39 @@ labeled = comment['id'] if re.search(r'@ttm:? ignore', comment['text']): to_ignore = True - ignored = len(refs) > 0 + # to_ignore can happen with or without refs + ignored = True if to_ignore else len(refs) > 0 + build_nr = str(job['settings']['BUILD']) for ref in refs: if ref not in self.issues_to_ignore: if to_ignore: - self.issues_to_ignore.append(ref) + self.issues_to_ignore[ref] = build_nr self.update_pinned_descr = True - with open(self.issuefile, 'a') as f: - f.write("%s\n" % ref) else: ignored = False + else: + # update reference + self.issues_to_ignore[ref] = build_nr - if not ignored: - number_of_fails += 1 - if not labeled and len(refs) > 0 and not self.dryrun: - data = {'text': 'label:unknown_failure'} + if ignored: + if labeled: + text = 'Ignored issue' if len(refs) > 0 else 'Ignored failure' + # remove flag - unfortunately can't delete comment unless admin + data = {'text': text} self.openqa.openqa_request( - 'POST', 'jobs/%s/comments' % job['id'], data=data) - elif labeled: - # remove flag - unfortunately can't delete comment unless admin - data = {'text': 'Ignored issue'} - self.openqa.openqa_request( - 'PUT', 'jobs/%s/comments/%d' % (job['id'], labeled), data=data) + 'PUT', 'jobs/%s/comments/%d' % (job['id'], labeled), data=data) - if ignored: logger.info("job %s failed, but was ignored", jobname) else: + number_of_fails += 1 + if not labeled and len(refs) > 0: + data = {'text': 'label:unknown_failure'} + if self.dryrun: + logger.info("Would label {} as unknown".format(job['id'])) + else: + self.openqa.openqa_request( + 'POST', 'jobs/%s/comments' % job['id'], data=data) + joburl = '%s/tests/%s' % (self.openqa_server, job['id']) logger.info("job %s failed, see %s", jobname, joburl) @@ -292,6 +316,8 @@ else: raise Exception(job['result']) + self.save_issues_to_ignore() + if number_of_fails > 0: return QA_FAILED @@ -359,6 +385,9 @@ if '-Addon-NonOss-ftp-ftp' in package: return None + if 'JeOS' in package: + return 4700372992 + raise Exception('No maxsize for {}'.format(package)) def package_ok(self, project, package, repository, arch): @@ -564,6 +593,7 @@ set_snapshot_number = False """Base class for new product builder""" + def _release(self, set_release=None): query = {'cmd': 'release'} @@ -816,7 +846,7 @@ '000product:SLES-ftp-POOL-ppc64le', '000product:SLES-ftp-POOL-s390x', '000product:SLES-ftp-POOL-x86_64', - ] + ] livecd_products = [] ++++++ openSUSE-release-tools.obsinfo ++++++ --- /var/tmp/diff_new_pack.JL5ure/_old 2018-05-16 18:45:09.923549210 +0200 +++ /var/tmp/diff_new_pack.JL5ure/_new 2018-05-16 18:45:09.923549210 +0200 @@ -1,5 +1,5 @@ name: openSUSE-release-tools -version: 20180511.eff4e45 -mtime: 1526055786 -commit: eff4e459c0c645ac00caf22298cec30193f274fc +version: 20180516.629cada +mtime: 1526474176 +commit: 629cada8de1e28557d17ec972d8870180899ec6b