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.
This commit is contained in:
parent
7ea5cb4d76
commit
64662bb738
@ -336,7 +336,7 @@ class KubeConfigLoader(object):
|
||||
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
|
||||
@ -357,7 +357,7 @@ class KubeConfigLoader(object):
|
||||
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:
|
||||
@ -398,7 +398,7 @@ class KubeConfigLoader(object):
|
||||
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']
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -33,6 +33,7 @@ from .kube_config import (ENV_KUBECONFIG_PATH_SEPARATOR, CommandTokenSource,
|
||||
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)
|
||||
|
||||
@ -1388,6 +1389,24 @@ class TestKubeConfigLoader(BaseTestCase):
|
||||
"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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user