Esempio n. 1
0
 def connect_client(hostport):
     host, port = hostport.split(':')
     port = int(port)
     print('connecting %s:%d' % (host, port))
     client = rpc.Client(host, port, v6=not args.ipv4)
     print('client %s:%d ready' % (host, port))
     return client
Esempio n. 2
0
    def call_add_notification(self, reminders_dict):
        self.logger.info('Ближайшие события: ' + str(reminders_dict))
        results = []
        if reminders_dict:
            info_messages = []
            for values in reminders_dict["d"]:
                info_mess = {
                    "s": [{
                        "n": "Тип",
                        "t": "Число целое"
                    }, {
                        "n": "ИдПользователя",
                        "t": "Число целое"
                    }, {
                        "n": "ИдКлиента",
                        "t": "Число целое"
                    }, {
                        "n": "ИдЧастноеЛицо",
                        "t": "Число целое"
                    }, {
                        "n": "ИдОблака",
                        "t": "Строка"
                    }, {
                        "n": "Примечание",
                        "t": "Текст"
                    }, {
                        "n": "Канал",
                        "t": "Запись"
                    }],
                    # {"n": "Действие", "Строка"}
                    "d": []
                }
                new_values = deepcopy(values[4:])
                new_values.insert(0, 5)
                info_mess["d"].extend(new_values)
                info_messages.append(info_mess)
            self.logger.info('Список из отсылаемых параметров ИнфСообщение: ' +
                             str(info_messages))
        else:
            return results

        try:
            for info_mess in info_messages:
                cl = rpc.Client(self.notification_service)
                result = cl.call('ОповещенияПользователей.ДобавитьУведомление',
                                 _site='/notice',
                                 ИнфСообщение=info_mess)
                results.append(result)
            self.logger.info('Результаты добавления уведомлений: ' +
                             str(results))
            return results
        except Exception:
            self.logger.error(self._get_tb_info())
            return results
Esempio n. 3
0
 def call_save_data(self, xml):
     if xml:
         try:
             cl = rpc.Client(self.service_address, is_https=True)
             cl.auth('Демо', 'Демо123')
             interval_end = self.current_datetime.timestamp()  # Чтобы сериализация в json не ломалась, преобразуем в вещественное число.
             result = cl.call('ЭлектроннаяПроходная.СохранитьДанные', Идентификатор=self.clock_house_ip, файл=xml, КонецИнтервала=interval_end)
             self.logger.info('Метод СохранитьДанные() вернул {}'.format(result))
         except Exception:
             self.logger.error(self._get_tb_info())
     else:
         self.logger.info('Метод СохранитьДанные() не отработал')
Esempio n. 4
0
 def call_nearest_reminders(self):
     try:
         cl = rpc.Client(self.inside_address, is_https=True)
         cl.auth(self.user, self.password)
         remiders_dict = cl.call('Напоминания.СписокБлижайшихСобытий',
                                 ДопПоля=None,
                                 Навигация=None,
                                 Сортировка=None,
                                 Фильтр=None)
         return remiders_dict
     except Exception:
         self.logger.error(self._get_tb_info())
         return {}
Esempio n. 5
0
def put(uptoken, key, data, extra=None):
    """ put your data to Qiniu

    If key is None, the server will generate one.
    data may be str or read()able object.
    """
    fields = {
    }

    if not extra:
        extra = PutExtra()

    if extra.params:
        for k in extra.params:
            fields[k] = str(extra.params[k])

    if extra.check_crc:
        fields["crc32"] = str(extra.crc32)

    if key is not None:
        fields['key'] = key

    fields["token"] = uptoken

    fname = key
    if fname is None:
        fname = _random_str(9)
    elif fname is '':
        fname = 'index.html'
    files = [
        {'filename': fname, 'data': data, 'mime_type': extra.mime_type},
    ]
    ret, err, code = rpc.Client(conf.UP_HOST).call_with_multipart("/", fields, files)
    if err is None or code / 100 == 4 or code == 579 or code / 100 == 6 or code / 100 == 7:
        return ret, err

    ret, err, code = rpc.Client(conf.UP_HOST2).call_with_multipart("/", fields, files)
    return ret, err
