VOL-2395:  Old etcd cache remembers valuesit should not

This causes any outside updates to KV to be missed.
Eliminate the cache.

Also bump protos to match what openonu already uses.
This prevents a "make venv" error, nothing functional is
affected as onu already uses these protos.

Change-Id: Ie7e1e8059de28e540dfeb97228c346cfed7171f8
diff --git a/VERSION b/VERSION
index 0bee604..3f684d2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.3.3
+2.3.4
diff --git a/pyvoltha/common/config/config_backend.py b/pyvoltha/common/config/config_backend.py
index d357fcf..31f6360 100644
--- a/pyvoltha/common/config/config_backend.py
+++ b/pyvoltha/common/config/config_backend.py
@@ -45,29 +45,22 @@
         self.host = host
         self.port = port
         self._path_prefix = path_prefix
-        self._cache = {}
         self.retries = 0
 
     def make_path(self, key):
         return '{}/{}'.format(self._path_prefix, key)
 
     def __getitem__(self, key):
-        if key in self._cache:
-            return self._cache[key]
         value = self._kv_get(self.make_path(key))
         if value is not None:
             # consul turns empty strings to None, so we do the reverse here
-            self._cache[key] = value['Value'] or ''
             return value['Value'] or ''
         else:
             raise KeyError(key)
 
     def __contains__(self, key):
-        if key in self._cache:
-            return True
         value = self._kv_get(self.make_path(key))
         if value is not None:
-            self._cache[key] = value['Value']
             return True
         else:
             return False
@@ -75,13 +68,11 @@
     def __setitem__(self, key, value):
         try:
             assert isinstance(value, six.string_types)
-            self._cache[key] = value
             self._kv_put(self.make_path(key), value)
         except Exception as e:
             self.log.exception('cannot-set-item', e=e)
 
     def __delitem__(self, key):
-        self._cache.pop(key, None)
         self._kv_delete(self.make_path(key))
 
     @inlineCallbacks
@@ -94,7 +85,6 @@
 
     def _redo_consul_connection(self):
         self._consul = Consul(host=self.host, port=self.port)
-        self._cache.clear()
 
     def _clear_backoff(self):
         if self.retries:
@@ -166,28 +156,21 @@
         self.host = host
         self.port = port
         self._path_prefix = path_prefix
-        self._cache = {}
         self.retries = 0
 
     def make_path(self, key):
         return '{}/{}'.format(self._path_prefix, key)
 
     def __getitem__(self, key):
-        if key in self._cache:
-            return self._cache[key]
         (value, meta) = self._kv_get(self.make_path(key))
         if value is not None:
-            self._cache[key] = value
             return value
         else:
             raise KeyError(key)
 
     def __contains__(self, key):
-        if key in self._cache:
-            return True
         (value, meta) = self._kv_get(self.make_path(key))
         if value is not None:
-            self._cache[key] = value
             return True
         else:
             return False
@@ -195,13 +178,11 @@
     def __setitem__(self, key, value):
         try:
             assert isinstance(value, six.string_types)
-            self._cache[key] = value
             self._kv_put(self.make_path(key), value)
         except Exception as e:
             self.log.exception('cannot-set-item', e=e)
 
     def __delitem__(self, key):
-        self._cache.pop(key, None)
         self._kv_delete(self.make_path(key))
 
     @inlineCallbacks
@@ -214,7 +195,6 @@
 
     def _redo_etcd_connection(self):
         self._etcd = etcd3.client(host=self.host, port=self.port)
-        self._cache.clear()
 
     def _clear_backoff(self):
         if self.retries:
diff --git a/requirements.txt b/requirements.txt
index d29f34d..c9d8f03 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -18,4 +18,4 @@
 structlog==19.2.0
 transitions==0.6.4
 txaioetcd==0.3.0
-voltha-protos==2.1.1
+voltha-protos==2.1.2