Implemented support for linked projects in oscapi
authorEd Bartosh <eduard.bartosh@intel.com>
Mon, 11 Mar 2013 15:55:26 +0000 (17:55 +0200)
committerEd Bartosh <eduard.bartosh@intel.com>
Wed, 13 Mar 2013 07:49:23 +0000 (09:49 +0200)
Now it's possible to create linked projects and set linkdep type for
them using oscapi. This feature makes API more powerful and it's also
going o be used by backend services.

Change-Id: Ica91126c52851b0e06529ccea641a012e59793a7
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
gitbuildsys/oscapi.py

index 419fd3d..86f97d6 100644 (file)
@@ -92,7 +92,8 @@ class OSC(object):
             repos[repo.name].append(repo.arch)
         return repos
 
-    def create_project(self, target, src=None, rewrite=False):
+    def create_project(self, target, src=None, rewrite=False,
+                       linkto='', linkedbuild=''):
         """
         Create new OBS project based on existing project.
         Copy config and repositories from src project to target
@@ -113,13 +114,19 @@ class OSC(object):
         meta = '<project name="%s"><title></title><description></description>'\
                '<person role="maintainer" userid="%s"/>' % \
                (target, conf.get_apiurl_usr(self.apiurl))
+        if linkto:
+            meta += '<link project="%s"/>' % linkto
 
         # Collect source repos if src project exist
         if src:
             # Copy repos to target
             repos = self.get_repos_of_project(src)
             for name in repos:
-                meta += '<repository name="%s">' % name
+                if linkedbuild:
+                    meta += '<repository name="%s" linkedbuild="%s">' % \
+                                (name, linkedbuild)
+                else:
+                    meta += '<repository name="%s">' % name
                 meta += '<path project="%s" repository="%s" />' % (src, name)
                 for arch in repos[name]:
                     meta += "<arch>%s</arch>\n" % arch