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
 


Reply via email to