Ejemplo n.º 1
0
    def start_nodes(self):

        for i in range(len(self._config)):

            fp = open(self._config_file, 'w')
            fp.write(json.dumps(self._config[i]))
            fp.close()

            ConfigurationManager.reset_configuration()

            server_ip = self._config[i]["ip"]
            server_port = self._config[i]["socket_port"]
            server_id = self._node_ids[i]
            bootstrap_server = self._config[i]["bootstrap_server"]

            self._nodes[i] = TestNode(node_id=server_id,
                                      node_ip=server_ip,
                                      bootstrap_node=bootstrap_server)

            self.start_chord_node(self._nodes[i], i)
            self._nodes[i].join()
            self.scheduler[i].enter(
                ConfigurationManager.get_configuration().
                get_stabilize_interval(), 1, stabilize_call, (
                    self._nodes[i],
                    self.scheduler[i],
                ))
            self.stabilization_thread[i] = threading.Thread(
                target=self.scheduler[i].run, args=(True, ))
            self.stabilization_thread[i].start()
            print("Started node {}.".format(i + 1))
            self._state[i] = True
            time.sleep(3)
Ejemplo n.º 2
0
    results = parser.parse_args()
    configuration_file = results.config
    bootstrap_server = results.bootstrap_server
    server_id = results.server_id
    no_hash = results.no_hash

    return configuration_file, bootstrap_server, server_id, no_hash


if __name__ == "__main__":

    configuration_file, bootstrap_server, server_id, no_hash = get_arguments()

    os.environ[ConfigurationConstants.
               CHORD_CONFIGURATION_FILE_ENV_VARIABLE] = configuration_file
    ConfigurationManager.reset_configuration()
    from chord.node import Node
    from utilities.app_logging import Logging
    logger = Logging.get_logger(__name__)

    server_ip = ConfigurationManager.get_configuration().get_chord_server_ip()
    server_port = ConfigurationManager.get_configuration().get_socket_port()
    if not server_id:
        server_id = Consistent_Hashing.get_modulo_hash(
            server_ip + ":" + str(server_port),
            ConfigurationManager.get_configuration().get_m_bits())
    node = Node(node_id=server_id,
                node_ip=server_ip,
                bootstrap_node=bootstrap_server)

    start_chord_node(node)