'Fetches a node directly by href or
by a combination of the datacenter
ID and the server ID.
:param  ex_href: The href (url) of the node you wish to describe.
:type   ex_href: ``str``
:param  ex_datacenter_id: The ID for the data center.
:type   ex_datacenter_id: ``str``
:param  ex_node_id: The ID for the node (server).
:type   ex_node_id: ``str``
:return:    Instance of class ``Node``
:rtype:     :class:`Node`'

def ex_describe_node(self, ex_href=None, ex_datacenter_id=None, ex_node_id=None):

    use_full_url = True
    if (ex_href is None):
        if ((ex_datacenter_id is None) or (ex_node_id is None)):
            raise ValueError('IDs    for    the    data    center    and    node    are    required.')
        else:
            use_full_url = False
            ex_href = 'datacenters/{datacenter_id}/servers/{server_id}'.format(datacenter_id=ex_datacenter_id, server_id=ex_node_id)
    response = self.connection.request(action=ex_href, method='GET', params={'depth': 3}, with_full_url=use_full_url)
    return self._to_node(response.object)
