summaryrefslogtreecommitdiffstats
path: root/glustolibs-gluster/scripts/compute_hash.py
blob: 7cab7c49413d91362ede82eaf4f8fab44adc725d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#  Copyright (C) 2020 Red Hat, Inc. <http://www.redhat.com>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License along
#  with this program; if not, write to the Free Software Foundation, Inc.,
#  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

from __future__ import print_function
import ctypes
import sys

filename = sys.argv[1]
glusterfs = ctypes.cdll.LoadLibrary("libglusterfs.so.0")

# In case of python3 encode string to ascii
if sys.version_info.major == 3:
    computed_hash = ctypes.c_uint32(glusterfs.gf_dm_hashfn(
        filename.encode('ascii'), len(filename)))
else:
    computed_hash = ctypes.c_uint32(glusterfs.gf_dm_hashfn(
        filename, len(filename)))

print(computed_hash.value)