'Return a Node object based on a node name and optional zone.
:param  name: The name of the node
:type   name: ``str``
:keyword  zone: The zone to search for the node in.  If set to \'all\',
search all zones for the instance.
:type     zone: ``str`` or :class:`GCEZone` or
:class:`NodeLocation` or ``None``
:return:  A Node object for the node
:rtype:   :class:`Node`'

def ex_get_node(self, name, zone=None):

    zone = (self._set_zone(zone) or self._find_zone_or_region(name, 'instances', res_name='Node'))
    request = ('/zones/%s/instances/%s' % (zone.name, name))
    response = self.connection.request(request, method='GET').object
    return self._to_node(response)
