<Purpose>
    Acquires the unique vessel identifier for a given vesselhandle.

  <Arguments>
    vesselhandle:
      A vessel handle expressed in the form node_ip:node_port:vesselname.

  <Side Effects>
    Opens a connection to the vessel to retrieve its nodekey.

  <Exceptions>
    None

  <Returns>
    A list of Clearinghouse vesselhandles for each vessel.

def _get_clearinghouse_vessel_handle(vesselhandle):
  """
  <Purpose>
    Acquires the unique vessel identifier for a given vesselhandle.

  <Arguments>
    vesselhandle:
      A vessel handle expressed in the form node_ip:node_port:vesselname.

  <Side Effects>
    Opens a connection to the vessel to retrieve its nodekey.

  <Exceptions>
    None

  <Returns>
    A list of Clearinghouse vesselhandles for each vessel.

  """
  host, portstring, vesselname = vesselhandle.split(':')
  port = int(portstring)

  # get information about the node's vessels
  try:
    nodehandle = nmclient.nmclient_createhandle(host, port,
      timeout=seash_global_variables.globalseashtimeout)

  except NMClientException,e:
    return (False, str(e))

  try:
    # We need to get the nodekey on this vessel
    vesseldict = nmclient.nmclient_getvesseldict(nodehandle)
  except NMClientException,e:
    return (False, str(e))
  finally:
    nmclient.nmclient_destroyhandle(nodehandle)

  nodekeystr = rsa.rsa_publickey_to_string(vesseldict['nodekey'])
  return (True, nodekeystr+':'+vesselname)