def __init__(self, **kwargs):
        """Initializes the backend for the Activity Store."""
        self._payload = KvPayload()
        activity_id = kwargs.get(const.ID)
        if activity_id is None:
            try:
                activity_name = kwargs[const.NAME]
                resource_path = kwargs[const.RESOURCE_PATH]
                description = kwargs[const.DESCRIPTION]
            except KeyError as e:
                raise ActivityError(errno.EINVAL, "Missing required key: %s",
                                    str(e))
            if activity_name is None or resource_path is None or \
                description is None:
                raise ActivityError(
                    errno.EINVAL, "Missing activity_name/\
                    resource_path/description")

            self._id = uuid.uuid1().hex
            self._payload[const.ID] = self._id
            self._payload[const.NAME] = activity_name
            self._payload[const.RESOURCE_PATH] = resource_path
            self._payload[const.DESCRIPTION] = description
            self._payload[const.PCT_PROGRESS] = 0
            self._payload[const.STATUS] = const.NEW
            self._payload[const.STATUS_DESC] = const.CREATED_DESC
            self._payload[const.CREATED_TIME] = int(time.time())
        else:
            self._id = activity_id
            for key, value in kwargs.items():
                self._payload[key] = value
 def prepare_message(self, jsonMsg, message_type):
     """Adds all common key fields to the JsonMsg"""
     try:
         if jsonMsg.get("message").get(
             message_type).get("info") is None:
             return
         payload = KvPayload(jsonMsg)
         if payload.get(f"message>{message_type}>info>site_id") is None:
             jsonMsg["message"][message_type]["info"]["site_id"] = Conf.get(
                 GLOBAL_CONF, SITE_ID_KEY, DEFAULT_DC)
         if payload.get(f"message>{message_type}>info>node_id") is None:
             jsonMsg["message"][message_type]["info"]["node_id"] = Conf.get(
                 GLOBAL_CONF, NODE_ID_KEY, DEFAULT_SN)
         if payload.get(f"message>{message_type}>info>rack_id") is None:
             jsonMsg["message"][message_type]["info"]["rack_id"] = Conf.get(
                 GLOBAL_CONF, RACK_ID_KEY, DEFAULT_RACK)
         if payload.get(f"message>{message_type}>info>cluster_id") is None:
             jsonMsg["message"][message_type]["info"]["cluster_id"] = Conf.get(
                 GLOBAL_CONF, CLUSTER_ID_KEY, DEFAULT_CLUSTER)
         if payload.get(f"message>{message_type}>info>fru") is None:
             jsonMsg["message"][message_type]["info"]["fru"] = "false"
         logger.debug("prepare_message, jsonMsg: %s" % jsonMsg)
     except KeyError as ex:
         logger.exception(f"Failed to prepare json message. JsonMsg:{jsonMsg}."
                      f"Error:{str(ex)}")
 def test_toml_kv_send(self):
     """Load toml as payload."""
     message = KvPayload("[message_broker]\ntype = \
         'kafka'\n[[message_broker.cluster]]\nserver = 'localhost'\nport = \
         '9092'\n\n")
     TestKVPayloadMessage._producer.send([message])
 def test_yaml_kv_send(self):
     """Load yaml as payload."""
     message = KvPayload("message_broker:\n  cluster:\n  - port: '9092'\n  \
       server: localhost\n  type: kafka\n")
     TestKVPayloadMessage._producer.send([message])
 def test_json_kv_send(self):
     """Load json as payload."""
     message = KvPayload({'message_broker': {'type': 'kafka', 'cluster': \
         [{'server': 'localhost', 'port': '9092'}]}})
     TestKVPayloadMessage._producer.send([message])