Example #1
0
  root = Root()
  for viewName, className in VIEWS.items():
    # Add the view to the web service
    root.putChild(viewName, className)
  log.startLogging(sys.stdout)
  log.msg("Starting server: %s" % str(datetime.now()))

  server = server.Site(root)
  
  cluster_client = SinClusterClient(settings.SIN_SERVICE_NAME, settings.ZOOKEEPER_URL, settings.ZOOKEEPER_TIMEOUT)
  cluster_client.logger.setLevel(logging.DEBUG)
  cluster_client.logger.addHandler(logging.StreamHandler())
  cluster_client.add_listener(SinClusterListener())

  nodes = cluster_client.get_registered_nodes()
  if nodes.get(node_id):
    node = nodes[node_id]
    host = None
    if options.host != "":
      host = options.host
    if is_current_host(node.get_host(), host):
      # Force this node to be offline first.  (In the case where
      # sin_agent is stopped and then immediately restarted, the
      # ephemeral node created in the last session may still be there
      # when sin_agent is restarted.)
      cluster_client.mark_node_unavailable(node_id)
      reactor.listenTCP(node.get_port(), server)
      log.msg("Mark %s available" % node.get_url())
      cluster_client.mark_node_available(node_id, node.get_url())
    else:
Example #2
0
    for viewName, className in VIEWS.items():
        # Add the view to the web service
        root.putChild(viewName, className)
    log.startLogging(sys.stdout)
    log.msg("Starting server: %s" % str(datetime.now()))

    server = server.Site(root)

    cluster_client = SinClusterClient(settings.SIN_SERVICE_NAME,
                                      settings.ZOOKEEPER_URL,
                                      settings.ZOOKEEPER_TIMEOUT)
    cluster_client.logger.setLevel(logging.DEBUG)
    cluster_client.logger.addHandler(logging.StreamHandler())
    cluster_client.add_listener(SinClusterListener())

    nodes = cluster_client.get_registered_nodes()
    if nodes.get(node_id):
        node = nodes[node_id]
        host = None
        if options.host != "":
            host = options.host
        if settings.DISABLE_HOST_CHECK or is_current_host(
                node.get_host(), host):
            # Force this node to be offline first.  (In the case where
            # sin_agent is stopped and then immediately restarted, the
            # ephemeral node created in the last session may still be there
            # when sin_agent is restarted.)
            cluster_client.mark_node_unavailable(node_id)
            reactor.listenTCP(node.get_port(), server)
            log.msg("Mark %s available" % node.get_url())
            cluster_client.mark_node_available(node_id, node.get_url())