@defer.inlineCallbacks
    def bill_request_submit_sm_resp_callback(self, message):
        bid = message.content.properties['message-id']
        amount = float(message.content.properties['headers']['amount'])
        uid = message.content.properties['headers']['user-id']
        self.log.debug("Callbacked a bill_request_submit_sm_resp [uid:%s] [amount:%s] [related-bid:%s]",
                       uid, amount, bid)

        self.bill_request_submit_sm_resp_q.get().addCallback(
            self.bill_request_submit_sm_resp_callback).addErrback(
                self.bill_request_submit_sm_resp_errback)

        _user = self.getUser(uid)
        if _user is None:
            self.log.error("User [uid:%s] not found, billing request [bid:%s] rejected", uid, bid)
            yield self.rejectMessage(message)
        elif _user.mt_credential.getQuota('balance') is not None:
            if _user.mt_credential.getQuota('balance') < amount:
                self.log.error('User [uid:%s] have no sufficient balance (%s/%s) for this billing [bid:%s] request: rejected',
                               uid, _user.mt_credential.getQuota('balance'), amount, bid)
                yield self.rejectMessage(message)
            else:
                _user.mt_credential.updateQuota('balance', -amount)
                self.log.info('User [uid:%s] charged for amount: %s (bid:%s)', uid, amount, bid)
                yield self.ackMessage(message)
Return extrapolated `arr`.
dataset/ETHPy150Open jookies/jasmin/jasmin/routing/router.py/RouterPB.bill_request_submit_sm_resp_callback--crossover with--dataset/ETHPy150Open OpenMDAO/OpenMDAO-Framework/openmdao.lib/src/openmdao/lib/datatypes/domain/grid.py/GridCoordinates._extrap_3d