Skip to content

Commit c43577f

Browse files
committed
Correct index image pullspec pass to function calls
Signed-off-by: Jan Lipovský <jlipovsk@redhat.com>
1 parent a3b8a64 commit c43577f

2 files changed

Lines changed: 23 additions & 8 deletions

File tree

iib/workers/tasks/build_containerized_merge.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ def handle_containerized_merge_request(
111111
reset_docker_config()
112112
set_request_state(request_id, 'in_progress', 'Preparing request for merge')
113113

114+
if (overwrite_target_index or overwrite_target_index_token) and not target_index:
115+
raise IIBError("Parameter target_index must be set when overwrite_target_index is provided")
116+
114117
# Prepare request
115118
with set_registry_token(overwrite_target_index_token, target_index, append=True):
116119
prebuild_info = prepare_request_for_build(
@@ -129,6 +132,17 @@ def handle_containerized_merge_request(
129132
source_from_index_resolved = prebuild_info['source_from_index_resolved']
130133
target_index_resolved = prebuild_info['target_index_resolved']
131134

135+
# Decide what image will be used for function calls.
136+
# If target_index is not set, then source_from_index will be used
137+
# along with the correct ocp version
138+
main_index_image = target_index if target_index else source_from_index
139+
main_index_image_resolved = (
140+
target_index_resolved if target_index else source_from_index_resolved
141+
)
142+
main_ocp_version = (
143+
prebuild_info['target_ocp_version'] if target_index else prebuild_info['source_ocp_version']
144+
)
145+
132146
# Set OPM version
133147
Opm.set_opm_version(target_index_resolved)
134148
opm_version = Opm.opm_version
@@ -144,14 +158,14 @@ def handle_containerized_merge_request(
144158

145159
with tempfile.TemporaryDirectory(prefix=f'iib-{request_id}-') as temp_dir:
146160
# Setup and clone Git repository
147-
branch = prebuild_info['target_ocp_version']
161+
branch = main_ocp_version
148162
(
149163
index_git_repo,
150164
local_git_repo_path,
151165
localized_git_catalog_path,
152166
) = prepare_git_repository_for_build(
153167
request_id=request_id,
154-
from_index=source_from_index,
168+
from_index=main_index_image,
155169
temp_dir=temp_dir,
156170
branch=branch,
157171
index_to_gitlab_push_map=index_to_gitlab_push_map or {},
@@ -201,7 +215,7 @@ def handle_containerized_merge_request(
201215
source_index_bundles=source_index_bundles,
202216
target_index_bundles=target_index_bundles,
203217
source_from_index=source_from_index_resolved,
204-
ocp_version=prebuild_info['target_ocp_version'],
218+
ocp_version=main_ocp_version,
205219
request_id=request_id,
206220
target_index=target_index_resolved,
207221
ignore_bundle_ocp_version=ignore_bundle_ocp_version,
@@ -280,7 +294,7 @@ def handle_containerized_merge_request(
280294
write_build_metadata(
281295
local_git_repo_path,
282296
opm_version,
283-
prebuild_info['target_ocp_version'],
297+
main_ocp_version,
284298
prebuild_info['distribution_scope'],
285299
prebuild_info['binary_image_resolved'],
286300
request_id,
@@ -327,10 +341,10 @@ def handle_containerized_merge_request(
327341
output_pull_spec=output_pull_spec,
328342
request_id=request_id,
329343
arches=prebuild_info['arches'],
330-
from_index=source_from_index,
344+
from_index=main_index_image,
331345
overwrite_from_index=overwrite_target_index,
332346
overwrite_from_index_token=overwrite_target_index_token,
333-
resolved_prebuild_from_index=source_from_index_resolved,
347+
resolved_prebuild_from_index=main_index_image_resolved,
334348
add_or_rm=False,
335349
is_image_fbc=True,
336350
# Passing an empty index_repo_map is intentional. In IIB 1.0, if
@@ -346,7 +360,7 @@ def handle_containerized_merge_request(
346360
# index.db file if the pipeline fails.
347361
original_index_db_digest = push_index_db_artifact(
348362
request_id=request_id,
349-
from_index=source_from_index,
363+
from_index=main_index_image,
350364
index_db_path=source_index_db_path,
351365
operators=operators_in_db,
352366
overwrite_from_index=overwrite_target_index,
@@ -370,7 +384,7 @@ def handle_containerized_merge_request(
370384
index_git_repo=index_git_repo,
371385
overwrite_from_index=overwrite_target_index,
372386
request_id=request_id,
373-
from_index=source_from_index,
387+
from_index=main_index_image,
374388
index_repo_map={},
375389
original_index_db_digest=original_index_db_digest,
376390
reason=f"error: {e}",

tests/test_workers/test_tasks/test_build_containerized_merge.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1964,6 +1964,7 @@ def test_handle_containerized_merge_request_without_target_index(
19641964
'target_index_resolved': None, # Should be None when target_index is None
19651965
'ocp_version': 'v4.14',
19661966
'target_ocp_version': 'v4.14', # Should default to source version
1967+
'source_ocp_version': 'v4.14',
19671968
'distribution_scope': 'prod',
19681969
}
19691970
mock_prfb.return_value = prebuild_info

0 commit comments

Comments
 (0)