Exemple #1
0
    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'))
Exemple #2
0
    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",
            )
        )
Exemple #3
0
# 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 = {