Skip to content
This repository was archived by the owner on Mar 13, 2022. It is now read-only.

Commit 64662bb

Browse files
committed
config: Fix persist_config flag and function calls
The persist_config flag was setting the kwargs['config_persister'] to the result of the function kcfg.save_changes and not the function kcfg.save_changes itself. Once this is fixed, the second problem was that the function was called with an argument when it's defined without argument so an exception was raised.
1 parent 7ea5cb4 commit 64662bb

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

Diff for: config/kube_config.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ def _refresh_azure_token(self, config):
336336
provider.value['access-token'] = token_response['accessToken']
337337
provider.value['expires-on'] = token_response['expiresOn']
338338
if self._config_persister:
339-
self._config_persister(self._config.value)
339+
self._config_persister()
340340

341341
def _load_gcp_token(self, provider):
342342
if (('config' not in provider) or
@@ -357,7 +357,7 @@ def _refresh_gcp_token(self):
357357
provider.value['access-token'] = credentials.token
358358
provider.value['expiry'] = format_rfc3339(credentials.expiry)
359359
if self._config_persister:
360-
self._config_persister(self._config.value)
360+
self._config_persister()
361361

362362
def _load_oid_token(self, provider):
363363
if 'config' not in provider:
@@ -398,7 +398,7 @@ def _load_oid_token(self, provider):
398398
self._refresh_oidc(provider)
399399

400400
if self._config_persister:
401-
self._config_persister(self._config.value)
401+
self._config_persister()
402402

403403
self.token = "Bearer %s" % provider['config']['id-token']
404404

@@ -691,7 +691,7 @@ def _get_kube_config_loader_for_yaml_file(
691691

692692
kcfg = KubeConfigMerger(filename)
693693
if persist_config and 'config_persister' not in kwargs:
694-
kwargs['config_persister'] = kcfg.save_changes()
694+
kwargs['config_persister'] = kcfg.save_changes
695695

696696
if kcfg.config is None:
697697
raise ConfigException(

Diff for: config/kube_config_test.py

+19
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
ConfigNode, FileOrData, KubeConfigLoader,
3434
KubeConfigMerger, _cleanup_temp_files,
3535
_create_temp_file_with_content,
36+
_get_kube_config_loader_for_yaml_file,
3637
list_kube_config_contexts, load_kube_config,
3738
new_client_from_config)
3839

@@ -1388,6 +1389,24 @@ def test_user_cmd_path_with_scope(self):
13881389
"scopes can only be used when kubectl is using "
13891390
"a gcp service account key")
13901391

1392+
def test__get_kube_config_loader_for_yaml_file_no_persist(self):
1393+
expected = FakeConfig(host=TEST_HOST,
1394+
token=BEARER_TOKEN_FORMAT % TEST_DATA_BASE64)
1395+
config_file = self._create_temp_file(
1396+
yaml.safe_dump(self.TEST_KUBE_CONFIG))
1397+
actual = _get_kube_config_loader_for_yaml_file(config_file)
1398+
self.assertIsNone(actual._config_persister)
1399+
1400+
def test__get_kube_config_loader_for_yaml_file_persist(self):
1401+
expected = FakeConfig(host=TEST_HOST,
1402+
token=BEARER_TOKEN_FORMAT % TEST_DATA_BASE64)
1403+
config_file = self._create_temp_file(
1404+
yaml.safe_dump(self.TEST_KUBE_CONFIG))
1405+
actual = _get_kube_config_loader_for_yaml_file(config_file,
1406+
persist_config=True)
1407+
self.assertTrue(callable(actual._config_persister))
1408+
self.assertEquals(actual._config_persister.__name__, "save_changes")
1409+
13911410

13921411
class TestKubernetesClientConfiguration(BaseTestCase):
13931412
# Verifies properties of kubernetes.client.Configuration.

0 commit comments

Comments
 (0)