|
@@ -11,6 +11,14 @@ class Fetcher:
|
11
|
11
|
self._prefix = prefix
|
12
|
12
|
|
13
|
13
|
|
|
14
|
+ def _read(self, key, **kwargs):
|
|
15
|
+ try:
|
|
16
|
+ node = self._client.read(self._prefix + key, **kwargs)
|
|
17
|
+ return node.value if node else None
|
|
18
|
+ except etcd.EtcdKeyNotFound:
|
|
19
|
+ return None
|
|
20
|
+
|
|
21
|
+
|
14
|
22
|
def _read_recursive(self, key):
|
15
|
23
|
try:
|
16
|
24
|
return self._client.read(self._prefix + key, recursive=True)
|
|
@@ -27,13 +35,13 @@ class Fetcher:
|
27
|
35
|
|
28
|
36
|
|
29
|
37
|
def wait_for_update(self):
|
30
|
|
- original_time = self._client.read(self._prefix + '/_updated').value
|
|
38
|
+ original_time = self._read('/_updated')
|
31
|
39
|
new_time = original_time
|
32
|
40
|
|
33
|
41
|
while new_time == original_time:
|
34
|
42
|
try:
|
35
|
|
- new_time = self._client.read(self._prefix + '/_updated', wait=True).value
|
|
43
|
+ new_time = self._read('/_updated', wait=True)
|
36
|
44
|
except etcd.EtcdWatchTimedOut:
|
37
|
|
- new_time = self._client.read(self._prefix + '/_updated').value
|
|
45
|
+ new_time = self._read('/_updated')
|
38
|
46
|
time.sleep(10)
|
39
|
47
|
|