def test_pool_restarts_one_by_one(sdk_pool_handle, sdk_wallet_trustee, looper,
                                  tconf, txnPoolNodeSet):
    server, indicator = looper.loop.run_until_complete(
        _createServer(host=tconf.controlServiceHost,
                      port=tconf.controlServicePort))

    unow = datetime.utcnow().replace(tzinfo=dateutil.tz.tzutc())
    first_start = str(datetime.isoformat(unow + timedelta(seconds=1000)))
    req_obj, resp = sdk_send_restart(looper,
                                     sdk_wallet_trustee,
                                     sdk_pool_handle,
                                     action=START,
                                     datetime=first_start)

    second_start = str(datetime.isoformat(unow + timedelta(seconds=2000)))
    req_obj, resp = sdk_send_restart(looper,
                                     sdk_wallet_trustee,
                                     sdk_pool_handle,
                                     action=START,
                                     datetime=second_start)
    _comparison_reply(resp, req_obj)
    tmp = txnPoolNodeSet[0].restarter._actionLog
    restart_log = []
    for a in tmp:
        restart_log.append(a)
    restart_log.reverse()
    _check_restart_log(restart_log[2], RestartLog.Events.scheduled,
                       first_start)
    _check_restart_log(restart_log[1], RestartLog.Events.cancelled)
    _check_restart_log(restart_log[0], RestartLog.Events.scheduled,
                       second_start)
    _stopServer(server)
예제 #2
0
def test_pool_restart_cancel(sdk_pool_handle, sdk_wallet_trustee, looper,
                             tconf, txnPoolNodeSet):
    loop = asyncio.get_event_loop()
    server, indicator = loop.run_until_complete(
        _createServer(host=tconf.controlServiceHost,
                      port=tconf.controlServicePort))

    unow = datetime.utcnow().replace(tzinfo=dateutil.tz.tzutc())
    start_at = unow + timedelta(seconds=1000)
    req_obj, responses = sdk_send_restart(looper,
                                          sdk_wallet_trustee,
                                          sdk_pool_handle,
                                          action=START,
                                          datetime=str(
                                              datetime.isoformat(start_at)))
    for node in txnPoolNodeSet:
        assert node.restarter.lastActionEventInfo[0] == RestartLog.SCHEDULED
    _comparison_reply(responses, req_obj)

    req_obj, responses = sdk_send_restart(looper,
                                          sdk_wallet_trustee,
                                          sdk_pool_handle,
                                          action=CANCEL,
                                          datetime="")
    _stopServer(server)
    for node in txnPoolNodeSet:
        assert node.restarter.lastActionEventInfo[0] == RestartLog.CANCELLED
    _comparison_reply(responses, req_obj)
예제 #3
0
def pool_restart_now(sdk_pool_handle, sdk_wallet_trustee, looper, tdir, tconf,
                     action, datetime=None):
    server, indicator = looper.loop.run_until_complete(
        _createServer(
            host=tconf.controlServiceHost,
            port=tconf.controlServicePort
        )
    )

    req_obj, resp = sdk_send_restart(looper,
                                     sdk_wallet_trustee,
                                     sdk_pool_handle,
                                     action=action,
                                     datetime=datetime)
    _stopServer(server)
    _comparison_reply(resp, req_obj)
예제 #4
0
def test_pool_restart(sdk_pool_handle, sdk_wallet_trustee, looper, tconf,
                      txnPoolNodeSet):

    server, indicator = looper.loop.run_until_complete(
        _createServer(host=tconf.controlServiceHost,
                      port=tconf.controlServicePort))

    unow = datetime.utcnow().replace(tzinfo=dateutil.tz.tzutc())
    start_at = unow + timedelta(seconds=1000)
    req_obj, responses = sdk_send_restart(looper,
                                          sdk_wallet_trustee,
                                          sdk_pool_handle,
                                          action=START,
                                          datetime=str(
                                              datetime.isoformat(start_at)))

    _stopServer(server)
    for node in txnPoolNodeSet:
        assert node.restarter.lastActionEventInfo.ev_type == RestartLog.Events.scheduled
    _comparison_reply(responses, req_obj)
예제 #5
0
    def run(self):
        # Step 1. Check default auth rule
        sdk_send_restart(self.looper,
                         self.trustee_wallet,
                         self.sdk_pool_handle,
                         action='start')
        with pytest.raises(RequestRejectedException):
            sdk_send_restart(self.looper,
                             self.new_default_wallet,
                             self.sdk_pool_handle,
                             action='start')

        # Step 2. Change auth rule
        self.send_and_check(self.changed_auth_rule, wallet=self.trustee_wallet)

        # Step 3. Check, that we cannot send txn the old way
        sdk_send_restart(self.looper,
                         self.new_default_wallet,
                         self.sdk_pool_handle,
                         action='start')
        with pytest.raises(RequestRejectedException):
            sdk_send_restart(self.looper,
                             self.trustee_wallet,
                             self.sdk_pool_handle,
                             action='start')

        # Step 4. Check, that we can send restart action in changed way
        sdk_send_restart(self.looper,
                         self.new_default_wallet,
                         self.sdk_pool_handle,
                         action='start')

        # Step 5. Return default auth rule
        self.send_and_check(self.default_auth_rule, self.trustee_wallet)

        # Step 6. Check, that default auth rule works
        sdk_send_restart(self.looper,
                         self.trustee_wallet,
                         self.sdk_pool_handle,
                         action='start')
        with pytest.raises(RequestRejectedException):
            sdk_send_restart(self.looper,
                             self.new_default_wallet,
                             self.sdk_pool_handle,
                             action='start')