Catch the exception come from delete obs project/package
authorLiu jue <juex.liu@intel.com>
Tue, 24 Jun 2014 10:47:04 +0000 (18:47 +0800)
committerLin Yang <lin.a.yang@intel.com>
Mon, 7 Jul 2014 09:04:01 +0000 (17:04 +0800)
1. Ensure it is exist before delete it.
2. Try it .

Change-Id: Ia31960382d7e317d98672bc844b7f945862a1dbf
Fixes: #2001

job_request.py

index a2afd6f..a98db08 100755 (executable)
@@ -11,6 +11,7 @@ from common.send_mail import prepare_mail
 from common.buildservice import BuildService
 from requests.mailer import mailer
 from gbp.git.repository import GitRepositoryError
+from gitbuildsys.errors import ObsError
 
 import sys
 import os
@@ -144,12 +145,27 @@ def delete_from_obs(prj, pkg):
     _bs = BuildService(os.getenv('OBS_API_URL'),
                       os.getenv('OBS_API_USERNAME'),
                       os.getenv('OBS_API_PASSWD'))
+
+    if not _bs.exists(prj, pkg):
+        print '[Warning]:buildservice cannot find prj %s: pkg %s' %(prj, pkg)
+        return True
+
     if _bs.get_package_real_project_name(prj, pkg) == prj:
-        if 'home:prerelease:' in prj:
-            print 'Removing %s' % prj
-            _bs.delete_project(prj)
-        else:
-            _bs.delete_package(prj, pkg)
+        try:
+            if 'home:prerelease:' in prj:
+                print 'Removing %s' % prj
+                _bs.delete_project(prj)
+            else:
+                print 'Removing %s:%s' % (prj, pkg)
+                _bs.delete_package(prj, pkg)
+        except ObsError, error:
+            print error
+            if 'HTTP Error 404' in str(error):
+                return True
+            else:
+                return False
+
+    return True
 
 def request_accepted(data, gerrit, gitprj):
     """Do lots of things when request accepted"""