Esempio n. 6
0
 def call_delivery_result(self, results, reminders_dict):
     if results and all(results):
         try:
             cl = rpc.Client(self.inside_address, is_https=True)
             cl.auth(self.user, self.password)
             identifiers = [l[0] for l in reminders_dict["d"]]
             self.logger.info('Идентификаторы успешных уведомлений: ' +
                              str(identifiers))
             deliv_res = cl.call('Напоминания.РезультатРассылки',
                                 Список=identifiers)
             self.logger.info('метод РезультатРассылки вернул ' +
                              str(deliv_res))
             return deliv_res
         except Exception:
             self.logger.error(self._get_tb_info())
             return None
Esempio n. 7
0
    def call_last_update_time(self):
        try:
            cl = rpc.Client(self.service_address, is_https=True)
            cl.auth('Демо', 'Демо123')
            dt = cl.call('ЭлектроннаяПроходная.ВремяПоследнегоОбновления', Идентификатор=self.clock_house_ip)
        except Exception:
            self.logger.error(self._get_tb_info())
            dt = None

        if dt is None:  # Сделаем заглушку даты вчерашним днём.
            dt = self.current_datetime - timedelta(days=1)
            self.logger.info('метод ВремяПоследнегоОбновления вернул None')
            return dt

        self.logger.info('Значение времени последнего обновления - {}'.format(dt))
        dt = datetime.strptime(dt+'00', "%Y-%m-%d %H:%M:%S%z")  # Формат из метода ВремяПоследнегоОбновления()
        return dt
Esempio n. 8
0
 def get_response_from_wi(self):
     client = rpc.Client('wi.sbis.ru')
     try:
         response = client.call('Вопрос.СписокВопросов',
                                ДопПоля=[],
                                Навигация=None,
                                Сортировка=None,
                                Фильтр={
                                    'd': [True],
                                    's': [{
                                        't': 'Логическое',
                                        'n': 'ТолькоНеРешенные'
                                    }]
                                })
         return response
     except Exception:
         self.logger.error(traceback.print_exc())
         response = {}
         return response
Esempio n. 9
0
def put(uptoken, key, data, extra):
    action = ["/rs-put"]
    action.append(urlsafe_b64encode("%s:%s" % (extra.bucket, key)))
    if extra.mime_type is not None:
        action.append("mimeType/%s" % urlsafe_b64encode(extra.mime_type))

    if extra.custom_meta is not None:
        action.append("meta/%s" % urlsafe_b64encode(extra.custom_meta))

    fields = [
        ("action", '/'.join(action)),
        ("auth", uptoken),
    ]
    if extra.callback_params is not None:
        fields.append(("params", extra.callback_params))

    files = [("file", key, data)]
    return rpc.Client(config.UP_HOST).call_with_multipart(
        "/upload", fields, files)
import rpc
import time
from context import lab_logging

lab_logging.setup()

cl = rpc.Client()
cl.run()

base_list = rpc.DBList({'foo'})
result_list = cl.append('bar', base_list)


print("Result: {}".format(result_list.value))

cl.stop()
Esempio n. 11
0
import time
import rpc
import sys

import combined_index
import search_server

hostnames = sys.argv[1:]

print("Load local index")
ci = combined_index.CombinedIndexDeep1B()

print("connect to clients")
clients = []
for host in hostnames:
    client = rpc.Client(host, 12012, v6=False)
    clients.append(client)

# check if all servers respond
print("sizes seen by servers:", [cl.get_ntotal() for cl in clients])


# aggregate all clients into a one that uses them all for speed
# note that it also requires a local index ci
sindex = search_server.SplitPerListIndex(ci, clients)
sindex.verbose = True

# set reasonable parameters
ci.set_parallel_mode(1)
ci.set_prefetch_nthread(0)
ci.set_omp_num_threads(64)
Esempio n. 12
0
# -*- coding: utf-8 -*-

import rpc
import sys

if __name__ == '__main__':
    sys.argv.pop(0)
    service = rpc.Client(worker=sys.argv.pop(0))

    uptime = service.uptime(timeout=10, async=True)
    print service.hello()
    print uptime.get()
Esempio n. 13
0
File: dist.py Progetto: cash2one/q
    if isa:
        port += 2

        class A(object):
            def a(self):
                return "a"

        a1 = A()
        a2 = A()

        rs = rpc.Server(host, port)
        rs.add_service("ra1", a1)
        rs.add_service("ra2", a2)

        rc = rpc.Client(host, reg_port)
        rc.req("reg", "add", rs.info())

    if isb:
        port += 3

        class B(object):
            def b(self):
                return "b"

        b1 = B()
        b2 = B()

        rs = rpc.Server(host, port)
        rs.add_service("rb1", b1)
        rs.add_service("rb2", b2)