self.apiurl, False)
self.core_http(core.http_PUT, url, data=''.join(config))
+ def copy_package_meta(self, obs_source_project, package, \
+ obs_target_project):
+ """
+ Copy xml metadata of target package to
+ the meta of source package
+ """
+ meta_xml = self.get_meta(obs_target_project, package)
+ xml_root = ElementTree.fromstringlist(meta_xml)
+ project_name = xml_root.attrib.get('project')
+ if project_name != obs_source_project:
+ xml_root.attrib['project'] = obs_source_project
+ self.set_meta(ElementTree.tostring(xml_root), \
+ obs_source_project, package)
+
def get_package_meta(self, project, package):
"""
get_package_meta(project, package) -> string
# set project config
build.set_project_config(project, config)
+def set_aggregate_package_meta(build, obs_source_prj, obs_target_prj):
+ """Set package metadata that include 'aggregate' from obs_source_prj.
+ Keep the metadata of aggregate packages are the same as
+ the obs_target_prj project
+ """
+ for package in build.get_package_list(obs_target_prj):
+ if 'aggregate' in package:
+ # get real project name in metadata of the package
+ realprj = build.get_package_real_project_name(obs_source_prj, \
+ package)
+ # If real project name is not equal obs_source_prj,
+ # should branch the package from obs_target_prj to
+ # obs_source_prj, and copy the package metadata
+ # of obs_target_prj to obs_source_prj
+ if realprj != obs_source_prj:
+ print "branch package %s from %s" % (package, realprj)
+ build.branch_pkg(realprj, package, \
+ target_project = obs_source_prj)
+ # copy package metadata of obs_source_prj to realprj
+ build.copy_package_meta(obs_source_prj, package, realprj)
+
def create_project(git_url, git_project, git_tag, git_revision, build,
obs_target_prj, obs_project, submitter, package):
"""Create prerelease OBS project and upload sources for the build."""
raise LocalError(err)
build.link_project(obs_project, src=obs_target_prj, linktype="localdep")
+ #change the aggregate package metadata of obs_project
+ set_aggregate_package_meta(build, obs_project, obs_target_prj)
def main(build_type):
"""