def run(self, nameservers, *objs):
        nameservers = [(h, int(p)) 
            for h, p in (i.split(':')
            for i in nameservers)]
        runem = []
        if self.run_nameserver:
            runem.append(
                Thunk(lambda: run_consensus_server(self.run_nameserver, nameservers)))
        runem.append(self)
        handler_functions = dict((v, k) for k, v in self.local_handlers.iteritems())
        final_o = []
        for o in objs:
            if type(o.__class__) is ConvoyRegistrar:
                r = o.__class__
                self.roles_wanted.add(r)
                for m in self.role_messages[r]:
                    assert m not in self.local_handlers, \
                        "cannot add two instances for same role/message"
                    self.local_handlers[m] = \
                        getattr(o, 'handle_' + m)
            else:
                final_o.append(o)

        self.ns = ConvoyNameService(nameservers)
        runem.append(self.ns)
        runem.append(self.deliver)

        runem.extend(final_o)
        runem.append(ConvoyService())
        quickstart(*runem)
dataset/ETHPy150Open dieseldev/diesel/diesel/convoy/__init__.py/Convoy.run/original