Exemplo n.º 1
0
def set_message_broker(customer_idurl,
                       broker_idurl,
                       position=0,
                       revision=None,
                       expire=60 * 60):
    if _Debug:
        lg.args(_DebugLevel,
                customer=customer_idurl,
                pos=position,
                broker=broker_idurl,
                rev=revision)
    return dht_service.set_valid_data(
        key=dht_service.make_key(
            key='%s%d' % (strng.to_text(customer_idurl), position),
            prefix='message_broker',
        ),
        json_data={
            'type': 'message_broker',
            'timestamp': utime.get_sec1970(),
            'revision': 0 if revision is None else revision,
            'customer_idurl': customer_idurl.to_text(),
            'broker_idurl': broker_idurl.to_text(),
            # 'archive_folder_path': archive_folder_path,
            'position': position,
        },
        rules=get_rules('message_broker'),
        expire=expire,
        collect_results=True,
    )
Exemplo n.º 2
0
 def do_read(self):
     # TODO: build more smart and fault sensitive method
     if self._index >= self._limit_lookups:
         if _Debug:
             lg.out(
                 _DebugLevel,
                 'dht_relations.do_read STOP %s, limit lookups riched' %
                 self.customer_id)
         self.do_report_success()
         return None
     if self._last_missed_index >= 0 and self._index - self._last_missed_index > self._max_misses_in_row:
         if _Debug:
             lg.out(
                 _DebugLevel,
                 'dht_relations.do_read STOP %s, last missed index is %d' %
                 (self.customer_id, self._last_missed_index))
         self.do_report_success()
         return None
     target_dht_key = dht_service.make_key(
         key=self.customer_id,
         index=self._index,
         prefix=self._prefix,
     )
     if _Debug:
         lg.out(
             _DebugLevel, 'dht_relations.do_read %s:%d missed:%d' %
             (self.customer_id, self._index, self._missed))
     d = dht_records.get_relation(target_dht_key)
     d.addCallback(self.do_verify)
     d.addErrback(self.do_verify)
     return d
Exemplo n.º 3
0
def set_suppliers(customer_idurl,
                  ecc_map,
                  suppliers_list,
                  revision=None,
                  publisher_idurl=None,
                  expire=60 * 60):
    if _Debug:
        lg.args(_DebugLevel,
                customer_idurl=customer_idurl,
                ecc_map=ecc_map,
                suppliers_list=suppliers_list,
                revision=revision)
    return dht_service.set_valid_data(
        key=dht_service.make_key(
            key=strng.to_text(customer_idurl),
            prefix='suppliers',
        ),
        json_data={
            'type': 'suppliers',
            'timestamp': utime.get_sec1970(),
            'revision': 0 if revision is None else revision,
            'publisher_idurl':
            publisher_idurl.to_text() if publisher_idurl else None,
            'customer_idurl': customer_idurl.to_text(),
            'ecc_map': ecc_map,
            'suppliers': list(map(lambda i: i.to_text(), suppliers_list)),
        },
        rules=get_rules('suppliers'),
        expire=expire,
        collect_results=True,
    )
Exemplo n.º 4
0
 def doMakeKey(self, *args, **kwargs):
     """
     Action method.
     """
     self.key = dht_service.make_key(
         key=self.nickname,
         index=0,
         prefix='nickname',
     )
 def doMakeKey(self, arg):
     """
     Action method.
     """
     # self.key = self.nickname + ':' + '0'
     self.key = dht_service.make_key(
         key=self.nickname,
         index=0,
         prefix='nickname',
     )
Exemplo n.º 6
0
def get_suppliers(customer_idurl):
    if _Debug:
        lg.args(_DebugLevel, customer_idurl)
    return dht_service.get_valid_data(
        key=dht_service.make_key(
            key=strng.to_text(customer_idurl),
            prefix='suppliers',
        ),
        rules=get_rules('suppliers'),
    )
