@defer.inlineCallbacks
    def releaseConfirmed(self, header, connection_id):

        log.msg('', system=LOG_SYSTEM)
        log.msg((connection_id, header.provider_nsa) % 'Release confirmed for sub connection %s. NSA %s ', system=LOG_SYSTEM)

        sub_connection = yield self.getSubConnection(header.provider_nsa, connection_id)
        yield state.released(sub_connection)

        conn = yield self.getConnectionByKey(sub_connection.service_connection_id)
        sub_conns = yield self.getSubConnectionsByConnectionKey(conn.id)

        # if we get responses very close, multiple requests can trigger this, so we check main state as well
        if all( [ sc.provision_state == state.RELEASED for sc in sub_conns ] ) and conn.provision_state != state.RELEASED:
            yield state.released(conn)
            req_header = nsa.NSIHeader(conn.requester_nsa, self.nsa_.urn())
            self.parent_requester.releaseConfirmed(req_header, conn.connection_id)
dataset/ETHPy150Open NORDUnet/opennsa/opennsa/aggregator.py/Aggregator.releaseConfirmed/swapped operands of `%`