Skip to content
Snippets Groups Projects
Commit 26cf34e4 authored by Mohamed, Fawzi Roberto (fawzi)'s avatar Mohamed, Fawzi Roberto (fawzi)
Browse files

improve generation of gids

compact_sha.sha512("blabla").gid("X")
parent 62c6d3d8
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,7 @@ import hashlib
import base64
class CompactHash(object):
"""compact sha can be used to calculate nomad gids"""
def __init__(self, proto):
self._proto = proto
......@@ -18,14 +19,27 @@ class CompactHash(object):
data=data.encode("utf-8")
return self._proto.update(data)
def gid(self, prefix=""):
"""returns a nomad gid with the given prefix"""
return prefix + self.b64digest()[:28]
def __getattr__(self, name):
return getattr(self._proto, name)
def sha224(*args, **kwargs):
"""CompactSha using sha224 for the checksums (non standard)"""
return CompactHash(hashlib.sha224(*args,**kwargs))
def sha512(*args, **kwargs):
return CompactHash(hashlib.sha512(*args,**kwargs))
def sha512(baseStr=None,*args,**kwargs):
"""Uses sha512 to calculate the gid (default in nomad)
If you pass and argument it is immediately added to the checksum.
Thus sha512("someString").gid("X") creates a gid in one go"""
sha=CompactHash(hashlib.sha512(*args,**kwargs))
if baseStr is not None:
sha.update(baseStr)
return sha
def md5(*args, **kwargs):
"""CompactSha using md5 for the checksums (non standard)"""
return CompactHash(hashlib.md5(*args,**kwargs))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment