Skip to content

Commit e0ff587

Browse files
authored
fix(core): setting non-existing config property to null (#3595)
* chore: add ui-server url in swagger
1 parent d912b46 commit e0ff587

File tree

3 files changed

+9
-12
lines changed

3 files changed

+9
-12
lines changed

renku/command/config.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,10 @@ def _update_config(
9595
"""
9696
section, section_key = _split_section_and_key(key)
9797
if remove:
98-
value = remove_value(section, section_key, global_only=global_only)
99-
if value is None:
100-
raise errors.ParameterError(f'Key "{key}" not found.')
98+
remove_value(section, section_key, global_only=global_only)
10199
else:
102100
set_value(section, section_key, value, global_only=global_only)
103-
return value
101+
return value
104102

105103

106104
def update_config():

renku/ui/service/views/apispec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def path_helper(self, path, operations, *, view, app=None, **kwargs):
7878
openapi_version=OPENAPI_VERSION,
7979
version=API_VERSION,
8080
plugins=[MultiURLFlaskPlugin(), MarshmallowPlugin()],
81-
servers=[{"url": SERVICE_API_BASE_PATH}],
81+
servers=[{"url": SERVICE_API_BASE_PATH}, {"url": f"/ui-server{SERVICE_API_BASE_PATH}"}],
8282
security=[{"oidc": []}, {"JWT": [], "gitlab-token": []}],
8383
info={"description": TOP_LEVEL_DESCRIPTION},
8484
)

tests/service/views/test_config_views.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import pytest
2222

23-
from renku.ui.service.errors import IntermittentSettingExistsError, ProgramProjectCorruptError, UserNonRenkuProjectError
23+
from renku.ui.service.errors import ProgramProjectCorruptError, UserNonRenkuProjectError
2424
from tests.utils import retry_failed
2525

2626

@@ -134,11 +134,10 @@ def test_config_view_set(svc_client_with_repo):
134134
@pytest.mark.service
135135
@pytest.mark.integration
136136
@retry_failed
137-
def test_config_view_set_failures(svc_client_with_repo):
138-
"""Check errors triggered while invoking config set."""
137+
def test_config_view_set_nonexising_key_removal(svc_client_with_repo):
138+
"""Check that removing a non-existing key (i.e. setting to None) is allowed."""
139139
svc_client, headers, project_id, url_components = svc_client_with_repo
140140

141-
# NOTE: remove a non existing value
142141
non_existing_param = "NON_EXISTING"
143142
payload = {
144143
"git_url": url_components.href,
@@ -150,9 +149,9 @@ def test_config_view_set_failures(svc_client_with_repo):
150149
response = svc_client.post("/config.set", data=json.dumps(payload), headers=headers)
151150

152151
assert 200 == response.status_code
153-
assert {"error"} == set(response.json.keys())
154-
assert IntermittentSettingExistsError.code == response.json["error"]["code"]
155-
assert non_existing_param in response.json["error"]["devMessage"]
152+
assert {"error"} != set(response.json.keys())
153+
assert {"result"} == set(response.json.keys())
154+
assert response.json["result"]["config"][non_existing_param] is None
156155

157156

158157
@pytest.mark.service

0 commit comments

Comments
 (0)