Parcourir la source

Be more robust to missing keys.

master
Chris Smith il y a 8 ans
Parent
révision
906f24b63f
1 fichiers modifiés avec 11 ajouts et 3 suppressions
  1. 11
    3
      fetcher.py

+ 11
- 3
fetcher.py Voir le fichier

11
     self._prefix = prefix
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
   def _read_recursive(self, key):
22
   def _read_recursive(self, key):
15
     try:
23
     try:
16
       return self._client.read(self._prefix + key, recursive=True)
24
       return self._client.read(self._prefix + key, recursive=True)
27
 
35
 
28
 
36
 
29
   def wait_for_update(self):
37
   def wait_for_update(self):
30
-    original_time = self._client.read(self._prefix + '/_updated').value
38
+    original_time = self._read('/_updated')
31
     new_time = original_time
39
     new_time = original_time
32
 
40
 
33
     while new_time == original_time:
41
     while new_time == original_time:
34
       try:
42
       try:
35
-        new_time = self._client.read(self._prefix + '/_updated', wait=True).value
43
+        new_time = self._read('/_updated', wait=True)
36
       except etcd.EtcdWatchTimedOut:
44
       except etcd.EtcdWatchTimedOut:
37
-        new_time = self._client.read(self._prefix + '/_updated').value
45
+        new_time = self._read('/_updated')
38
       time.sleep(10)
46
       time.sleep(10)
39
 
47
 

Chargement…
Annuler
Enregistrer