'Convert an InstanceAttributesType object to ``Node`` object
:param instance: a xml element represents an instance
:return: a ``Node`` object
:rtype: ``Node``'

def _to_node(self, instance):

    _id = findtext(element=instance, xpath='InstanceId', namespace=self.namespace)
    name = findtext(element=instance, xpath='InstanceName', namespace=self.namespace)
    instance_status = findtext(element=instance, xpath='Status', namespace=self.namespace)
    state = self.NODE_STATE_MAPPING.get(instance_status, NodeState.UNKNOWN)
    def _get_ips(ip_address_els):
        return [each.text for each in ip_address_els]
    public_ip_els = findall(element=instance, xpath='PublicIpAddress/IpAddress', namespace=self.namespace)
    public_ips = _get_ips(public_ip_els)
    private_ip_els = findall(element=instance, xpath='InnerIpAddress/IpAddress', namespace=self.namespace)
    private_ips = _get_ips(private_ip_els)
    extra = self._get_extra_dict(instance, RESOURCE_EXTRA_ATTRIBUTES_MAP['node'])
    extra['vpc_attributes'] = self._get_vpc_attributes(instance)
    extra['eip_address'] = self._get_eip_address(instance)
    extra['operation_locks'] = self._get_operation_locks(instance)
    node = Node(id=_id, name=name, state=state, public_ips=public_ips, private_ips=private_ips, driver=self.connection.driver, extra=extra)
    return node
