def run(self, key, value, originator, version, ttl): val = kv_store_types.Value() if version is None: # Retrieve existing Value from KvStore publication = self.client.get_keys([key]) if key in publication.keyVals: existing_val = publication.keyVals.get(key) print('Key {} found in KvStore w/ version {}. Overwriting with' ' higher version ...'.format(key, existing_val.version)) version = existing_val.version + 1 else: version = 1 val.version = version val.originatorId = originator val.value = value val.ttl = ttl val.ttlVersion = 1 # Advertise publication back to KvStore keyVals = {key: val} response = self.client.set_key(keyVals) if response != 'OK': print('Error: Failed to set key into KvStore') else: print('Success: Set key {} with version {} and ttl {} successfully' ' in KvStore. This does not guarantee that value is updated' ' in KvStore as old value can be persisted back'.format( key, val.version, val.ttl if val.ttl != Consts.CONST_TTL_INF else 'infinity'))
def _run( self, client: OpenrCtrl.Client, key: str, value: Any, originator: str, version: Any, ttl: int, ) -> None: area = self.get_area_id() val = kv_store_types.Value() if version is None: # Retrieve existing Value from KvStore publication = None if area is None: publication = client.getKvStoreKeyVals([key]) else: publication = client.getKvStoreKeyValsArea([key], area) if key in publication.keyVals: existing_val = publication.keyVals.get(key) print( "Key {} found in KvStore w/ version {}. Overwriting with" " higher version ...".format(key, existing_val.version) ) version = existing_val.version + 1 else: version = 1 val.version = version val.originatorId = originator val.value = value val.ttl = ttl val.ttlVersion = 1 # Advertise publication back to KvStore keyVals = {key: val} if area is None: client.setKvStoreKeyVals(kv_store_types.KeySetParams(keyVals)) else: client.setKvStoreKeyVals(kv_store_types.KeySetParams(keyVals), area) print( "Success: Set key {} with version {} and ttl {} successfully" " in KvStore. This does not guarantee that value is updated" " in KvStore as old value can be persisted back".format( key, val.version, val.ttl if val.ttl != Consts.CONST_TTL_INF else "infinity", ) )
# LICENSE file in the root directory of this source tree. # from __future__ import absolute_import, division, print_function, unicode_literals import time import unittest from builtins import object from multiprocessing import Process import zmq from openr.clients import kvstore_subscriber from openr.KvStore import ttypes as kv_store_types from openr.utils import zmq_socket value1 = kv_store_types.Value() value1.originatorId = "san jose 1" value2 = kv_store_types.Value() value2.originatorId = "san jose 2" value3 = kv_store_types.Value() value3.originatorId = "san jose 3" value4 = kv_store_types.Value() value4.originatorId = "san jose 4" value5 = kv_store_types.Value() value5.originatorId = "san francisco 1" kv_store_cache = {