diff --git a/config/kube_config.py b/config/kube_config.py index 4701731b..53a0d755 100644 --- a/config/kube_config.py +++ b/config/kube_config.py @@ -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 @@ -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: @@ -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'] @@ -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( diff --git a/config/kube_config_test.py b/config/kube_config_test.py index d4e67683..b05ad9e3 100644 --- a/config/kube_config_test.py +++ b/config/kube_config_test.py @@ -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) @@ -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.