create_project: Copy more meta data from source project
authorEd Bartosh <eduard.bartosh@intel.com>
Mon, 9 Dec 2013 13:19:02 +0000 (15:19 +0200)
committerEd Bartosh <eduard.bartosh@intel.com>
Mon, 9 Dec 2013 13:25:07 +0000 (15:25 +0200)
Copy debuginfo, build, useforbuild and publish meta from source project
when creating another project out of it.

That makes setup of linked project more consistent with source project
and prevent difference in package build statuses between source and target
projects.

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

index d31d202..11368a4 100644 (file)
@@ -94,6 +94,19 @@ class OSC(object):
             repos[repo.name].append(repo.arch)
         return repos
 
+    def get_tags(self, project, tags):
+        """Get tags content from meta."""
+        meta_xml = self.get_meta(project)
+        xml_root = ET.fromstringlist(meta_xml)
+
+        result = ''
+        for tag in tags:
+            element = xml_root.find(tag)
+            if element:
+                result += ET.tostring(element)
+
+        return result
+
     def create_project(self, target, src=None, rewrite=False,
                        description='', linkto='', linkedbuild=''):
         """
@@ -122,6 +135,9 @@ class OSC(object):
 
         # Collect source repos if src project exist
         if src:
+            # Copy debuginfo, build, useforbuild and publish meta
+            meta += self.get_tags(src, ['debuginfo', 'build',
+                                        'useforbuild', 'publish'])
             # Copy repos to target
             repos = self.get_repos_of_project(src)
             for name in repos: