'Execute get_snapshot_info API.'

@_connection_checker
def get_snapshot_info(self, **kwargs):

    for (key, value) in kwargs.items():
        LOG.debug('%(key)s    =    %(val)s', {'key': key, 'val': value})
    LOG.debug('in    get_ethernet_ip')
    res_details = self._get_res_details('/cgi-bin/disk/snapshot.cgi?', func='extra_get', LUNIndex=kwargs['lun_index'], smb_snapshot_list='1', smb_snapshot='1', snapshot_list='1', sid=self.sid)
    root = ET.fromstring(res_details['data'])
    if (root.find('authPassed').text == '0'):
        raise exception.VolumeBackendAPIException(data=_('Session    id    expired'))
    if (root.find('result').text < '0'):
        raise exception.VolumeBackendAPIException(data=_('Unexpected    response    from    QNAP    API'))
    snapshot_list = root.find('SnapshotList')
    if (snapshot_list is None):
        return None
    snapshot_tree = snapshot_list.findall('row')
    for snapshot in snapshot_tree:
        if (kwargs['snapshot_name'] == snapshot.find('snapshot_name').text):
            LOG.debug('snapshot_name:%s', kwargs['snapshot_name'])
            return snapshot
    return None
