obs_clone: remove whole repositories rather than just path when fenced.

This commit is contained in:
Jimmy Berry 2017-10-24 17:41:45 -05:00
parent a0f3191568
commit b51119822e

View File

@ -92,13 +92,15 @@ def project_clone(apiurl_source, apiurl_target, project):
http_PUT(url, data=ET.tostring(stripped)) http_PUT(url, data=ET.tostring(stripped))
# Clone projects referenced in repository paths. # Clone projects referenced in repository paths.
for target in project.findall('repository/releasetarget') + project.findall('repository/path'): for repository in project.findall('repository'):
if not project_fence(target.get('project')): for target in repository.xpath('./path') + repository.xpath('./releasetarget'):
target.getparent().remove(target) if not project_fence(target.get('project')):
continue project.remove(repository)
break
path = ['source', target.get('project'), '_meta'] # Valid reference to project and thus should be cloned.
entity_clone(apiurl_source, apiurl_target, path, clone=project_clone) path = ['source', target.get('project'), '_meta']
entity_clone(apiurl_source, apiurl_target, path, clone=project_clone)
def package_clone(apiurl_source, apiurl_target, package): def package_clone(apiurl_source, apiurl_target, package):
# Clone project that contains the package. # Clone project that contains the package.