Merge pull request #5 from pokoli/non_existing_user
Use no user when the especified user is not found in the users section
This commit is contained in:
commit
8704ce39c2
@ -132,8 +132,12 @@ class KubeConfigLoader(object):
|
||||
context_name)
|
||||
if (self._current_context['context'].safe_get('user')
|
||||
and self._config.safe_get('users')):
|
||||
self._user = self._config['users'].get_with_name(
|
||||
self._current_context['context']['user'])['user']
|
||||
user = self._config['users'].get_with_name(
|
||||
self._current_context['context']['user'], safe=True)
|
||||
if user:
|
||||
self._user = user['user']
|
||||
else:
|
||||
self._user = None
|
||||
else:
|
||||
self._user = None
|
||||
self._cluster = self._config['clusters'].get_with_name(
|
||||
@ -257,7 +261,7 @@ class ConfigNode(object):
|
||||
else:
|
||||
return v
|
||||
|
||||
def get_with_name(self, name):
|
||||
def get_with_name(self, name, safe=False):
|
||||
if not isinstance(self.value, list):
|
||||
raise ConfigException(
|
||||
'Invalid kube-config file. Expected %s to be a list'
|
||||
@ -270,6 +274,8 @@ class ConfigNode(object):
|
||||
% self.name)
|
||||
if v['name'] == name:
|
||||
return ConfigNode('%s[name=%s]' % (self.name, name), v)
|
||||
if safe:
|
||||
return None
|
||||
raise ConfigException(
|
||||
'Invalid kube-config file. '
|
||||
'Expected object with name %s in %s list' % (name, self.name))
|
||||
|
||||
@ -339,6 +339,13 @@ class TestKubeConfigLoader(BaseTestCase):
|
||||
"user": "ssl-local-file"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "non_existing_user",
|
||||
"context": {
|
||||
"cluster": "default",
|
||||
"user": "non_existing_user"
|
||||
}
|
||||
},
|
||||
],
|
||||
"clusters": [
|
||||
{
|
||||
@ -626,6 +633,15 @@ class TestKubeConfigLoader(BaseTestCase):
|
||||
client_configuration=actual).load_and_set()
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
def test_non_existing_user(self):
|
||||
expected = FakeConfig(host=TEST_HOST)
|
||||
actual = FakeConfig()
|
||||
KubeConfigLoader(
|
||||
config_dict=self.TEST_KUBE_CONFIG,
|
||||
active_context="non_existing_user",
|
||||
client_configuration=actual).load_and_set()
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user