Exemplo n.º 7
0
def get_message_broker(customer_idurl, position=0, return_details=True, use_cache=True):
    if _Debug:
        lg.args(_DebugLevel, customer_idurl=customer_idurl, position=position)
    return dht_service.get_valid_data(
        key=dht_service.make_key(
            key='%s%d' % (strng.to_text(customer_idurl), position),
            prefix='message_broker',
        ),
        rules=get_rules('message_broker'),
        return_details=return_details,
        use_cache_ttl=RELATION_RECORD_CACHE_TTL['message_broker'] if use_cache else None,
    )
Exemplo n.º 8
0
def get_suppliers(customer_idurl, return_details=True, use_cache=True):
    if _Debug:
        lg.args(_DebugLevel, customer_idurl=customer_idurl)
    return dht_service.get_valid_data(
        key=dht_service.make_key(
            key=strng.to_text(customer_idurl),
            prefix='suppliers',
        ),
        rules=get_rules('suppliers'),
        return_details=return_details,
        use_cache_ttl=RELATION_RECORD_CACHE_TTL['suppliers'] if use_cache else None,
    )
Exemplo n.º 9
0
 def do_erase(self):
     if _Debug:
         lg.out(_DebugLevel, 'dht_relations.do_erase %s:%s' % (
             self.customer_id, self._index, ))
     target_dht_key = dht_service.make_key(
         key=self.customer_id,
         index=self._index,
         prefix=self._prefix,
     )
     d = dht_service.delete_key(target_dht_key)
     d.addCallback(self.do_report_success)
     d.addErrback(self.do_report_failed)
     return 3
Exemplo n.º 10
0
 def do_write(self):
     if _Debug:
         lg.out(_DebugLevel, 'dht_relations.do_write %s:%s' % (
             self.customer_id, self._index, ))
     new_dht_key = dht_service.make_key(
         key=self.customer_id,
         index=self._index,
         prefix=self._prefix,
     )
     d = dht_records.set_relation(
         new_dht_key, self.customer_idurl, self._new_data, self._prefix, self._index, )
     d.addCallback(self.do_report_success)
     d.addErrback(self.do_report_failed)
     return 2
Exemplo n.º 11
0
 def doNextKey(self, *args, **kwargs):
     """
     Action method.
     """
     try:
         key_info = dht_service.split_key(self.key)
         index = int(key_info['index'])
     except:
         lg.exc()
         index = 0
     index += 1
     self.key = dht_service.make_key(
         key=self.nickname,
         index=index,
         prefix='nickname',
     )
Exemplo n.º 12
0
 def doNextKey(self, *args, **kwargs):
     """
     Action method.
     """
     try:
         key_info = dht_service.split_key(self.key)
         # nik, number = self.key.rsplit(':', 1)
         index = int(key_info['index'])
     except:
         lg.exc()
         index = 0
     index += 1
     # self.key = self.nickname + ':' + str(index)
     self.key = dht_service.make_key(
         key=self.nickname,
         index=index,
         prefix='nickname',
     )
Exemplo n.º 13
0
 def doInit(self, *args, **kwargs):
     """
     Action method.
     """
     self.nickname, self.attempts, self.result_callback = args[0]
     try:
         nick, index = self.nickname.rsplit(':', 1)
         index = int(index)
     except:
         nick = self.nickname.replace(':', '_')
         index = 0
     self.nickname = nick
     # self.key = nick + ':' + str(number)
     self.key = dht_service.make_key(
         key=self.nickname,
         index=index,
         prefix='nickname',
     )
Exemplo n.º 14
0
def set_suppliers(customer_idurl,
                  ecc_map,
                  suppliers_list,
                  revision=None,
                  publisher_idurl=None,
                  expire=60 * 60):
    return dht_service.set_valid_data(
        key=dht_service.make_key(
            key=strng.to_text(customer_idurl),
            prefix='suppliers',
        ),
        json_data={
            'type': 'suppliers',
            'timestamp': utime.get_sec1970(),
            'revision': revision,
            'publisher_idurl': publisher_idurl,
            'customer_idurl': customer_idurl,
            'ecc_map': ecc_map,
            'suppliers': suppliers_list,
        },
        rules=get_rules('suppliers'),
        expire=expire,
        collect_results=True,
    )