Use core.meta_get_packagelist() to check the existance of package,#578
authorZhang Qiang <qiang.z.zhang@intel.com>
Mon, 10 Dec 2012 05:25:48 +0000 (13:25 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Mon, 10 Dec 2012 05:32:46 +0000 (13:32 +0800)
If project is a link project, core.meta_exists will return true if
package only exists in linked project.

This patch use core.meta_get_packagelist instead to check the existance
of prj/pkg.

Change-Id: Ia220e837cd7f8ababdfb0f7d814b0b31b1aef9ff

gitbuildsys/oscapi.py

index dc145d73166e49e6015c31112bb04742fa490bed..249ec829bada4bd7e3d094463f69df0d3b616159 100644 (file)
@@ -161,13 +161,17 @@ class OSC(object):
 
         metatype = 'prj'
         path_args = [core.quote_plus(prj)]
-        if pkg:
-            metatype = 'pkg'
-            path_args.append(core.quote_plus(pkg))
         err = None
         try:
             core.meta_exists(metatype = metatype, path_args = tuple(path_args),
                              create_new = False, apiurl = self.apiurl)
+            if not pkg:
+                return True
+
+            if pkg in core.meta_get_packagelist(self.apiurl, prj):
+                return True
+            else:
+                return False
         except urllib2.HTTPError, err:
             if err.code == 404:
                 return False
@@ -179,7 +183,7 @@ class OSC(object):
         if err:
             raise ObsError("can't check if %s/%s exists: %s" % (prj, pkg, err))
 
-        return True
+        return False
 
     def rebuild(self, prj, pkg, arch):
         """Rebuild package."""