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

config: Fix persist_config flag and function calls #169

Merged
merged 1 commit into from
Feb 21, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions config/kube_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ def _refresh_azure_token(self, config):
provider.value['access-token'] = token_response['accessToken']
provider.value['expires-on'] = token_response['expiresOn']
if self._config_persister:
self._config_persister(self._config.value)
self._config_persister()

def _load_gcp_token(self, provider):
if (('config' not in provider) or
Expand All @@ -357,7 +357,7 @@ def _refresh_gcp_token(self):
provider.value['access-token'] = credentials.token
provider.value['expiry'] = format_rfc3339(credentials.expiry)
if self._config_persister:
self._config_persister(self._config.value)
self._config_persister()

def _load_oid_token(self, provider):
if 'config' not in provider:
Expand Down Expand Up @@ -398,7 +398,7 @@ def _load_oid_token(self, provider):
self._refresh_oidc(provider)

if self._config_persister:
self._config_persister(self._config.value)
self._config_persister()

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

Expand Down Expand Up @@ -691,7 +691,7 @@ def _get_kube_config_loader_for_yaml_file(

kcfg = KubeConfigMerger(filename)
if persist_config and 'config_persister' not in kwargs:
kwargs['config_persister'] = kcfg.save_changes()
kwargs['config_persister'] = kcfg.save_changes

if kcfg.config is None:
raise ConfigException(
Expand Down
19 changes: 19 additions & 0 deletions config/kube_config_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
ConfigNode, FileOrData, KubeConfigLoader,
KubeConfigMerger, _cleanup_temp_files,
_create_temp_file_with_content,
_get_kube_config_loader_for_yaml_file,
list_kube_config_contexts, load_kube_config,
new_client_from_config)

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

def test__get_kube_config_loader_for_yaml_file_no_persist(self):
expected = FakeConfig(host=TEST_HOST,
token=BEARER_TOKEN_FORMAT % TEST_DATA_BASE64)
config_file = self._create_temp_file(
yaml.safe_dump(self.TEST_KUBE_CONFIG))
actual = _get_kube_config_loader_for_yaml_file(config_file)
self.assertIsNone(actual._config_persister)

def test__get_kube_config_loader_for_yaml_file_persist(self):
expected = FakeConfig(host=TEST_HOST,
token=BEARER_TOKEN_FORMAT % TEST_DATA_BASE64)
config_file = self._create_temp_file(
yaml.safe_dump(self.TEST_KUBE_CONFIG))
actual = _get_kube_config_loader_for_yaml_file(config_file,
persist_config=True)
self.assertTrue(callable(actual._config_persister))
self.assertEquals(actual._config_persister.__name__, "save_changes")


class TestKubernetesClientConfiguration(BaseTestCase):
# Verifies properties of kubernetes.client.Configuration.
Expand Down