def _make_it_so(self, command, calls, *args, **kwargs):
        """ Perform some error-checked XMLRPC calls.
        """
        observer = kwargs.pop('observer', False)
        args = (self._fields["hash"],) + args
        try:
            for call in calls:
                self._engine.LOG.debug("%s%s torrent #%s (%s)" % (
                    command[0].upper(), command[1:], self._fields["hash"], call))
                if call.startswith(':') or call[:2].endswith('.'):
                    namespace = self._engine._rpc
                else:
                    namespace = self._engine._rpc.d
                result = getattr(namespace, call.lstrip(':'))(*args)
                if observer:
                    observer(result)
        except xmlrpc.ERRORS as exc:
            raise error.EngineError("While %s torrent #%s: %s" % (command, self._fields["hash"], exc))
Perform some error-checked XMLRPC calls.