diff options
author | Lars Wirzenius <liw@liw.fi> | 2015-07-21 21:29:58 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-07-21 21:29:58 +0300 |
commit | 9fdba9c4b127b475791e68571ddab9bcebdc0519 (patch) | |
tree | 93abc7e1cb2d7a84c48d16baf740ce23b88d2f5f | |
parent | d1716764a13cecc59e7fe3cde525c6d65490b8a4 (diff) | |
download | obnam-9fdba9c4b127b475791e68571ddab9bcebdc0519.tar.gz |
Cache list of client names
-rw-r--r-- | obnamlib/fmt_ga/client_list.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/obnamlib/fmt_ga/client_list.py b/obnamlib/fmt_ga/client_list.py index 6de64945..47a13fae 100644 --- a/obnamlib/fmt_ga/client_list.py +++ b/obnamlib/fmt_ga/client_list.py @@ -47,6 +47,10 @@ class GAClientList(object): self._data = None self._data_is_loaded = False self._added_clients = [] + self._clear_client_names_cache() + + def _clear_client_names_cache(self): + self._client_names = None def commit(self): self._load_data() @@ -66,7 +70,9 @@ class GAClientList(object): def get_client_names(self): self._load_data() - return self._data.get('clients', {}).keys() + if self._client_names is None: + self._client_names = self._data.get('clients', {}).keys() + return self._client_names def _load_data(self): if self._data_is_loaded: @@ -103,6 +109,7 @@ class GAClientList(object): 'client-id': self._pick_client_id(), } self._data['clients'] = clients + self._clear_client_names_cache() self._added_clients.append(client_name) @@ -129,6 +136,8 @@ class GAClientList(object): if client_name in self._added_clients: self._added_clients.remove(client_name) + self._clear_client_names_cache() + def rename_client(self, old_client_name, new_client_name): self._load_data() self._require_client_exists(old_client_name) @@ -143,6 +152,8 @@ class GAClientList(object): self._added_clients.remove(old_client_name) self._added_clients.append(new_client_name) + self._clear_client_names_cache() + def _require_client_exists(self, client_name): if client_name not in self._data.get('clients', {}): raise obnamlib.RepositoryClientDoesNotExist( |