Fix the check_repo to takes care of shadow RQ.
This commit is contained in:
parent
6740403295
commit
0537cd1003
@ -56,10 +56,10 @@ def _check_repo_download(self, request):
|
||||
repo = goodrepo[1]
|
||||
|
||||
# we can assume x86_64 is there
|
||||
todownload = [ToDownload(request.src_project, repo, 'x86_64',
|
||||
todownload = [ToDownload(request.shadow_src_project, repo, 'x86_64',
|
||||
fn[0], fn[3]) for fn in
|
||||
self.checkrepo.get_package_list_from_repository(
|
||||
request.src_project, repo, 'x86_64',
|
||||
request.shadow_src_project, repo, 'x86_64',
|
||||
request.src_package)]
|
||||
|
||||
self.checkrepo._download(request, todownload)
|
||||
|
@ -22,6 +22,9 @@ from osc.core import makeurl
|
||||
# from osc.core import show_upstream_rev_vrev
|
||||
from osc import cmdln
|
||||
|
||||
# Expand sys.path to search modules inside the pluging directory
|
||||
_plugin_dir = os.path.expanduser('~/.osc-plugins')
|
||||
sys.path.append(_plugin_dir)
|
||||
from osclib.stagingapi import StagingAPI
|
||||
|
||||
|
||||
@ -209,8 +212,8 @@ def _checker_one_request(self, rq, opts):
|
||||
# force=True,
|
||||
# rev=_rev, vrev=_vrev)
|
||||
|
||||
act = FakeAction(pkg, prj, tprj, tpkg, rev)
|
||||
self.api.submit_to_prj(act, fake_devel_prj)
|
||||
act = FakeAction(prj, pkg, tprj, tpkg, rev)
|
||||
self.api.submit_to_prj(act, fake_devel_prj, force_enable_build=True)
|
||||
self._checker_accept_request(opts, id_, 'The request is linked to %s' % fake_devel_prj, diff=0)
|
||||
continue
|
||||
|
||||
|
@ -41,6 +41,7 @@ class Request(object):
|
||||
src_package=None, tgt_project=None, tgt_package=None,
|
||||
revision=None, srcmd5=None, verifymd5=None,
|
||||
group=None, goodrepos=None, missings=None,
|
||||
is_shadow=None, shadow_src_project=None,
|
||||
element=None):
|
||||
|
||||
self.request_id = request_id
|
||||
@ -54,6 +55,8 @@ class Request(object):
|
||||
self.group = group
|
||||
self.goodrepos = goodrepos if goodrepos else []
|
||||
self.missings = missings if missings else []
|
||||
self.is_shadow = is_shadow
|
||||
self.shadow_src_project = shadow_src_project
|
||||
|
||||
self.updated = False
|
||||
self.error = None
|
||||
@ -66,14 +69,6 @@ class Request(object):
|
||||
if element:
|
||||
self.load(element)
|
||||
|
||||
# Detect if the request comes from Factory to a openSUSE
|
||||
# release, and adjust the source and target projects
|
||||
_is_product = re.match(r'openSUSE:\d{2}.\d', self.tgt_project)
|
||||
if self.src_project == 'openSUSE:Factory' and _is_product:
|
||||
self.is_shadow_devel = True
|
||||
self.org_src_project, self.src_project = self.src_project, '%s:Devel' % self.tgt_project
|
||||
self.org_src_package, self.src_package = self.src_package, self.tgt_package
|
||||
|
||||
def load(self, element):
|
||||
"""Load a node from a ElementTree request XML element."""
|
||||
self.request_id = int(element.get('id'))
|
||||
@ -97,9 +92,19 @@ class Request(object):
|
||||
self.goodrepos = []
|
||||
self.missings = []
|
||||
|
||||
# Detect if the request comes from Factory to a openSUSE
|
||||
# release, and adjust the source and target projects
|
||||
_is_product = re.match(r'openSUSE:\d{2}.\d', self.tgt_project)
|
||||
if self.src_project == 'openSUSE:Factory' and _is_product:
|
||||
self.is_shadow_devel = True
|
||||
self.shadow_src_project = '%s:Devel' % self.tgt_project
|
||||
else:
|
||||
self.is_shadow_devel = False
|
||||
self.shadow_src_project = self.src_project
|
||||
|
||||
def str_compact(self):
|
||||
return '#[%s](%s)%s' % (self.request_id, self.src_package,
|
||||
' Shadow' if self.is_shadow_devel else '')
|
||||
(' Shadow via %s' % self.shadow_src_project) if self.is_shadow_devel else '')
|
||||
|
||||
def __repr__(self):
|
||||
return '#[%s] %s/%s -> %s/%s%s' % (self.request_id,
|
||||
@ -107,7 +112,7 @@ class Request(object):
|
||||
self.src_package,
|
||||
self.tgt_project,
|
||||
self.tgt_package,
|
||||
' Shadow' if self.is_shadow_devel else '')
|
||||
(' Shadow via %s' % self.shadow_src_project) if self.is_shadow_devel else '')
|
||||
|
||||
|
||||
class CheckRepo(object):
|
||||
@ -469,7 +474,10 @@ class CheckRepo(object):
|
||||
revision=None,
|
||||
srcmd5=rq.srcmd5,
|
||||
verifymd5=rq.verifymd5,
|
||||
group=rq.group)
|
||||
group=rq.group,
|
||||
is_shadow=rq.is_shadow,
|
||||
org_src_project=rq.org_src_project,
|
||||
org_src_package=rq.org_src_package)
|
||||
requests.append(sp)
|
||||
|
||||
return requests
|
||||
@ -482,7 +490,7 @@ class CheckRepo(object):
|
||||
"""
|
||||
repos_to_check = []
|
||||
|
||||
root_xml = self.last_build_success(request.src_project,
|
||||
root_xml = self.last_build_success(request.shadow_src_project,
|
||||
request.tgt_project,
|
||||
request.src_package,
|
||||
request.verifymd5)
|
||||
|
@ -267,7 +267,7 @@ class CycleDetector(object):
|
||||
else:
|
||||
_prj, _repo = rq.goodrepos[0]
|
||||
goodrepos[rq] = _repo
|
||||
all_packages = [self._get_builddepinfo(rq.src_project, goodrepos[rq], arch, rq.src_package)
|
||||
all_packages = [self._get_builddepinfo(rq.shadow_src_project, goodrepos[rq], arch, rq.src_package)
|
||||
for rq in requests if not rq.updated]
|
||||
all_packages = [pkg for pkg in all_packages if pkg]
|
||||
|
||||
|
@ -683,11 +683,13 @@ class StagingAPI(object):
|
||||
|
||||
return tar_pkg
|
||||
|
||||
def submit_to_prj(self, act, project):
|
||||
def submit_to_prj(self, act, project, force_enable_build=False):
|
||||
"""
|
||||
Links sources from request to project
|
||||
:param act: action for submit request
|
||||
:param project: project to link into
|
||||
:param force_enable_build: overwrite the ring criteria to enable
|
||||
or disable the build
|
||||
"""
|
||||
|
||||
src_prj = act.src_project
|
||||
@ -696,6 +698,9 @@ class StagingAPI(object):
|
||||
tar_pkg = act.tgt_package
|
||||
|
||||
disable_build = False
|
||||
# The force_enable_build will avoid the
|
||||
# map_ring_package_to_subproject
|
||||
if not force_enable_build:
|
||||
if not self.ring_packages.get(tar_pkg):
|
||||
disable_build = True
|
||||
else:
|
||||
|
Loading…
x
Reference in New Issue
Block a user