class_docstr: A class used to interface with the Ray control state.
  
  Attributes:
      global_state_accessor: The client used to query gcs table from gcs
          server.
class_docstr_tok: ["A","class","used","to","interface","with","the","Ray","control","state",".","Attributes",":","global_state_accessor",":","The","client","used","to","query","gcs","table","from","gcs","server","."]
docstr: Add a worker to the cluster.
  
  Args:
      worker_id: ID of this worker. Type is bytes.
      worker_type: Type of this worker. Value is common_pb2.DRIVER or
          common_pb2.WORKER.
      worker_info: Info of this worker. Type is dict{str: str}.
  
  Returns:
       Is operation success
docstr_tok: ["Add","a","worker","to","the","cluster",".","Args",":","worker_id",":","ID","of","this","worker",".","Type","is","bytes",".","worker_type",":","Type","of","this","worker",".","Value","is","common_pb2.DRIVER","or","common_pb2.WORKER",".","worker_info",":","Info","of","this","worker",".","Type","is","dict","{","str",":","str","}",".","Returns",":","Is","operation","success"]
code: def add_worker(self, worker_id, worker_type, worker_info):
      """Add a worker to the cluster.
  
      Args:
          worker_id: ID of this worker. Type is bytes.
          worker_type: Type of this worker. Value is common_pb2.DRIVER or
              common_pb2.WORKER.
          worker_info: Info of this worker. Type is dict{str: str}.
  
      Returns:
           Is operation success
      """
      worker_data = gcs_pb2.WorkerTableData()
      worker_data.is_alive = True
      worker_data.worker_address.worker_id = worker_id
      worker_data.worker_type = worker_type
      for k, v in worker_info.items():
          worker_data.worker_info[k] = bytes(v, encoding="utf-8")
      return self.global_state_accessor.add_worker_info(
          worker_data.SerializeToString()
      )
  
imports: import json
  import logging
  from collections import defaultdict
  from typing import Set
  from google.protobuf.json_format import MessageToDict
  import ray
  from ray._private.client_mode_hook import client_mode_hook
  from ray._private.resource_spec import NODE_ID_PREFIX, HEAD_NODE_RESOURCE_NAME
  from ray._private.utils import binary_to_hex, decode, hex_to_binary, validate_actor_state_name
  from ray._raylet import GlobalStateAccessor
  from ray.core.generated import common_pb2
  from ray.core.generated import gcs_pb2
  from ray.util.annotations import DeveloperAPI
label_desc: Use image node_id 19 for calling the GlobalState obj's underlying member method code with example usage: obj.add_worker(worker_id, worker_type, worker_info) and returns: self