Skip to content

Commit 7bffecb

Browse files
authored
track library version, and refresh cache on version mismatch (#282)
1 parent 88a02a2 commit 7bffecb

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

openshift/dynamic/client.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from kubernetes.client.api_client import ApiClient
1818
from kubernetes.client.rest import ApiException
1919

20+
from openshift import __version__
2021
from openshift.dynamic.exceptions import (
2122
api_exception,
2223
ResourceNotFoundError,
@@ -110,14 +111,17 @@ def __init__(self, client, cache_file=None):
110111

111112
def __init_cache(self, refresh=False):
112113
if refresh or not os.path.exists(self.__cache_file):
113-
self.__cache = {}
114+
self.__cache = {'library_version': __version__}
114115
refresh = True
115116
else:
116117
try:
117118
with open(self.__cache_file, 'r') as f:
118119
self.__cache = json.load(f, cls=cache_decoder(self))
120+
if self.__cache.get('library_version') != __version__:
121+
# Version mismatch, need to refresh cache
122+
self.invalidate_cache()
119123
except Exception:
120-
self.__init_cache(refresh=True)
124+
self.invalidate_cache()
121125
self._load_server_info()
122126
self.__resources.update(self.parse_api_groups())
123127

0 commit comments

Comments
 (0)